]> git.lizzy.rs Git - rust.git/commitdiff
Fix outer doc-comments of `macro_rules`
authoruHOOCCOOHu <hooccooh1896@gmail.com>
Mon, 9 Sep 2019 02:54:20 +0000 (10:54 +0800)
committeruHOOCCOOHu <hooccooh1896@gmail.com>
Mon, 9 Sep 2019 03:13:14 +0000 (11:13 +0800)
crates/ra_syntax/src/parsing/text_tree_sink.rs
crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs [new file with mode: 0644]
crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt [new file with mode: 0644]

index f59c559e95fcfee51aafb4771725aac07550897b..be6e517803242d4b056908e2b09d5246dc14abe5 100644 (file)
@@ -144,8 +144,8 @@ fn n_attached_trivias<'a>(
     trivias: impl Iterator<Item = (SyntaxKind, &'a str)>,
 ) -> usize {
     match kind {
-        CONST_DEF | TYPE_ALIAS_DEF | STRUCT_DEF | ENUM_DEF | ENUM_VARIANT | FN_DEF | TRAIT_DEF
-        | MODULE | RECORD_FIELD_DEF => {
+        MACRO_CALL | CONST_DEF | TYPE_ALIAS_DEF | STRUCT_DEF | ENUM_DEF | ENUM_VARIANT | FN_DEF
+        | TRAIT_DEF | MODULE | RECORD_FIELD_DEF => {
             let mut res = 0;
             for (i, (kind, text)) in trivias.enumerate() {
                 match kind {
diff --git a/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs b/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs
new file mode 100644 (file)
index 0000000..b59c23c
--- /dev/null
@@ -0,0 +1,5 @@
+/// Some docs
+#[macro_export]
+macro_rules! foo {
+    () => {};
+}
diff --git a/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt b/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt
new file mode 100644 (file)
index 0000000..f77221f
--- /dev/null
@@ -0,0 +1,37 @@
+SOURCE_FILE@[0; 65)
+  MACRO_CALL@[0; 64)
+    COMMENT@[0; 13) "/// Some docs"
+    WHITESPACE@[13; 14) "\n"
+    ATTR@[14; 29)
+      POUND@[14; 15) "#"
+      TOKEN_TREE@[15; 29)
+        L_BRACK@[15; 16) "["
+        IDENT@[16; 28) "macro_export"
+        R_BRACK@[28; 29) "]"
+    WHITESPACE@[29; 30) "\n"
+    PATH@[30; 41)
+      PATH_SEGMENT@[30; 41)
+        NAME_REF@[30; 41)
+          IDENT@[30; 41) "macro_rules"
+    EXCL@[41; 42) "!"
+    WHITESPACE@[42; 43) " "
+    NAME@[43; 46)
+      IDENT@[43; 46) "foo"
+    WHITESPACE@[46; 47) " "
+    TOKEN_TREE@[47; 64)
+      L_CURLY@[47; 48) "{"
+      WHITESPACE@[48; 53) "\n    "
+      TOKEN_TREE@[53; 55)
+        L_PAREN@[53; 54) "("
+        R_PAREN@[54; 55) ")"
+      WHITESPACE@[55; 56) " "
+      EQ@[56; 57) "="
+      R_ANGLE@[57; 58) ">"
+      WHITESPACE@[58; 59) " "
+      TOKEN_TREE@[59; 61)
+        L_CURLY@[59; 60) "{"
+        R_CURLY@[60; 61) "}"
+      SEMI@[61; 62) ";"
+      WHITESPACE@[62; 63) "\n"
+      R_CURLY@[63; 64) "}"
+  WHITESPACE@[64; 65) "\n"