interpret: go back to regular string interpolation for error messages#153611
interpret: go back to regular string interpolation for error messages#153611RalfJung wants to merge 3 commits intorust-lang:mainfrom
Conversation
|
Some changes occurred to the CTFE / Miri interpreter cc @rust-lang/miri The Miri subtree was changed cc @rust-lang/miri Some changes occurred to the CTFE machinery Some changes occurred to MIR optimizations cc @rust-lang/wg-mir-opt Some changes occurred to the CTFE / Miri interpreter |
|
|
caa7de3 to
d42a68b
Compare
This comment has been minimized.
This comment has been minimized.
| AlignFromBytesError::NotPowerOfTwo(align) => write!(f, "`{align}` is not a power of 2"), | ||
| AlignFromBytesError::TooLarge(align) => write!(f, "`{align}` is too large"), |
There was a problem hiding this comment.
I personally prefer this with the backticks
There was a problem hiding this comment.
These are just numbers. We don't usually render them with backticks. And in fact they were not rendered with backticks in const-eval errors before, only in JSON errors. I changed the strings here to avoid changing the const-eval error output.
a2139d5 to
a060599
Compare
| TooLarge(u64), | ||
| } | ||
|
|
||
| impl AlignFromBytesError { |
There was a problem hiding this comment.
The AlignFromBytesError type got added #111677. Reverting that PR would mean replacing it by String again, but it actually seems reasonable to have a proper error type here so I decided to keep the type, but simplify and deduplicate the logic for turning it into a user-visible message.
This comment has been minimized.
This comment has been minimized.
a060599 to
66fbaa6
Compare
|
Some changes occurred in compiler/rustc_codegen_gcc |
|
This is MUCH better, thanks a lot! |
fa2e674 to
5cf0904
Compare
This comment has been minimized.
This comment has been minimized.
5cf0904 to
86315e9
Compare
This comment has been minimized.
This comment has been minimized.
86315e9 to
e50b65c
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. |
Using the translatable diagnostic infrastructure adds a whole lot of boilerplate which isn't actually useful for const-eval errors, so let's get rid of it. This effectively reverts #111677. That PR effectively added 1000 lines and this PR only removes around 600 -- the difference is caused by (a) keeping some of the types around for validation, where we can use them to share error strings and to trigger the extra help for pointer byte shenanigans during CTFE, and (b) this not being a full revert of #111677; I am not touching diagnostics outside the interpreter such as all the const-checking code which also got converted to fluent in the same PR.
The last commit does something similar for
LayoutError, which also helps deduplicate a bunch of error strings. I can make that into a separate PR if you prefer.r? @oli-obk
Fixes #113117
Fixes #116764
Fixes #112618