Uh oh!
There was an error while loading. Please reload this page.
interpret: go back to regular string interpolation for error messages - #153611
Conversation
rustbot
commented
Mar 9, 2026
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 |
rustbot
commented
Mar 9, 2026
|
caa7de3 to
d42a68bCompare
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
a060599Compare| 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
66fbaa6Comparerustbot
commented
Mar 9, 2026
Some changes occurred in compiler/rustc_codegen_gcc |
GuillaumeGomez
commented
Mar 9, 2026
This is MUCH better, thanks a lot! |
fa2e674 to
5cf0904Compare
This comment has been minimized.
This comment has been minimized.
5cf0904 to
86315e9Compare
This comment has been minimized.
This comment has been minimized.
86315e9 to
e50b65cCompare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
e50b65c to
fe1f92aComparerustbot
commented
Mar 11, 2026
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. |
RalfJung
commented
Mar 11, 2026
@bors r=oli-obk |
…li-obk interpret: go back to regular string interpolation for error messages 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 rust-lang#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 rust-lang#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-obkFixesrust-lang#113117Fixesrust-lang#116764Fixesrust-lang#112618
…uwer Rollup of 9 pull requests Successful merges: - #153571 (Avoid ICE when an EII declaration conflicts with a constructor) - #153581 (Simplify `type_of_opaque`.) - #153611 (interpret: go back to regular string interpolation for error messages) - #153635 (Unify same-span labels in move error diagnostics) - #153660 (mir-opt: Drop invalid debuginfos after SingleUseConsts.) - #153685 (Introduce `for_each_query_vtable!` to move more code out of query macros) - #153671 (Make Enzyme has dependent on LLVM hash) - #153710 (remove `.ftl` checks from tidy) - #153720 (doc/rustc: clarify how to contact arm-maintainers)
…uwer Rollup of 9 pull requests Successful merges: - #153571 (Avoid ICE when an EII declaration conflicts with a constructor) - #153581 (Simplify `type_of_opaque`.) - #153611 (interpret: go back to regular string interpolation for error messages) - #153635 (Unify same-span labels in move error diagnostics) - #153660 (mir-opt: Drop invalid debuginfos after SingleUseConsts.) - #153685 (Introduce `for_each_query_vtable!` to move more code out of query macros) - #153671 (Make Enzyme has dependent on LLVM hash) - #153710 (remove `.ftl` checks from tidy) - #153720 (doc/rustc: clarify how to contact arm-maintainers)
…uwer Rollup of 9 pull requests Successful merges: - #153571 (Avoid ICE when an EII declaration conflicts with a constructor) - #153581 (Simplify `type_of_opaque`.) - #153611 (interpret: go back to regular string interpolation for error messages) - #153635 (Unify same-span labels in move error diagnostics) - #153660 (mir-opt: Drop invalid debuginfos after SingleUseConsts.) - #153685 (Introduce `for_each_query_vtable!` to move more code out of query macros) - #153671 (Make Enzyme has dependent on LLVM hash) - #153710 (remove `.ftl` checks from tidy) - #153720 (doc/rustc: clarify how to contact arm-maintainers)
…uwer Rollup of 12 pull requests Successful merges: - #152569 (Stop using rustc_layout_scalar_valid_range_* in rustc) - #153421 (Fix ICE in fn_delegation when child segment resolves to a trait) - #153571 (Avoid ICE when an EII declaration conflicts with a constructor) - #153581 (Simplify `type_of_opaque`.) - #153611 (interpret: go back to regular string interpolation for error messages) - #153635 (Unify same-span labels in move error diagnostics) - #153660 (mir-opt: Drop invalid debuginfos after SingleUseConsts.) - #153685 (Introduce `for_each_query_vtable!` to move more code out of query macros) - #153722 (miri-test-libstd: use --tests and update some comments) - #153671 (Make Enzyme has dependent on LLVM hash) - #153710 (remove `.ftl` checks from tidy) - #153720 (doc/rustc: clarify how to contact arm-maintainers)
Uh oh!
There was an error while loading. Please reload this page.
…uwer Rollup of 12 pull requests Successful merges: - rust-lang/rust#152569 (Stop using rustc_layout_scalar_valid_range_* in rustc) - rust-lang/rust#153421 (Fix ICE in fn_delegation when child segment resolves to a trait) - rust-lang/rust#153571 (Avoid ICE when an EII declaration conflicts with a constructor) - rust-lang/rust#153581 (Simplify `type_of_opaque`.) - rust-lang/rust#153611 (interpret: go back to regular string interpolation for error messages) - rust-lang/rust#153635 (Unify same-span labels in move error diagnostics) - rust-lang/rust#153660 (mir-opt: Drop invalid debuginfos after SingleUseConsts.) - rust-lang/rust#153685 (Introduce `for_each_query_vtable!` to move more code out of query macros) - rust-lang/rust#153722 (miri-test-libstd: use --tests and update some comments) - rust-lang/rust#153671 (Make Enzyme has dependent on LLVM hash) - rust-lang/rust#153710 (remove `.ftl` checks from tidy) - rust-lang/rust#153720 (doc/rustc: clarify how to contact arm-maintainers)
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