From c865a24596084eec90d10860265748c93bf7eb6a Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 3 May 2026 10:54:36 +0900 Subject: fix(resolver): substitute self.version in pool link constraints Composer's ArrayLoader and AliasPackage rewrite "self.version" to the declaring package's own version when building Link objects, so a package's replace/provide/conflict/require constraints carry a concrete "= " rather than the literal string. Mozart was passing "self.version" through verbatim, which then failed to parse in Pool::matches_package and caused replace_alias.test to fail to find a provider for c/c 1.* via a/a's branch alias. Push the substitution into make_pool_links, threading the source package's normalized version through the call sites in resolver.rs (packagist/inline/composer-repo) and vcs_bridge.rs. Co-Authored-By: Claude Opus 4.7 (1M context) --- crates/mozart/tests/installer.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'crates/mozart/tests') diff --git a/crates/mozart/tests/installer.rs b/crates/mozart/tests/installer.rs index 99ef2d8..6c0291b 100644 --- a/crates/mozart/tests/installer.rs +++ b/crates/mozart/tests/installer.rs @@ -333,7 +333,7 @@ installer_fixture!( remove_does_nothing_if_removal_requires_update_of_dep, ignore ); -installer_fixture!(replace_alias, ignore); +installer_fixture!(replace_alias); installer_fixture!(replace_priorities); installer_fixture!(replace_range_require_single_version); installer_fixture!(replace_root_require); -- cgit v1.3.1