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.rs8
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 */
"#]],
)
}