diff options
| author | Michael Goulet <michael@errs.io> | 2022-07-17 00:04:30 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-07-19 16:41:32 +0000 |
| commit | dd109c8c10ddcb3924adbcdd27baf6f525824d52 (patch) | |
| tree | f4c6a15b15b0781f917d8632ed15b78fa6b219f4 /src | |
| parent | a289cfcfb32593c63d75f113547f63ffe2dde285 (diff) | |
| download | rust-dd109c8c10ddcb3924adbcdd27baf6f525824d52.tar.gz rust-dd109c8c10ddcb3924adbcdd27baf6f525824d52.zip | |
better error for bad depth on macro metavar expr
Diffstat (limited to 'src')
4 files changed, 27 insertions, 8 deletions
diff --git a/src/test/ui/macros/meta-variable-depth-outside-repeat.rs b/src/test/ui/macros/meta-variable-depth-outside-repeat.rs new file mode 100644 index 00000000000..b7fb947854f --- /dev/null +++ b/src/test/ui/macros/meta-variable-depth-outside-repeat.rs @@ -0,0 +1,12 @@ +#![feature(macro_metavar_expr)] + +macro_rules! metavar { + ( $i:expr ) => { + ${length(0)} + //~^ ERROR meta-variable expression `length` with depth parameter must be called inside of a macro repetition + }; +} + +const _: i32 = metavar!(0); + +fn main() {} diff --git a/src/test/ui/macros/meta-variable-depth-outside-repeat.stderr b/src/test/ui/macros/meta-variable-depth-outside-repeat.stderr new file mode 100644 index 00000000000..fad150cadfc --- /dev/null +++ b/src/test/ui/macros/meta-variable-depth-outside-repeat.stderr @@ -0,0 +1,8 @@ +error: meta-variable expression `length` with depth parameter must be called inside of a macro repetition + --> $DIR/meta-variable-depth-outside-repeat.rs:5:10 + | +LL | ${length(0)} + | ^^^^^^^^^^^ + +error: aborting due to previous error + diff --git a/src/test/ui/macros/rfc-3086-metavar-expr/out-of-bounds-arguments.rs b/src/test/ui/macros/rfc-3086-metavar-expr/out-of-bounds-arguments.rs index d81c8628bab..6a0d68bd6b1 100644 --- a/src/test/ui/macros/rfc-3086-metavar-expr/out-of-bounds-arguments.rs +++ b/src/test/ui/macros/rfc-3086-metavar-expr/out-of-bounds-arguments.rs @@ -5,7 +5,7 @@ macro_rules! a { ( ${count(foo, 0)}, ${count(foo, 10)}, - //~^ ERROR count depth must be less than 4 + //~^ ERROR depth parameter on meta-variable expression `count` must be less than 4 ) }; } @@ -17,7 +17,7 @@ macro_rules! b { ${ignore(foo)} ${index(0)}, ${index(10)}, - //~^ ERROR index depth must be less than 3 + //~^ ERROR depth parameter on meta-variable expression `index` must be less than 3 )* )* )* ) }; @@ -30,15 +30,14 @@ macro_rules! c { ${ignore(foo)} ${length(0)} ${length(10)} - //~^ ERROR length depth must be less than 2 + //~^ ERROR depth parameter on meta-variable expression `length` must be less than 2 )* )* ) }; } - fn main() { a!( { [ (a) ] [ (b c) ] } ); b!( { [ a b ] } ); - c!( { a } ); + c!({ a }); } diff --git a/src/test/ui/macros/rfc-3086-metavar-expr/out-of-bounds-arguments.stderr b/src/test/ui/macros/rfc-3086-metavar-expr/out-of-bounds-arguments.stderr index 7474c03c0f9..236122b6465 100644 --- a/src/test/ui/macros/rfc-3086-metavar-expr/out-of-bounds-arguments.stderr +++ b/src/test/ui/macros/rfc-3086-metavar-expr/out-of-bounds-arguments.stderr @@ -1,16 +1,16 @@ -error: count depth must be less than 4 +error: depth parameter on meta-variable expression `count` must be less than 4 --> $DIR/out-of-bounds-arguments.rs:7:14 | LL | ${count(foo, 10)}, | ^^^^^^^^^^^^^^^^ -error: index depth must be less than 3 +error: depth parameter on meta-variable expression `index` must be less than 3 --> $DIR/out-of-bounds-arguments.rs:19:18 | LL | ${index(10)}, | ^^^^^^^^^^^ -error: length depth must be less than 2 +error: depth parameter on meta-variable expression `length` must be less than 2 --> $DIR/out-of-bounds-arguments.rs:32:18 | LL | ${length(10)} |
