-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
properly elaborate effects implied bounds for super traits #129499
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment has been minimized.
This comment has been minimized.
88ed621
to
8263ef0
Compare
anyone from @rust-lang/project-const-traits willing to give a vibe check/review? ^^' |
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.
I'm still trying to wrap my head around what's going on here. Perhaps some more comments and detailed explanation would help?
Sorry my life has been too chaotic to sit down and focus on what's going on here. I'll try to respond a bit more quickly moving forward.
Yeah. I'll write more on this when I get time @rustbot author |
Also, semi-related: I found a bug when looking at the (pre-existing) changes to Specifically, we should only push an effects predicate for a trait if we're filtering to implied predicates, not super predicates. |
.. Hold on, let me just write stuff here because I'm going to sleep and too lazy right now to open up the code and tweak the comments. (also ping since you might have unsubscribed @compiler-errors) There is a difference in what this does here vs. From a distant, high-level look, what this PR does is it implements the propagation of |
This comment was marked as resolved.
This comment was marked as resolved.
242f51c
to
fc272b5
Compare
fc272b5
to
7c2a24b
Compare
@rustbot ready |
@bors r+ rollup=never |
…mpiler-errors properly elaborate effects implied bounds for super traits Summary: This PR makes it so that we elaborate `<T as Tr>::Fx: EffectsCompat<somebool>` into `<T as SuperTr>::Fx: EffectsCompat<somebool>` when we know that `trait Tr: ~const SuperTr`. Some discussion at rust-lang/project-const-traits#2. r? project-const-traits `@rust-lang/project-const-traits:` how do we feel about this approach?
💔 Test failed - checks-actions |
@bors retry spurious |
☀️ Test successful - checks-actions |
Finished benchmarking commit (4e91ced): comparison URL. Overall result: ❌✅ regressions and improvements - ACTION NEEDEDNext Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)This benchmark run did not return any relevant results for this metric. CyclesThis benchmark run did not return any relevant results for this metric. Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 768.13s -> 768.577s (0.06%) |
The small regression looks genuine, but it's on @rustbot label: +perf-regression-triaged |
Summary: This PR makes it so that we elaborate
<T as Tr>::Fx: EffectsCompat<somebool>
into<T as SuperTr>::Fx: EffectsCompat<somebool>
when we know thattrait Tr: ~const SuperTr
.Some discussion at rust-lang/project-const-traits#2.
r? project-const-traits
@rust-lang/project-const-traits: how do we feel about this approach?