-
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
Re-implement leak check in terms of universes #58592
Conversation
The job Click to expand the log.
I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact |
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 reviewed the new commits here and they LGTM, modulo a sanity check re: the role of snapshots.
tcx: TyCtxt<'_, '_, 'tcx>, | ||
overly_polymorphic: bool, | ||
placeholder_map: &PlaceholderMap<'tcx>, | ||
_snapshot: &CombinedSnapshot<'_, 'tcx>, |
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.
Just to confirm: this parameter is basically acting as a static check that we're in the scope of a snapshot?
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.
Confirm, I should perhaps write that more explicitly as a comment.
@bors try |
[WIP] Re-implement leak check in terms of universes This PR temporarily restores the leak-check, but implemented in terms of universes. This is not because the leak check behavior was necessarily **correct**, but because (a) we may want to have a transition period and because (b) we want to have more breathing room to work through the full implications of handling higher-ranked types correctly. Note that this PR builds atop #58056. Fixes #58451 Fixes #46989 Fixes #57639 r? @aturon cc @arielb1, @lqd ~~Temporary note: I've not finished running `./x.py test` locally -- I'm confident a lot of error messages in tests will need updating. I sort of expect them to revert to the older, (imo) less good error messages, which is mildly unfortunate. There might be a way to preserve the new error messages, not sure.~~
Nominating for compiler team approval for beta backport because it fixes several regressions. |
☀️ Test successful - checks-travis |
@rust-timer build c3b2220 |
Success: Queued c3b2220 with parent f66e469, comparison URL. |
@craterbot run start=master#f66e4697ae286985ddefc53c3a047614568458bb end=try#c3b22200e6f5b70eb1f99ae6944d989ae17a458a mode=check-only p=5 |
👌 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
🚧 Experiment ℹ️ Crater is a tool to run experiments across parts of the Rust ecosystem. Learn more |
hey @nikomatsakis do you know off-hand if this will also address #57464 ? |
Finished benchmarking try commit c3b2220 |
f156ac2
to
b9df9b2
Compare
@pnkfelix it does not appear to fix that test case |
⌛ Testing commit 33d3598 with merge 204212e528e170b563444616a989730d686b4513... |
Re-implement leak check in terms of universes This PR temporarily restores the leak-check, but implemented in terms of universes. This is not because the leak check behavior was necessarily **correct**, but because (a) we may want to have a transition period and because (b) we want to have more breathing room to work through the full implications of handling higher-ranked types correctly. Note that this PR builds atop #58056. Fixes #58451 Fixes #46989 Fixes #57639 r? @aturon cc @arielb1, @lqd ~~Temporary note: I've not finished running `./x.py test` locally -- I'm confident a lot of error messages in tests will need updating. I sort of expect them to revert to the older, (imo) less good error messages, which is mildly unfortunate. There might be a way to preserve the new error messages, not sure.~~
☀️ Test successful - checks-travis, status-appveyor |
🎉 Experiment
|
Regression tree:
Both spurious. We have no actual reported regressions 🎉 |
We discussed this beta-nomination in the compiler team meeting yesterday, as part of the checkin with the WG-traits working group. The executive summary is: We think the risk/reward here is in favor of approving the beta backport; but since this only landed in nightly so recently (notably, after the meeting where we were discussing it), we need to keep our eye out for problems. Here is how @aturon summarized things (and a lot of meeting participants agreed with this synopsis):
therefore, marking as beta-accepted. |
The breaking change was reverted in rust-lang/rust#58592. This reverts commit 6fd0e82.
This PR temporarily restores the leak-check, but implemented in terms of universes. This is not because the leak check behavior was necessarily correct, but because (a) we may want to have a transition period and because (b) we want to have more breathing room to work through the full implications of handling higher-ranked types correctly. Note that this PR builds atop #58056.
Fixes #58451
Fixes #46989
Fixes #57639
r? @aturon
cc @arielb1, @lqd
Temporary note: I've not finished running./x.py test
locally -- I'm confident a lot of error messages in tests will need updating. I sort of expect them to revert to the older, (imo) less good error messages, which is mildly unfortunate. There might be a way to preserve the new error messages, not sure.