-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Actually instantiate the opaque type when checking bounds #90948
The head ref may contain hidden characters: "\u{1F9F9}"
Conversation
r? @cjgillot (rust-highfive has picked a reviewer for you, use r? to override) |
I don't know anything of that code. |
@bors r+ |
📌 Commit 238083112590fe0c35943e1c79193171cd32c68c has been approved by |
@bors r- |
@bors try @rust-timer queue realized that we should check perf first. |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 9a3869be7dfcde5bdb730b97a722dcd79b1ceb2c with merge 3b3c064b69de9fe9bdef07dc74be3526862a2266... |
☀️ Try build successful - checks-actions |
Queued 3b3c064b69de9fe9bdef07dc74be3526862a2266 with parent f04a2f4, future comparison URL. |
Finished benchmarking commit (3b3c064b69de9fe9bdef07dc74be3526862a2266): comparison url. Summary: This change led to moderate relevant regressions 😿 in compiler performance.
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR led to changes in compiler perf. Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @bors rollup=never |
This regresses check_mod_item_types a bit, but that is expected as we are now double checking impl trait in return position. We don't have any problems due to not checking here, so I can't write a test, but it's very fragile to depend on ad hoc checks happening for impl trait (as evident in my currently unpublished PR), so I'd rather merge this PR with the slight perf regression. |
@rustbot label: +perf-regression-triaged |
r? @nikomatsakis since you expressed some preference for the double-checking |
Before this change, `instantiate_opaque_types` was a no-op
While not necessary right now, this is the safe choice and will be necessary for lazy TAIT.
@bors r+ |
📌 Commit 15f7e81 has been approved by |
☀️ Test successful - checks-actions |
Finished benchmarking commit (1409c01): comparison url. Summary: This change led to moderate relevant regressions 😿 in compiler performance.
If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. Next Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression |
@rustbot label: +perf-regression-triaged |
Don't fall back to crate-level opaque type definitions. That would just hide bugs, as it works accidentally if the opaque type is defined at the crate level. Only works after rust-lang#90948 which worked by accident for our entire test suite.
Don't fall back to crate-level opaque type definitions. That would just hide bugs, as it works accidentally if the opaque type is defined at the crate level. Only works after rust-lang#90948 which worked by accident for our entire test suite.
Don't fall back to crate-level opaque type definitions. That would just hide bugs, as it works accidentally if the opaque type is defined at the crate level. Only works after rust-lang#90948 which worked by accident for our entire test suite.
Before this change,
instantiate_opaque_types
was a no-op, because it only works relative to the defined opaque type inference anchor. If it is a no-op, the for loop will not actually have anything to iterate over, and thus nothing is checked at all.