Clone
Daz DeBoer
committed
on 22 Jul 18
Strict constraints now reject both lower and higher versions
A strict version constraint is implemented by preferring any version in the
dec… Show more
Strict constraints now reject both lower and higher versions

A strict version constraint is implemented by preferring any version in the

declared range, and rejecting other versions. Rejecting of lower versions happens

naturally through the `LatestModuleConflictResolver`.

With this change, the rejection of lower versions becomes explicit, instead of

building a range higher than a strict constraint and rejecting that, we instead

create a 'inverted' VersionSelector that will matches the exact complement of

the `strictly` version selector, and reject that.

This change will later permit us to remove the implicit 'reject all lower'

constraint in our resolution engine.

Strict version constraints are now rendered as 'strictly' in error messages.

Show less

green-master + 464 more