-
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
Remove redundant member-constraint check #89229
Conversation
r? @nagisa (rust-highfive has picked a reviewer for you, use r? to override) |
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit d559f5638f04ec9239daff40c99f915724165b69 with merge e5988663b958f804945421ea908975067378270f... |
☀️ Try build successful - checks-actions |
Queued e5988663b958f804945421ea908975067378270f with parent f06f9bb, future comparison URL. |
Finished benchmarking commit (e5988663b958f804945421ea908975067378270f): comparison url. Summary: This change led to very large 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 |
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit dde6581f20262fc84caa19d66ea39973b791f2d6 with merge 7bd51ca41626fd972720681467f74ed48ca6976e... |
This comment has been minimized.
This comment has been minimized.
@bors try @rust-timer queue |
Awaiting bors try build completion. @rustbot label: +S-waiting-on-perf |
⌛ Trying commit 13d3eef5abd280a0c7c19160597c579361e5fdfd with merge d554c07b2ff5aaea10eab8489f88180ba5baa6de... |
This comment has been minimized.
This comment has been minimized.
☀️ Try build successful - checks-actions |
Queued d554c07b2ff5aaea10eab8489f88180ba5baa6de with parent 218a96c, future comparison URL. |
src/test/ui/impl-trait/multiple-lifetimes/ordinary-bounds-unrelated.stderr
Outdated
Show resolved
Hide resolved
Finished benchmarking commit (d554c07b2ff5aaea10eab8489f88180ba5baa6de): comparison url. Summary: This change led to moderate relevant improvements 🎉 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. @bors rollup=never |
@oli-obk I'll try to review this weekend! |
This comment has been minimized.
This comment has been minimized.
f718603
to
9e4be7b
Compare
This comment has been minimized.
This comment has been minimized.
9e4be7b
to
e83cf2b
Compare
This comment has been minimized.
This comment has been minimized.
e83cf2b
to
d061f1c
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
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 think this is fine...
I'm seeing some duplicate errors being emitted; it would be nice to not do that, but I'd be fine landing this regardless.
I'm going to go ahead and say r=me here with or without fixing duplicate errors being emitted.
LL | fn iter_values_anon(&self) -> impl Iterator<Item=u32> + '_ { | ||
| ++++ | ||
|
||
error[E0700]: hidden type for `impl Trait` captures lifetime that does not appear in bounds |
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.
It's unfortunate that this error gets duplicated. Any particular reason why?
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.
somewhat... there are three places that do impl trait checks: typeck, borrowck and wfcheck. I am unsure without running a trace where this specific one is duplicated.
But in any case: I know it disappears with my lazy TAIT branch, and I believe users don't see it anyway due to error deduplication.
Oh, another thing: Can you squash the last couple commits of just blessing tests? |
fa74d0b
to
4413f8c
Compare
@bors r=jackh726 |
📌 Commit 4413f8c has been approved by |
☀️ Test successful - checks-actions |
Finished benchmarking commit (ec724ac): comparison url. Summary: This benchmark run did not return any relevant changes. If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf. @rustbot label: -perf-regression |
impl trait will, for each lifetime in the hidden type, register a "member constraint" that says the lifetime must be equal or outlive one of the lifetimes of the impl trait. These member constraints will be solved by borrowck
But, as you can see in the big red block of removed code, there was an ad-hoc check for member constraints happening at the site where they get registered. This check had some minor effects on diagnostics, but will fall down on its feet with my big type alias impl trait refactor. So we removed it and I pulled the removal out into a (hopefully) reviewable PR that works on master directly.