summaryrefslogtreecommitdiffstats
path: root/tests/ui/infinite
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tests/ui/infinite/infinite-autoderef.rs (renamed from src/test/ui/infinite/infinite-autoderef.rs)0
-rw-r--r--tests/ui/infinite/infinite-autoderef.stderr (renamed from src/test/ui/infinite/infinite-autoderef.stderr)0
-rw-r--r--tests/ui/infinite/infinite-instantiation.polonius.stderr (renamed from src/test/ui/infinite/infinite-instantiation.polonius.stderr)0
-rw-r--r--tests/ui/infinite/infinite-instantiation.rs (renamed from src/test/ui/infinite/infinite-instantiation.rs)0
-rw-r--r--tests/ui/infinite/infinite-instantiation.stderr (renamed from src/test/ui/infinite/infinite-instantiation.stderr)0
-rw-r--r--tests/ui/infinite/infinite-macro-expansion.rs (renamed from src/test/ui/infinite/infinite-macro-expansion.rs)0
-rw-r--r--tests/ui/infinite/infinite-macro-expansion.stderr (renamed from src/test/ui/infinite/infinite-macro-expansion.stderr)0
-rw-r--r--tests/ui/infinite/infinite-recursion-const-fn.rs (renamed from src/test/ui/infinite/infinite-recursion-const-fn.rs)0
-rw-r--r--tests/ui/infinite/infinite-recursion-const-fn.stderr (renamed from src/test/ui/infinite/infinite-recursion-const-fn.stderr)0
-rw-r--r--tests/ui/infinite/infinite-struct.rs (renamed from src/test/ui/infinite/infinite-struct.rs)0
-rw-r--r--tests/ui/infinite/infinite-struct.stderr (renamed from src/test/ui/infinite/infinite-struct.stderr)0
-rw-r--r--tests/ui/infinite/infinite-tag-type-recursion.rs (renamed from src/test/ui/infinite/infinite-tag-type-recursion.rs)0
-rw-r--r--tests/ui/infinite/infinite-tag-type-recursion.stderr (renamed from src/test/ui/infinite/infinite-tag-type-recursion.stderr)0
-rw-r--r--tests/ui/infinite/infinite-trait-alias-recursion.rs (renamed from src/test/ui/infinite/infinite-trait-alias-recursion.rs)0
-rw-r--r--tests/ui/infinite/infinite-trait-alias-recursion.stderr (renamed from src/test/ui/infinite/infinite-trait-alias-recursion.stderr)0
-rw-r--r--tests/ui/infinite/infinite-type-alias-mutual-recursion.rs (renamed from src/test/ui/infinite/infinite-type-alias-mutual-recursion.rs)0
-rw-r--r--tests/ui/infinite/infinite-type-alias-mutual-recursion.stderr (renamed from src/test/ui/infinite/infinite-type-alias-mutual-recursion.stderr)0
-rw-r--r--tests/ui/infinite/infinite-vec-type-recursion.rs (renamed from src/test/ui/infinite/infinite-vec-type-recursion.rs)0
-rw-r--r--tests/ui/infinite/infinite-vec-type-recursion.stderr (renamed from src/test/ui/infinite/infinite-vec-type-recursion.stderr)0
-rw-r--r--tests/ui/infinite/issue-41731-infinite-macro-print.rs15
-rw-r--r--tests/ui/infinite/issue-41731-infinite-macro-print.stderr38
-rw-r--r--tests/ui/infinite/issue-41731-infinite-macro-println.rs15
-rw-r--r--tests/ui/infinite/issue-41731-infinite-macro-println.stderr38
23 files changed, 106 insertions, 0 deletions
diff --git a/src/test/ui/infinite/infinite-autoderef.rs b/tests/ui/infinite/infinite-autoderef.rs
index cbbe1f81d..cbbe1f81d 100644
--- a/src/test/ui/infinite/infinite-autoderef.rs
+++ b/tests/ui/infinite/infinite-autoderef.rs
diff --git a/src/test/ui/infinite/infinite-autoderef.stderr b/tests/ui/infinite/infinite-autoderef.stderr
index 51b61e3a6..51b61e3a6 100644
--- a/src/test/ui/infinite/infinite-autoderef.stderr
+++ b/tests/ui/infinite/infinite-autoderef.stderr
diff --git a/src/test/ui/infinite/infinite-instantiation.polonius.stderr b/tests/ui/infinite/infinite-instantiation.polonius.stderr
index 29eb8c481..29eb8c481 100644
--- a/src/test/ui/infinite/infinite-instantiation.polonius.stderr
+++ b/tests/ui/infinite/infinite-instantiation.polonius.stderr
diff --git a/src/test/ui/infinite/infinite-instantiation.rs b/tests/ui/infinite/infinite-instantiation.rs
index 9b9f332ca..9b9f332ca 100644
--- a/src/test/ui/infinite/infinite-instantiation.rs
+++ b/tests/ui/infinite/infinite-instantiation.rs
diff --git a/src/test/ui/infinite/infinite-instantiation.stderr b/tests/ui/infinite/infinite-instantiation.stderr
index 951e0f587..951e0f587 100644
--- a/src/test/ui/infinite/infinite-instantiation.stderr
+++ b/tests/ui/infinite/infinite-instantiation.stderr
diff --git a/src/test/ui/infinite/infinite-macro-expansion.rs b/tests/ui/infinite/infinite-macro-expansion.rs
index 6ea0bc73d..6ea0bc73d 100644
--- a/src/test/ui/infinite/infinite-macro-expansion.rs
+++ b/tests/ui/infinite/infinite-macro-expansion.rs
diff --git a/src/test/ui/infinite/infinite-macro-expansion.stderr b/tests/ui/infinite/infinite-macro-expansion.stderr
index 15654dfaf..15654dfaf 100644
--- a/src/test/ui/infinite/infinite-macro-expansion.stderr
+++ b/tests/ui/infinite/infinite-macro-expansion.stderr
diff --git a/src/test/ui/infinite/infinite-recursion-const-fn.rs b/tests/ui/infinite/infinite-recursion-const-fn.rs
index 420915311..420915311 100644
--- a/src/test/ui/infinite/infinite-recursion-const-fn.rs
+++ b/tests/ui/infinite/infinite-recursion-const-fn.rs
diff --git a/src/test/ui/infinite/infinite-recursion-const-fn.stderr b/tests/ui/infinite/infinite-recursion-const-fn.stderr
index 53b603a47..53b603a47 100644
--- a/src/test/ui/infinite/infinite-recursion-const-fn.stderr
+++ b/tests/ui/infinite/infinite-recursion-const-fn.stderr
diff --git a/src/test/ui/infinite/infinite-struct.rs b/tests/ui/infinite/infinite-struct.rs
index f08e10f6b..f08e10f6b 100644
--- a/src/test/ui/infinite/infinite-struct.rs
+++ b/tests/ui/infinite/infinite-struct.rs
diff --git a/src/test/ui/infinite/infinite-struct.stderr b/tests/ui/infinite/infinite-struct.stderr
index b6c72b1de..b6c72b1de 100644
--- a/src/test/ui/infinite/infinite-struct.stderr
+++ b/tests/ui/infinite/infinite-struct.stderr
diff --git a/src/test/ui/infinite/infinite-tag-type-recursion.rs b/tests/ui/infinite/infinite-tag-type-recursion.rs
index 87a9e08dd..87a9e08dd 100644
--- a/src/test/ui/infinite/infinite-tag-type-recursion.rs
+++ b/tests/ui/infinite/infinite-tag-type-recursion.rs
diff --git a/src/test/ui/infinite/infinite-tag-type-recursion.stderr b/tests/ui/infinite/infinite-tag-type-recursion.stderr
index 513bbfc1b..513bbfc1b 100644
--- a/src/test/ui/infinite/infinite-tag-type-recursion.stderr
+++ b/tests/ui/infinite/infinite-tag-type-recursion.stderr
diff --git a/src/test/ui/infinite/infinite-trait-alias-recursion.rs b/tests/ui/infinite/infinite-trait-alias-recursion.rs
index ec86744e6..ec86744e6 100644
--- a/src/test/ui/infinite/infinite-trait-alias-recursion.rs
+++ b/tests/ui/infinite/infinite-trait-alias-recursion.rs
diff --git a/src/test/ui/infinite/infinite-trait-alias-recursion.stderr b/tests/ui/infinite/infinite-trait-alias-recursion.stderr
index b925b3b01..b925b3b01 100644
--- a/src/test/ui/infinite/infinite-trait-alias-recursion.stderr
+++ b/tests/ui/infinite/infinite-trait-alias-recursion.stderr
diff --git a/src/test/ui/infinite/infinite-type-alias-mutual-recursion.rs b/tests/ui/infinite/infinite-type-alias-mutual-recursion.rs
index 5381eedcf..5381eedcf 100644
--- a/src/test/ui/infinite/infinite-type-alias-mutual-recursion.rs
+++ b/tests/ui/infinite/infinite-type-alias-mutual-recursion.rs
diff --git a/src/test/ui/infinite/infinite-type-alias-mutual-recursion.stderr b/tests/ui/infinite/infinite-type-alias-mutual-recursion.stderr
index 7f82b2944..7f82b2944 100644
--- a/src/test/ui/infinite/infinite-type-alias-mutual-recursion.stderr
+++ b/tests/ui/infinite/infinite-type-alias-mutual-recursion.stderr
diff --git a/src/test/ui/infinite/infinite-vec-type-recursion.rs b/tests/ui/infinite/infinite-vec-type-recursion.rs
index 356818225..356818225 100644
--- a/src/test/ui/infinite/infinite-vec-type-recursion.rs
+++ b/tests/ui/infinite/infinite-vec-type-recursion.rs
diff --git a/src/test/ui/infinite/infinite-vec-type-recursion.stderr b/tests/ui/infinite/infinite-vec-type-recursion.stderr
index 1e487a5b1..1e487a5b1 100644
--- a/src/test/ui/infinite/infinite-vec-type-recursion.stderr
+++ b/tests/ui/infinite/infinite-vec-type-recursion.stderr
diff --git a/tests/ui/infinite/issue-41731-infinite-macro-print.rs b/tests/ui/infinite/issue-41731-infinite-macro-print.rs
new file mode 100644
index 000000000..d52e6e7e9
--- /dev/null
+++ b/tests/ui/infinite/issue-41731-infinite-macro-print.rs
@@ -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");
+}
diff --git a/tests/ui/infinite/issue-41731-infinite-macro-print.stderr b/tests/ui/infinite/issue-41731-infinite-macro-print.stderr
new file mode 100644
index 000000000..e30b2039d
--- /dev/null
+++ b/tests/ui/infinite/issue-41731-infinite-macro-print.stderr
@@ -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
+
diff --git a/tests/ui/infinite/issue-41731-infinite-macro-println.rs b/tests/ui/infinite/issue-41731-infinite-macro-println.rs
new file mode 100644
index 000000000..3c2b7ee02
--- /dev/null
+++ b/tests/ui/infinite/issue-41731-infinite-macro-println.rs
@@ -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");
+}
diff --git a/tests/ui/infinite/issue-41731-infinite-macro-println.stderr b/tests/ui/infinite/issue-41731-infinite-macro-println.stderr
new file mode 100644
index 000000000..66b466daf
--- /dev/null
+++ b/tests/ui/infinite/issue-41731-infinite-macro-println.stderr
@@ -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
+