interpret: go back to regular string interpolation for error messages#153611
interpret: go back to regular string interpolation for error messages#153611rust-bors[bot] merged 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 comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
e50b65c to
fe1f92a
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. |
|
@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-obk Fixes rust-lang#113117 Fixes rust-lang#116764 Fixes rust-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)
…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