diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-03 13:17:04 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-03 13:17:04 +0900 |
| commit | 87f5bcdc2d0e5fbec3848de3865d6c0d47d623ea (patch) | |
| tree | c5eca27fa8cafd0fe1d68a38adac7a7cbe6b112c /crates/mozart/src/commands/remove.rs | |
| parent | 3c0527aa63574f17c9f372b6187d5690e0cbaff0 (diff) | |
| download | php-mozart-87f5bcdc2d0e5fbec3848de3865d6c0d47d623ea.tar.gz php-mozart-87f5bcdc2d0e5fbec3848de3865d6c0d47d623ea.tar.zst php-mozart-87f5bcdc2d0e5fbec3848de3865d6c0d47d623ea.zip | |
fix(policy): prefer replaced original over replacer in cross-name pick
Mirrors the `replaces()` shortcut in Composer's
`DefaultPolicy::compareByPriority` (the cross-package
`ignoreReplace=false` pass). When two candidates with different names
both satisfy a request — say `update a/installed` finds the real
`a/installed` package alongside an `a/replacer` declaring
`replace: { "a/installed": "..." }` — the policy now picks the
replaced original. Without this, the comparison falls through to the
package-id tie-break and silently lands on whichever entry was
inserted first (here, the replacer with the wrong source ref).
Net effect on installer fixtures: `update_dev_ignores_providers`
newly green.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart/src/commands/remove.rs')
0 files changed, 0 insertions, 0 deletions
