Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
Make required dependency as future an error, remove RcList #6860
This makes it an error to set a feature on a dependency if it is the name of a required dependency not a feature. This has been a warning for a long time. The resolver will backtrack to find a version that works, if one is available. So I think it is safe to make the change.
If you need to make a optional dependency into a required dependency without a semver breaking change this can be done with rename dependencies.
The result is that we can remove 3 data structures that get cloned once per tick of the resolver.
alexcrichton left a comment
Looks reasonable to me! I'm a little worried in a few places about reconstructing resolver state which may accidentally produce subtle differences with overriding, so I think it may be worthwhile to add a few more asserts here and there to ensure everything is as we expect and we're not accidentally overriding something.