parent
ec28f5338b
commit
cf312ae1f2
15
src/test/ui/infinite/issue-41731-infinite-macro-print.rs
Normal file
15
src/test/ui/infinite/issue-41731-infinite-macro-print.rs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// compile-flags: -Z trace-macros
|
||||||
|
|
||||||
|
#![recursion_limit = "5"]
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
macro_rules! stack {
|
||||||
|
($overflow:expr) => {
|
||||||
|
print!(stack!($overflow));
|
||||||
|
//~^ ERROR recursion limit reached while expanding
|
||||||
|
//~| ERROR format argument must be a string literal
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
stack!("overflow");
|
||||||
|
}
|
38
src/test/ui/infinite/issue-41731-infinite-macro-print.stderr
Normal file
38
src/test/ui/infinite/issue-41731-infinite-macro-print.stderr
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
error: recursion limit reached while expanding `$crate::format_args!`
|
||||||
|
--> $DIR/issue-41731-infinite-macro-print.rs:14:5
|
||||||
|
|
|
||||||
|
LL | stack!("overflow");
|
||||||
|
| ^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "10"]` attribute to your crate (`issue_41731_infinite_macro_print`)
|
||||||
|
= note: this error originates in the macro `print` which comes from the expansion of the macro `stack` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||||
|
|
||||||
|
note: trace_macro
|
||||||
|
--> $DIR/issue-41731-infinite-macro-print.rs:14:5
|
||||||
|
|
|
||||||
|
LL | stack!("overflow");
|
||||||
|
| ^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= note: expanding `stack! { "overflow" }`
|
||||||
|
= note: to `print! (stack! ("overflow")) ;`
|
||||||
|
= note: expanding `print! { stack! ("overflow") }`
|
||||||
|
= note: to `{ $crate :: io :: _print($crate :: format_args! (stack! ("overflow"))) ; }`
|
||||||
|
= note: expanding `stack! { "overflow" }`
|
||||||
|
= note: to `print! (stack! ("overflow")) ;`
|
||||||
|
= note: expanding `print! { stack! ("overflow") }`
|
||||||
|
= note: to `{ $crate :: io :: _print($crate :: format_args! (stack! ("overflow"))) ; }`
|
||||||
|
|
||||||
|
error: format argument must be a string literal
|
||||||
|
--> $DIR/issue-41731-infinite-macro-print.rs:14:5
|
||||||
|
|
|
||||||
|
LL | stack!("overflow");
|
||||||
|
| ^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= note: this error originates in the macro `print` which comes from the expansion of the macro `stack` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||||
|
help: you might be missing a string literal to format with
|
||||||
|
|
|
||||||
|
LL | print!("{}", stack!($overflow));
|
||||||
|
| +++++
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
15
src/test/ui/infinite/issue-41731-infinite-macro-println.rs
Normal file
15
src/test/ui/infinite/issue-41731-infinite-macro-println.rs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
// compile-flags: -Z trace-macros
|
||||||
|
|
||||||
|
#![recursion_limit = "5"]
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
macro_rules! stack {
|
||||||
|
($overflow:expr) => {
|
||||||
|
println!(stack!($overflow));
|
||||||
|
//~^ ERROR recursion limit reached while expanding
|
||||||
|
//~| ERROR format argument must be a string literal
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
stack!("overflow");
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
error: recursion limit reached while expanding `$crate::format_args_nl!`
|
||||||
|
--> $DIR/issue-41731-infinite-macro-println.rs:14:5
|
||||||
|
|
|
||||||
|
LL | stack!("overflow");
|
||||||
|
| ^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "10"]` attribute to your crate (`issue_41731_infinite_macro_println`)
|
||||||
|
= note: this error originates in the macro `println` which comes from the expansion of the macro `stack` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||||
|
|
||||||
|
note: trace_macro
|
||||||
|
--> $DIR/issue-41731-infinite-macro-println.rs:14:5
|
||||||
|
|
|
||||||
|
LL | stack!("overflow");
|
||||||
|
| ^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= note: expanding `stack! { "overflow" }`
|
||||||
|
= note: to `println! (stack! ("overflow")) ;`
|
||||||
|
= note: expanding `println! { stack! ("overflow") }`
|
||||||
|
= note: to `{ $crate :: io :: _print($crate :: format_args_nl! (stack! ("overflow"))) ; }`
|
||||||
|
= note: expanding `stack! { "overflow" }`
|
||||||
|
= note: to `println! (stack! ("overflow")) ;`
|
||||||
|
= note: expanding `println! { stack! ("overflow") }`
|
||||||
|
= note: to `{ $crate :: io :: _print($crate :: format_args_nl! (stack! ("overflow"))) ; }`
|
||||||
|
|
||||||
|
error: format argument must be a string literal
|
||||||
|
--> $DIR/issue-41731-infinite-macro-println.rs:14:5
|
||||||
|
|
|
||||||
|
LL | stack!("overflow");
|
||||||
|
| ^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= note: this error originates in the macro `println` which comes from the expansion of the macro `stack` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||||
|
help: you might be missing a string literal to format with
|
||||||
|
|
|
||||||
|
LL | println!("{}", stack!($overflow));
|
||||||
|
| +++++
|
||||||
|
|
||||||
|
error: aborting due to 2 previous errors
|
||||||
|
|
Loading…
Reference in New Issue
Block a user