-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
Fix ICE when projection error reporting sees opaque alias terms #151923
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
Fix ICE when projection error reporting sees opaque alias terms #151923
Conversation
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.
this fix does indeed looks correct to me, but id still like to check in with someone who better understand this code, @fmease maybe?
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.
Thx! @bors r=Kivooeo,fmease rollup
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.
The fix is correct; the existing logic in report_projection_error "can only deal with" / "is mostly geared to handle" projection mismatches, not arbitrary aliases mismatches.
Still, we currently map unsolved NormalizesTo and AliasRelate goals to FulfillmentErrorCode::Project (in fn fulfillment_error_for_no_solution).
Long term, we should probably rename+generalize FulfillmentErrorCode::Project to account for all AliasTerms and extend downstream code to handle all alias terms better (e.g., give more suggestions).
…relate, r=Kivooeo,fmease Fix ICE when projection error reporting sees opaque alias terms Fixes rust-lang#151331
…uwer Rollup of 10 pull requests Successful merges: - #150428 (UnixStream/UnixListener on Windows ) - #147400 (TryFrom<integer> for bool) - #150993 (std: sys: uefi: os: Implement join_paths) - #151483 (Add regression test for issue #138225) - #151568 (Update hexagon target linker configurations) - #151725 (Fix outdated Debian Ports ISO reference) - #151895 (Move UI tests batch) - #151923 (Fix ICE when projection error reporting sees opaque alias terms) - #151947 (Include assoc const projections in CFI trait object) - #151948 (Handle unbalanced delimiters gracefully in make_attr_token_stream)
Rollup of 11 pull requests Successful merges: - #151756 (Avoid miri error in `slice::sort` under Stacked Borrows) - #147400 (TryFrom<integer> for bool) - #150993 (std: sys: uefi: os: Implement join_paths) - #151483 (Add regression test for issue #138225) - #151568 (Update hexagon target linker configurations) - #151725 (Fix outdated Debian Ports ISO reference) - #151895 (Move UI tests batch) - #151923 (Fix ICE when projection error reporting sees opaque alias terms) - #151947 (Include assoc const projections in CFI trait object) - #151948 (Handle unbalanced delimiters gracefully in make_attr_token_stream) - #151963 (Add regression test for negative literal in a range of unsigned type)
Rollup of 11 pull requests Successful merges: - #151756 (Avoid miri error in `slice::sort` under Stacked Borrows) - #147400 (TryFrom<integer> for bool) - #150993 (std: sys: uefi: os: Implement join_paths) - #151483 (Add regression test for issue #138225) - #151568 (Update hexagon target linker configurations) - #151725 (Fix outdated Debian Ports ISO reference) - #151895 (Move UI tests batch) - #151923 (Fix ICE when projection error reporting sees opaque alias terms) - #151947 (Include assoc const projections in CFI trait object) - #151948 (Handle unbalanced delimiters gracefully in make_attr_token_stream) - #151963 (Add regression test for negative literal in a range of unsigned type)
Fixes #151331