aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruHOOCCOOHu <[email protected]>2019-09-09 03:54:20 +0100
committeruHOOCCOOHu <[email protected]>2019-09-09 04:13:14 +0100
commitf3cbdb07c56fcfab1d65488836caafc1f395a0d1 (patch)
treeb9f4b91038e63c060d05356ceef738f85c35ae22
parent07e3976f426aaab93bfd3056374ec6ed32ffb255 (diff)
Fix outer doc-comments of `macro_rules`
-rw-r--r--crates/ra_syntax/src/parsing/text_tree_sink.rs4
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs5
-rw-r--r--crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt37
3 files changed, 44 insertions, 2 deletions
diff --git a/crates/ra_syntax/src/parsing/text_tree_sink.rs b/crates/ra_syntax/src/parsing/text_tree_sink.rs
index f59c559e9..be6e51780 100644
--- a/crates/ra_syntax/src/parsing/text_tree_sink.rs
+++ b/crates/ra_syntax/src/parsing/text_tree_sink.rs
@@ -144,8 +144,8 @@ fn n_attached_trivias<'a>(
144 trivias: impl Iterator<Item = (SyntaxKind, &'a str)>, 144 trivias: impl Iterator<Item = (SyntaxKind, &'a str)>,
145) -> usize { 145) -> usize {
146 match kind { 146 match kind {
147 CONST_DEF | TYPE_ALIAS_DEF | STRUCT_DEF | ENUM_DEF | ENUM_VARIANT | FN_DEF | TRAIT_DEF 147 MACRO_CALL | CONST_DEF | TYPE_ALIAS_DEF | STRUCT_DEF | ENUM_DEF | ENUM_VARIANT | FN_DEF
148 | MODULE | RECORD_FIELD_DEF => { 148 | TRAIT_DEF | MODULE | RECORD_FIELD_DEF => {
149 let mut res = 0; 149 let mut res = 0;
150 for (i, (kind, text)) in trivias.enumerate() { 150 for (i, (kind, text)) in trivias.enumerate() {
151 match kind { 151 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
index 000000000..b59c23c56
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.rs
@@ -0,0 +1,5 @@
1/// Some docs
2#[macro_export]
3macro_rules! foo {
4 () => {};
5}
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
index 000000000..f77221f76
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/ok/0053_outer_attribute_on_macro_rules.txt
@@ -0,0 +1,37 @@
1SOURCE_FILE@[0; 65)
2 MACRO_CALL@[0; 64)
3 COMMENT@[0; 13) "/// Some docs"
4 WHITESPACE@[13; 14) "\n"
5 ATTR@[14; 29)
6 POUND@[14; 15) "#"
7 TOKEN_TREE@[15; 29)
8 L_BRACK@[15; 16) "["
9 IDENT@[16; 28) "macro_export"
10 R_BRACK@[28; 29) "]"
11 WHITESPACE@[29; 30) "\n"
12 PATH@[30; 41)
13 PATH_SEGMENT@[30; 41)
14 NAME_REF@[30; 41)
15 IDENT@[30; 41) "macro_rules"
16 EXCL@[41; 42) "!"
17 WHITESPACE@[42; 43) " "
18 NAME@[43; 46)
19 IDENT@[43; 46) "foo"
20 WHITESPACE@[46; 47) " "
21 TOKEN_TREE@[47; 64)
22 L_CURLY@[47; 48) "{"
23 WHITESPACE@[48; 53) "\n "
24 TOKEN_TREE@[53; 55)
25 L_PAREN@[53; 54) "("
26 R_PAREN@[54; 55) ")"
27 WHITESPACE@[55; 56) " "
28 EQ@[56; 57) "="
29 R_ANGLE@[57; 58) ">"
30 WHITESPACE@[58; 59) " "
31 TOKEN_TREE@[59; 61)
32 L_CURLY@[59; 60) "{"
33 R_CURLY@[60; 61) "}"
34 SEMI@[61; 62) ";"
35 WHITESPACE@[62; 63) "\n"
36 R_CURLY@[63; 64) "}"
37 WHITESPACE@[64; 65) "\n"