Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/macro_expansion_tests/mbe.rs')
-rw-r--r--crates/hir-def/src/macro_expansion_tests/mbe.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/crates/hir-def/src/macro_expansion_tests/mbe.rs b/crates/hir-def/src/macro_expansion_tests/mbe.rs
index ddf1a213d7..f99030950d 100644
--- a/crates/hir-def/src/macro_expansion_tests/mbe.rs
+++ b/crates/hir-def/src/macro_expansion_tests/mbe.rs
@@ -1979,3 +1979,51 @@ fn f() {
"#]],
);
}
+
+#[test]
+fn semicolon_does_not_glue() {
+ check(
+ r#"
+macro_rules! bug {
+ ($id: expr) => {
+ true
+ };
+ ($id: expr; $($attr: ident),*) => {
+ true
+ };
+ ($id: expr; $($attr: ident),*; $norm: expr) => {
+ true
+ };
+ ($id: expr; $($attr: ident),*;; $print: expr) => {
+ true
+ };
+ ($id: expr; $($attr: ident),*; $norm: expr; $print: expr) => {
+ true
+ };
+}
+
+let _ = bug!(a;;;test);
+ "#,
+ expect![[r#"
+macro_rules! bug {
+ ($id: expr) => {
+ true
+ };
+ ($id: expr; $($attr: ident),*) => {
+ true
+ };
+ ($id: expr; $($attr: ident),*; $norm: expr) => {
+ true
+ };
+ ($id: expr; $($attr: ident),*;; $print: expr) => {
+ true
+ };
+ ($id: expr; $($attr: ident),*; $norm: expr; $print: expr) => {
+ true
+ };
+}
+
+let _ = true;
+ "#]],
+ );
+}