From 2a680f571eae31737525ef96105e929ae420b061 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 3 May 2026 22:26:55 +0900 Subject: fix(resolver): strip inline #ref and gate alias trace on alias stability Two related parity gaps surfaced by the `alias-with-reference` fixture: 1. A root require like `dev-main#abcd as 1.0.0` left the SAT-side constraint as `dev-main#abcd`, which no candidate matched, so resolution failed before the alias could be materialized. Mirror Composer's `extractAliases` regex (which captures only the constraint up to `#`) and `RootPackageLoader::extractReferences` (which records the hash separately): drop the trailing `#hex` from the resolver-side constraint and from the alias's left-hand side. Lockfile generation already pulls the reference back out of the raw require map for the post-resolve override. 2. `MarkAliasInstalled`'s trace line gated the reference suffix on the *target* package's stability, so a stable alias like `1.0.0` pointing at a dev-branch target rendered as `1.0.0 abcd`. Mirror `AliasPackage::getFullPrettyVersion`: the alias decides on its own whether to append the suffix based on its own normalized version, so a stable alias skips the suffix even when the target is dev. --- 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 5e285a9..0759177 100644 --- a/crates/mozart/tests/installer.rs +++ b/crates/mozart/tests/installer.rs @@ -222,7 +222,7 @@ installer_fixture!(alias_in_lock2, ignore); installer_fixture!(alias_on_unloadable_package); installer_fixture!(alias_solver_problems); installer_fixture!(alias_solver_problems2); -installer_fixture!(alias_with_reference, ignore); +installer_fixture!(alias_with_reference); installer_fixture!(aliased_priority); installer_fixture!(aliased_priority_conflicting); installer_fixture!(aliases_with_require_dev, ignore); -- cgit v1.3.1