Fix ICE on TypeTestError during speculative NLL solve - #159117
Fix ICE on TypeTestError during speculative NLL solve#159117mansiverma897993 wants to merge 1 commit into
Conversation
|
Thanks for the pull request, and welcome! The Rust Project is excited to review your changes, and you should hear from @wesleywiser (or someone else) some time within the next two weeks. Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (
Why was this reviewer chosen?The reviewer was selected based on:
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Your fix appears to cause additional ICEs. Or at least not address them? Unclear. It is often the case that an ICE should not be fixed by simply "fixing the ICE", but addressing the actual reason that the troublesome event occurred. That is, even if you can "make the error go away", the error being hit is a warning sign that there is a more fundamental issue with the codepath. This particular reproduction requires |
|
@workingjubilee Thanks for the clarification. I'll investigate the underlying cause in the speculative NLL path instead of only preventing the ICE, and update the PR accordingly. |
|
@workingjubilee I've updated the branch with the formatting fixes and resolved the tidy/lint failures. Let me know if you need anything else! Could you please take a look? |
|
You did not actually reassess your approach as you suggested you would. |
|
@workingjubilee you'll be probably better off putting your energy elsewhere seeing how other PRs went: rust-lang/libc#5229 |
This PR prevents registering a delayed bug during speculative NLL solve runs.
When solving NLL regions in helper/speculative contexts (e.g. compute_closure_requirements_modulo_opaques), any error generated is ignored and not emitted to the user. Registering a delayed bug for these ignored errors causes the compiler to panic/ICE at the end of compilation when no error has been emitted. This PR adds a speculative flag to prevent registering delayed bugs in such scenarios.