Rollup merge of #98276 - compiler-errors:const-format-macro, r=oli-obk
Mention formatting macros when encountering `ArgumentV1` method in const Also open to just closing this if it's overkill. There are a lot of other distracting error messages around, so maybe it's not worth fixing just this one. Fixes #93665
This commit is contained in:
commit
5eb7238928
5 changed files with 112 additions and 1 deletions
21
src/test/ui/consts/const-eval/format.rs
Normal file
21
src/test/ui/consts/const-eval/format.rs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
const fn failure() {
|
||||
panic!("{:?}", 0);
|
||||
//~^ ERROR cannot call non-const formatting macro in constant functions
|
||||
//~| ERROR erroneous constant used
|
||||
//~| ERROR erroneous constant used
|
||||
//~| WARN this was previously accepted by the compiler
|
||||
//~| WARN this was previously accepted by the compiler
|
||||
}
|
||||
|
||||
const fn print() {
|
||||
println!("{:?}", 0);
|
||||
//~^ ERROR cannot call non-const formatting macro in constant functions
|
||||
//~| ERROR `Arguments::<'a>::new_v1` is not yet stable as a const fn
|
||||
//~| ERROR cannot call non-const fn `_print` in constant functions
|
||||
//~| ERROR erroneous constant used
|
||||
//~| ERROR erroneous constant used
|
||||
//~| WARN this was previously accepted by the compiler
|
||||
//~| WARN this was previously accepted by the compiler
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
78
src/test/ui/consts/const-eval/format.stderr
Normal file
78
src/test/ui/consts/const-eval/format.stderr
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
error[E0015]: cannot call non-const formatting macro in constant functions
|
||||
--> $DIR/format.rs:2:20
|
||||
|
|
||||
LL | panic!("{:?}", 0);
|
||||
| ^
|
||||
|
|
||||
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
|
||||
= note: this error originates in the macro `$crate::const_format_args` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0015]: cannot call non-const formatting macro in constant functions
|
||||
--> $DIR/format.rs:11:22
|
||||
|
|
||||
LL | println!("{:?}", 0);
|
||||
| ^
|
||||
|
|
||||
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
|
||||
= note: this error originates in the macro `$crate::format_args_nl` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: `Arguments::<'a>::new_v1` is not yet stable as a const fn
|
||||
--> $DIR/format.rs:11:5
|
||||
|
|
||||
LL | println!("{:?}", 0);
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= help: add `#![feature(const_fmt_arguments_new)]` to the crate attributes to enable
|
||||
= note: this error originates in the macro `$crate::format_args_nl` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error[E0015]: cannot call non-const fn `_print` in constant functions
|
||||
--> $DIR/format.rs:11:5
|
||||
|
|
||||
LL | println!("{:?}", 0);
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: calls in constant functions are limited to constant functions, tuple structs and tuple variants
|
||||
= note: this error originates in the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: erroneous constant used
|
||||
--> $DIR/format.rs:2:12
|
||||
|
|
||||
LL | panic!("{:?}", 0);
|
||||
| ^^^^^^ referenced constant has errors
|
||||
|
|
||||
= note: `#[deny(const_err)]` on by default
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
|
||||
|
||||
error: erroneous constant used
|
||||
--> $DIR/format.rs:2:20
|
||||
|
|
||||
LL | panic!("{:?}", 0);
|
||||
| ^ referenced constant has errors
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
|
||||
= note: this error originates in the macro `$crate::const_format_args` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: erroneous constant used
|
||||
--> $DIR/format.rs:11:14
|
||||
|
|
||||
LL | println!("{:?}", 0);
|
||||
| ^^^^^^ referenced constant has errors
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
|
||||
|
||||
error: erroneous constant used
|
||||
--> $DIR/format.rs:11:22
|
||||
|
|
||||
LL | println!("{:?}", 0);
|
||||
| ^ referenced constant has errors
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
= note: for more information, see issue #71800 <https://github.com/rust-lang/rust/issues/71800>
|
||||
= note: this error originates in the macro `$crate::format_args_nl` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
||||
error: aborting due to 8 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0015`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue