Skip to content

Commit

Permalink
parse: test bad variants wrt. issue 48137.
Browse files Browse the repository at this point in the history
  • Loading branch information
Centril committed Feb 23, 2020
1 parent fde5939 commit 1c75f5a
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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!();
}
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 1c75f5a

Please sign in to comment.