-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Re-implement leak check in terms of universes #58592
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
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.