Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/macro_expansion_tests/mbe/meta_syntax.rs')
| -rw-r--r-- | crates/hir-def/src/macro_expansion_tests/mbe/meta_syntax.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/crates/hir-def/src/macro_expansion_tests/mbe/meta_syntax.rs b/crates/hir-def/src/macro_expansion_tests/mbe/meta_syntax.rs index 636a66ad53..8aff784087 100644 --- a/crates/hir-def/src/macro_expansion_tests/mbe/meta_syntax.rs +++ b/crates/hir-def/src/macro_expansion_tests/mbe/meta_syntax.rs @@ -16,7 +16,9 @@ macro_rules! m { ($($i:ident)*) => ($_); ($($true:ident)*) => ($true); ($($false:ident)*) => ($false); + (double_dollar) => ($$); ($) => (m!($);); + ($($t:tt)*) => ($( ${ignore(t)} ${index()} )-*); } m!($); "#, @@ -29,7 +31,9 @@ macro_rules! m { ($($i:ident)*) => ($_); ($($true:ident)*) => ($true); ($($false:ident)*) => ($false); + (double_dollar) => ($$); ($) => (m!($);); + ($($t:tt)*) => ($( ${ignore(t)} ${index()} )-*); } m!($); "#]], @@ -59,6 +63,8 @@ f3!(); macro_rules! m1 { ($$i) => () } m1!(); +macro_rules! m2 { () => ( ${invalid()} ) } +m2!(); "#, expect![[r#" macro_rules! i1 { invalid } @@ -80,6 +86,8 @@ macro_rules! f3 { ($i:_) => () } macro_rules! m1 { ($$i) => () } /* error: invalid macro definition: `$$` is not allowed on the pattern side */ +macro_rules! m2 { () => ( ${invalid()} ) } +/* error: invalid macro definition: invalid metavariable expression */ "#]], ) } |