parse: test bad variants wrt. issue 48137.

This commit is contained in:
Mazdak Farrokhzad 2020-02-23 13:04:46 +01:00
parent fde5939d1c
commit 1c75f5aaa1
2 changed files with 97 additions and 0 deletions

View File

@ -0,0 +1,44 @@
fn main() {}
macro_rules! expand_to_enum {
() => {
enum BadE {}
//~^ ERROR enum is not supported in `trait`s or `impl`s
//~| ERROR enum is not supported in `trait`s or `impl`s
//~| ERROR enum is not supported in `extern` blocks
};
}
macro_rules! mac_impl {
($($i:item)*) => {
struct S;
impl S { $($i)* }
}
}
mac_impl! {
struct BadS; //~ ERROR struct is not supported in `trait`s or `impl`s
expand_to_enum!();
}
macro_rules! mac_trait {
($($i:item)*) => {
trait T { $($i)* }
}
}
mac_trait! {
struct BadS; //~ ERROR struct is not supported in `trait`s or `impl`s
expand_to_enum!();
}
macro_rules! mac_extern {
($($i:item)*) => {
extern "C" { $($i)* }
}
}
mac_extern! {
struct BadS; //~ ERROR struct is not supported in `extern` blocks
expand_to_enum!();
}

View File

@ -0,0 +1,53 @@
error: struct is not supported in `trait`s or `impl`s
--> $DIR/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.rs:20:5
|
LL | struct BadS;
| ^^^^^^^^^^^^
error: enum is not supported in `trait`s or `impl`s
--> $DIR/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.rs:5:9
|
LL | enum BadE {}
| ^^^^^^^^^
...
LL | expand_to_enum!();
| ------------------ in this macro invocation
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: struct is not supported in `trait`s or `impl`s
--> $DIR/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.rs:31:5
|
LL | struct BadS;
| ^^^^^^^^^^^^
error: enum is not supported in `trait`s or `impl`s
--> $DIR/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.rs:5:9
|
LL | enum BadE {}
| ^^^^^^^^^
...
LL | expand_to_enum!();
| ------------------ in this macro invocation
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: struct is not supported in `extern` blocks
--> $DIR/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.rs:42:5
|
LL | struct BadS;
| ^^^^^^^^^^^^
error: enum is not supported in `extern` blocks
--> $DIR/issue-48137-macros-cannot-interpolate-impl-items-bad-variants.rs:5:9
|
LL | enum BadE {}
| ^^^^^^^^^
...
LL | expand_to_enum!();
| ------------------ in this macro invocation
|
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 6 previous errors