-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement some tweaks in the new solver #107786
Conversation
This comment was marked as off-topic.
This comment was marked as off-topic.
r? @lcnr (rustbot has picked a reviewer for you, use r? to override) |
Some changes occurred to the core trait solver cc @rust-lang/initiative-trait-system-refactor |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
r=me after nits
I think we should move winnowing to assembly
it should be the same between trait and project goals I think
2b14080
to
caa8ee9
Compare
@bors r=lcnr rollup |
…eaks, r=lcnr Implement some tweaks in the new solver I've been testing the new solver on some small codebases, and these are a few small changes I've needed to make. The most "controversial" here is implementing `trait_candidate_should_be_dropped_in_favor_of`, which I just implemented to always return false. This surprisingly allows some code to compile, without us having to actually decide on any semantics yet. r? `@rust-lang/initiative-trait-system-refactor`
@bors r- i'll wait for the other pr to land |
caa8ee9
to
654f43f
Compare
@bors r=lcnr |
Rollup of 6 pull requests Successful merges: - rust-lang#107648 (unused-lifetimes: don't warn about lifetimes originating from expanded code) - rust-lang#107655 (rustdoc: use the same URL escape rules for fragments as for examples) - rust-lang#107659 (test: snapshot for derive suggestion in diff files) - rust-lang#107786 (Implement some tweaks in the new solver) - rust-lang#107803 (Do not bring trait alias supertraits into scope) - rust-lang#107815 (Disqualify `auto trait` built-in impl in new solver if explicit `impl` exists) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Ok(self.discard_reservation_impl(candidates.pop().unwrap()).result) | ||
} | ||
|
||
fn trait_candidate_should_be_dropped_in_favor_of( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
not really trait candidates anymore 😁
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
crap, though I renamed this one too
I've been testing the new solver on some small codebases, and these are a few small changes I've needed to make.
The most "controversial" here is implementing
trait_candidate_should_be_dropped_in_favor_of
, which I just implemented to always return false. This surprisingly allows some code to compile, without us having to actually decide on any semantics yet.r? @rust-lang/initiative-trait-system-refactor