diff options
| author | Fisher Darling <fdarling@mines.edu> | 2019-12-12 21:18:21 -0700 |
|---|---|---|
| committer | Fisher Darling <fdarlingco@gmail.com> | 2020-02-16 19:08:25 -0700 |
| commit | c53693d34d83e6221dc8b93a2c4e17e66fa6f0e2 (patch) | |
| tree | dfdd15a42fa21e8ecd3cf1f8313a96688b12cd3b /src/test/ui/recursion_limit | |
| parent | 116dff95a37214e86f067715374a18a4de1621f0 (diff) | |
| download | rust-c53693d34d83e6221dc8b93a2c4e17e66fa6f0e2.tar.gz rust-c53693d34d83e6221dc8b93a2c4e17e66fa6f0e2.zip | |
Handle recursion_limit parsing errors
Diffstat (limited to 'src/test/ui/recursion_limit')
| -rw-r--r-- | src/test/ui/recursion_limit/empty.rs | 6 | ||||
| -rw-r--r-- | src/test/ui/recursion_limit/empty.stderr | 10 | ||||
| -rw-r--r-- | src/test/ui/recursion_limit/invalid_digit.rs | 6 | ||||
| -rw-r--r-- | src/test/ui/recursion_limit/invalid_digit.stderr | 10 | ||||
| -rw-r--r-- | src/test/ui/recursion_limit/overflow.rs | 7 | ||||
| -rw-r--r-- | src/test/ui/recursion_limit/overflow.stderr | 10 | ||||
| -rw-r--r-- | src/test/ui/recursion_limit/zero.rs | 12 | ||||
| -rw-r--r-- | src/test/ui/recursion_limit/zero.stderr | 10 |
8 files changed, 71 insertions, 0 deletions
diff --git a/src/test/ui/recursion_limit/empty.rs b/src/test/ui/recursion_limit/empty.rs new file mode 100644 index 00000000000..2a064f3e115 --- /dev/null +++ b/src/test/ui/recursion_limit/empty.rs @@ -0,0 +1,6 @@ +// Test the parse error for an empty recursion_limit + +#![recursion_limit = ""] //~ ERROR `recursion_limit` must be a non-negative integer + //~| `recursion_limit` must be a non-negative integer + +fn main() {} diff --git a/src/test/ui/recursion_limit/empty.stderr b/src/test/ui/recursion_limit/empty.stderr new file mode 100644 index 00000000000..690c33a7463 --- /dev/null +++ b/src/test/ui/recursion_limit/empty.stderr @@ -0,0 +1,10 @@ +error: `recursion_limit` must be a non-negative integer + --> $DIR/empty.rs:3:1 + | +LL | #![recursion_limit = ""] + | ^^^^^^^^^^^^^^^^^^^^^--^ + | | + | `recursion_limit` must be a non-negative integer + +error: aborting due to previous error + diff --git a/src/test/ui/recursion_limit/invalid_digit.rs b/src/test/ui/recursion_limit/invalid_digit.rs new file mode 100644 index 00000000000..903d8040476 --- /dev/null +++ b/src/test/ui/recursion_limit/invalid_digit.rs @@ -0,0 +1,6 @@ +// Test the parse error for an invalid digit in recursion_limit + +#![recursion_limit = "-100"] //~ ERROR `recursion_limit` must be a non-negative integer + //~| not a valid integer + +fn main() {} diff --git a/src/test/ui/recursion_limit/invalid_digit.stderr b/src/test/ui/recursion_limit/invalid_digit.stderr new file mode 100644 index 00000000000..1dcfea547c0 --- /dev/null +++ b/src/test/ui/recursion_limit/invalid_digit.stderr @@ -0,0 +1,10 @@ +error: `recursion_limit` must be a non-negative integer + --> $DIR/invalid_digit.rs:3:1 + | +LL | #![recursion_limit = "-100"] + | ^^^^^^^^^^^^^^^^^^^^^------^ + | | + | not a valid integer + +error: aborting due to previous error + diff --git a/src/test/ui/recursion_limit/overflow.rs b/src/test/ui/recursion_limit/overflow.rs new file mode 100644 index 00000000000..6487b1350aa --- /dev/null +++ b/src/test/ui/recursion_limit/overflow.rs @@ -0,0 +1,7 @@ +// Test the parse error for an overflowing recursion_limit + +#![recursion_limit = "999999999999999999999999"] +//~^ ERROR `recursion_limit` must be a non-negative integer +//~| `recursion_limit` is too large + +fn main() {} diff --git a/src/test/ui/recursion_limit/overflow.stderr b/src/test/ui/recursion_limit/overflow.stderr new file mode 100644 index 00000000000..c3fc11989dc --- /dev/null +++ b/src/test/ui/recursion_limit/overflow.stderr @@ -0,0 +1,10 @@ +error: `recursion_limit` must be a non-negative integer + --> $DIR/overflow.rs:3:1 + | +LL | #![recursion_limit = "999999999999999999999999"] + | ^^^^^^^^^^^^^^^^^^^^^--------------------------^ + | | + | `recursion_limit` is too large + +error: aborting due to previous error + diff --git a/src/test/ui/recursion_limit/zero.rs b/src/test/ui/recursion_limit/zero.rs new file mode 100644 index 00000000000..f7199944e00 --- /dev/null +++ b/src/test/ui/recursion_limit/zero.rs @@ -0,0 +1,12 @@ +// Test that a `recursion_limit` of 0 is valid + +#![recursion_limit = "0"] + +macro_rules! test { + () => {}; + ($tt:tt) => { test!(); }; +} + +test!(test); //~ ERROR 10:1: 10:13: recursion limit reached while expanding `test!` + +fn main() {} diff --git a/src/test/ui/recursion_limit/zero.stderr b/src/test/ui/recursion_limit/zero.stderr new file mode 100644 index 00000000000..6358805d89d --- /dev/null +++ b/src/test/ui/recursion_limit/zero.stderr @@ -0,0 +1,10 @@ +error: recursion limit reached while expanding `test!` + --> $DIR/zero.rs:10:1 + | +LL | test!(test); + | ^^^^^^^^^^^^ + | + = help: consider adding a `#![recursion_limit="0"]` attribute to your crate (`zero`) + +error: aborting due to previous error + |
