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/package/link.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/package/link.rs')
| -rw-r--r-- | crates/shirabe/src/package/link.rs | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/crates/shirabe/src/package/link.rs b/crates/shirabe/src/package/link.rs index 13bd66b..ab1e9c6 100644 --- a/crates/shirabe/src/package/link.rs +++ b/crates/shirabe/src/package/link.rs @@ -1,6 +1,5 @@ //! ref: composer/src/Composer/Package/Link.php -use shirabe_php_shim::UnexpectedValueException; use shirabe_semver::constraint::AnyConstraint; use crate::package::PackageInterfaceHandle; @@ -10,7 +9,7 @@ pub struct Link { pub(crate) target: String, pub(crate) constraint: AnyConstraint, pub(crate) description: String, - pub(crate) pretty_constraint: Option<String>, + pub(crate) pretty_constraint: String, } impl Clone for Link { @@ -65,7 +64,7 @@ impl Link { target: String, constraint: AnyConstraint, description: Option<String>, - pretty_constraint: Option<String>, + pretty_constraint: String, ) -> Self { let description = description.unwrap_or_else(|| Self::TYPE_UNKNOWN.to_string()); let description = if description == Self::TYPE_DEV_REQUIRE { @@ -98,17 +97,8 @@ impl Link { &self.constraint } - pub fn get_pretty_constraint(&self) -> anyhow::Result<&str> { - match &self.pretty_constraint { - None => Err(anyhow::anyhow!(UnexpectedValueException { - message: format!( - "Link {} has been misconfigured and had no prettyConstraint given.", - self.to_string() - ), - code: 0, - })), - Some(s) => Ok(s.as_str()), - } + pub fn get_pretty_constraint(&self) -> &str { + &self.pretty_constraint } pub fn to_string(&self) -> String { |
