diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-31 21:34:47 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-01 01:45:00 +0900 |
| commit | 20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d (patch) | |
| tree | d1fc3aaee3b2829d71f49581e1abc86ee62e525f /crates/shirabe/src/package/root_alias_package.rs | |
| parent | 29df13733ae4acfd2b172bc9fd9ac9fd28efa013 (diff) | |
| download | php-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.tar.gz php-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.tar.zst php-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.zip | |
Diffstat (limited to 'crates/shirabe/src/package/root_alias_package.rs')
| -rw-r--r-- | crates/shirabe/src/package/root_alias_package.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/crates/shirabe/src/package/root_alias_package.rs b/crates/shirabe/src/package/root_alias_package.rs index 7298c1f..67e123b 100644 --- a/crates/shirabe/src/package/root_alias_package.rs +++ b/crates/shirabe/src/package/root_alias_package.rs @@ -11,9 +11,9 @@ use crate::package::RootPackageHandle; use crate::package::RootPackageInterface; use crate::package::handle::delegate_package_interface_to_inner; -#[derive(Debug)] +#[derive(Debug, Clone)] pub struct RootAliasPackage { - inner: CompleteAliasPackage, + pub(crate) inner: CompleteAliasPackage, // overrides CompleteAliasPackage::alias_of with the more specific RootPackage type pub(crate) alias_of: RootPackageHandle, } @@ -83,8 +83,14 @@ impl RootPackageInterface for RootAliasPackage { } fn set_requires(&mut self, requires: Vec<Link>) { - // TODO(phase-c): PHP re-derives the local links via - // replaceSelfVersionDependencies before forwarding to aliasOf. + let replaced = self + .inner + .inner + .replace_self_version_dependencies(requires.clone(), Link::TYPE_REQUIRE); + self.inner.inner.requires = replaced + .into_iter() + .map(|l| (l.get_target().to_string(), l)) + .collect(); self.alias_of.set_requires(requires); } |
