-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Issue 48697 -- ICE in old borrowck mode #49666
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
Issue 48697 -- ICE in old borrowck mode #49666
Conversation
Your PR failed on Travis. Through arcane magic we have determined that the following fragments from the build log may contain information about the problem. 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 |
Ping from triage! @pnkfelix this PR needs your review! |
@nikomatsakis (I suspect that test "just" needs updating to reflect the changes in your PR?) |
@@ -0,0 +1,8 @@ | |||
error: internal compiler error: unexpected region for local data ReFree(DefId(0/0:3 ~ issue_48697[317d]::foo[0]), BrAnon(0)) |
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.
@nikomatsakis : You say you are removing the ICE, but the expected stderr you have encoded here is an ICE?
// thief, `optimized_mir()`, forces borrowck, so we know that | ||
// is not yet stolen. | ||
tcx.mir_validated(owner_def_id).borrow(); | ||
// Force the MIR-based borrow checker to run; this also forces the |
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 don't 100% understand your logic in making this change part of this PR.
If you had not already added a guard elsewhere with a "if tcx.sess.nll(), then do not call bug()", then maybe I could understand forcing MIR borrowck to run.
But why do you need to force MIR borrow check to be run when you have the aforementioned guard in place on the ICE? Doesn't that avoid the problem (since we will call bug()
when we are not in feature(nll)
mode in that case?)
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 you are correct that this change is not needed. I thought it would allow me to use span-delay-bug initially but that turned out not to be the case.
☔ The latest upstream changes (presumably #49390) made this pull request unmergeable. Please resolve the merge conflicts. |
Ping from triage @nikomatsakis! The reviewer left some comments, could you address them? Also, there is a merge conflict that needs to be fixed. |
We haven't heard from @nikomatsakis in a few weeks, so closing this to keep the queue tidy. Please feel free to reopen when you have time to get back to this! |
NLL can mask regionck failures, leading borrowck to get itself into surprising situations. Rather than ICE, just ignore that.
Fixes #48697
r? @pnkfelix