aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/package/root_alias_package.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-05-31 21:34:47 +0900
committernsfisis <nsfisis@gmail.com>2026-06-01 01:45:00 +0900
commit20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d (patch)
treed1fc3aaee3b2829d71f49581e1abc86ee62e525f /crates/shirabe/src/package/root_alias_package.rs
parent29df13733ae4acfd2b172bc9fd9ac9fd28efa013 (diff)
downloadphp-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.tar.gz
php-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.tar.zst
php-shirabe-20dbcf11b86cb03c451ba1d5cd9efe17b68fa66d.zip
fix(package): port every PHP clone operator to handle dup()HEADmain
Diffstat (limited to 'crates/shirabe/src/package/root_alias_package.rs')
-rw-r--r--crates/shirabe/src/package/root_alias_package.rs14
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);
}