Fix: WF ICE assumptions on binders - #160497
Conversation
|
Some changes occurred to the core trait solver cc @rust-lang/initiative-trait-system-refactor |
|
Thanks for the pull request, and welcome! The Rust Project is excited to review your changes, and you should hear from @adwinwhite (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.
aefa84f to
5b7244d
Compare
|
@rustbot author |
|
Reminder, once the PR becomes ready for a review, use |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
79ad637 to
e176c84
Compare
|
@rustbot review |
|
I think we should look into the callers of |
I think the only caller of
The fix resolves them in Let me know if I'm overlooking something here. |
How so? |
Sorry.. you're right, I only checked And yes, there are 6 callers that could trigger this pattern, but fixing at every caller would be fragile. The visitor-level resolve matches the convention: callers of |
|
Convention is different in the next solver. We do not expect random unresolved vars here. |
e176c84 to
94dc630
Compare
|
Those Sorry for being pedantic over this. It's totally fine if you don't want to dig further and we can merge the original fix with a FIXME that we didn't find the source of the unresolved vars. |
thanks for the direction!! i’d like to dig into this a bit further. i’ll try to trace where the |
|
@adwinwhite, i did some tracing. the principal eq in the i'll add this explanation to the |
|
👍 Good job. We don't need the FIXME then. Just keep current fix and add comments on I think we should add a debug_assert |
e1a620e to
d918d13
Compare
This comment has been minimized.
This comment has been minimized.
d918d13 to
5b3fb6b
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
|
Thanks! |
…uwer Rollup of 6 pull requests Successful merges: - #160497 (Fix: WF ICE assumptions on binders) - #160845 (Better comments on small copy lists, explaining the limitations better) - #160869 (Add nightly-only support for Cargo unremap trim-paths files in `rust-lldb`) - #161214 (Reduce minimum LLDB to 21.1.0 for `lldb-repr` tests) - #161216 (Clean up some `lldb_batchmode` lints) - #161219 (bootstrap: Make various things non-pub)
Rollup merge of #160497 - ssenthilnathan3:fix/wf-ice-assumptions-on-binders, r=adwinwhite Fix: WF ICE assumptions on binders Fixes #160293 `-Zassumptions-on-binders` ICEs because the solver's `well_formed_goals` passes terms with resolvable inference variables to `unnormalized_obligations`, which asserts they're already resolved (unlike other callers). Resolve inference variables before computing WF obligations.
View all comments
Fixes #160293
-Zassumptions-on-bindersICEs because the solver'swell_formed_goalspasses terms with resolvable inference variables tounnormalized_obligations, which asserts they're already resolved (unlike other callers).Resolve inference variables before computing WF obligations.