diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-05-03 23:56:14 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-05-03 23:56:14 +0900 |
| commit | b922f2c7c98496564745435db5cf8d0608a52820 (patch) | |
| tree | bf8e02c7b9ad59d0c0923366aed76a2a587cc669 /crates/mozart/src/commands/require.rs | |
| parent | 65993be1b2ecdc590f566b2bcfea803d0d08b5e6 (diff) | |
| download | php-mozart-b922f2c7c98496564745435db5cf8d0608a52820.tar.gz php-mozart-b922f2c7c98496564745435db5cf8d0608a52820.tar.zst php-mozart-b922f2c7c98496564745435db5cf8d0608a52820.zip | |
fix(resolver): extract aliases from complex root-require constraints
Mirror Composer's RootPackageLoader::extractAliases regex so root
requires like `1.*||dev-feature-foo as 1.0.2||^2` and
`dev-feature-foo, dev-feature-foo as 1.0.2` get every `<X> as <Y>`
clause stripped in place and recorded as a separate root alias entry.
The previous single-atom strip left the alias inline, where the parser
then took the RIGHT side per atom and never matched the actual
dev-branch package.
Also fix split_and so a comma-separated AND group like
`dev-foo, dev-bar` splits into two atoms. The space-only operator-glue
heuristic was collapsing it into a single atom because neither half
starts with an operator or digit. Splitting on commas first preserves
the unambiguous separator while keeping `>= 1.0.0` glued within each
comma-part.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart/src/commands/require.rs')
0 files changed, 0 insertions, 0 deletions
