diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-06 15:16:07 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-06 15:17:00 +0900 |
| commit | 1e7aabcae1b2139aa20a80fbf303c74388933f55 (patch) | |
| tree | 07c5f4e7502841fef21909b2aa8269e6e71fb2a3 /crates/shirabe/src/command/show_command.rs | |
| parent | adba8b1969a3f40245324d7feb5905693ca65d5e (diff) | |
| download | php-shirabe-1e7aabcae1b2139aa20a80fbf303c74388933f55.tar.gz php-shirabe-1e7aabcae1b2139aa20a80fbf303c74388933f55.tar.zst php-shirabe-1e7aabcae1b2139aa20a80fbf303c74388933f55.zip | |
fix(array-dumper): emit package links and require Link pretty constraint
Resolve the phase-b TODO that left the supported-link-types loop as dead
code (links were always an empty Vec), so requires/conflicts/provides/
replaces/require-dev are dumped again via
PackageInterface::get_links_for_type, matching the PHP magic-call loop.
Every Link in production is constructed with a pretty constraint (all
ArrayLoader/AliasPackage/PlatformRepository/InstalledRepository sites
pass one), so make Link::pretty_constraint a required String instead of
Option<String>. get_pretty_constraint() now returns &str directly rather
than anyhow::Result<&str>, dropping the unreachable
UnexpectedValueException guard, and all call sites are updated.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/src/command/show_command.rs')
| -rw-r--r-- | crates/shirabe/src/command/show_command.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/crates/shirabe/src/command/show_command.rs b/crates/shirabe/src/command/show_command.rs index 9592f4e..299ba1e 100644 --- a/crates/shirabe/src/command/show_command.rs +++ b/crates/shirabe/src/command/show_command.rs @@ -1811,7 +1811,7 @@ impl ShowCommand { io.write(&format!( "{} <comment>{}</comment>", link.1.get_target(), - link.1.get_pretty_constraint().unwrap_or("") + link.1.get_pretty_constraint(), )); } } @@ -2173,7 +2173,7 @@ impl ShowCommand { for link in links.iter() { m.insert( link.1.get_target().to_string(), - PhpMixed::String(link.1.get_pretty_constraint().unwrap_or("").to_string()), + PhpMixed::String(link.1.get_pretty_constraint().to_string()), ); } json.insert( @@ -2309,7 +2309,7 @@ impl ShowCommand { tree_child_desc.insert("name".to_string(), PhpMixed::String(require_name.clone())); tree_child_desc.insert( "version".to_string(), - PhpMixed::String(require.get_pretty_constraint().unwrap_or("").to_string()), + PhpMixed::String(require.get_pretty_constraint().to_string()), ); let deep_children = self @@ -2452,11 +2452,11 @@ impl ShowCommand { packages_in_tree: &[PhpMixed], ) -> anyhow::Result<Vec<IndexMap<String, PhpMixed>>> { let mut children: Vec<IndexMap<String, PhpMixed>> = Vec::new(); - let version_arg: PhpMixed = if link.get_pretty_constraint().ok() == Some("self.version") { + let version_arg: PhpMixed = if link.get_pretty_constraint() == "self.version" { // pass the ConstraintInterface object — signal via Null in this scalar shape PhpMixed::Null } else { - PhpMixed::String(link.get_pretty_constraint().unwrap_or("").to_string()) + PhpMixed::String(link.get_pretty_constraint().to_string()) }; let (package, _) = self.get_package(installed_repo, remote_repos, name, version_arg)?; if let Some(package) = package { @@ -2469,7 +2469,7 @@ impl ShowCommand { tree_child_desc.insert("name".to_string(), PhpMixed::String(require_name.clone())); tree_child_desc.insert( "version".to_string(), - PhpMixed::String(require.get_pretty_constraint().unwrap_or("").to_string()), + PhpMixed::String(require.get_pretty_constraint().to_string()), ); if !in_array( |
