aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/ra_parser/src/grammar/expressions.rs5
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rs3
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.txt37
3 files changed, 45 insertions, 0 deletions
diff --git a/crates/ra_parser/src/grammar/expressions.rs b/crates/ra_parser/src/grammar/expressions.rs
index d733499d1..a31a7a08d 100644
--- a/crates/ra_parser/src/grammar/expressions.rs
+++ b/crates/ra_parser/src/grammar/expressions.rs
@@ -540,6 +540,11 @@ fn arg_list(p: &mut Parser) {
540 let m = p.start(); 540 let m = p.start();
541 p.bump(T!['(']); 541 p.bump(T!['(']);
542 while !p.at(T![')']) && !p.at(EOF) { 542 while !p.at(T![')']) && !p.at(EOF) {
543 // test arg_with_attr
544 // fn main() {
545 // foo(#[attr] 92)
546 // }
547 attributes::outer_attributes(p);
543 if !p.at_ts(EXPR_FIRST) { 548 if !p.at_ts(EXPR_FIRST) {
544 p.error("expected expression"); 549 p.error("expected expression");
545 break; 550 break;
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rs b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rs
new file mode 100644
index 000000000..5daf1d7b0
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rs
@@ -0,0 +1,3 @@
1fn main() {
2 foo(#[attr] 92)
3}
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.txt
new file mode 100644
index 000000000..6b80ca8d0
--- /dev/null
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.txt
@@ -0,0 +1,37 @@
1SOURCE_FILE@[0; 34)
2 FN_DEF@[0; 33)
3 FN_KW@[0; 2) "fn"
4 WHITESPACE@[2; 3) " "
5 NAME@[3; 7)
6 IDENT@[3; 7) "main"
7 PARAM_LIST@[7; 9)
8 L_PAREN@[7; 8) "("
9 R_PAREN@[8; 9) ")"
10 WHITESPACE@[9; 10) " "
11 BLOCK_EXPR@[10; 33)
12 BLOCK@[10; 33)
13 L_CURLY@[10; 11) "{"
14 WHITESPACE@[11; 16) "\n "
15 CALL_EXPR@[16; 31)
16 PATH_EXPR@[16; 19)
17 PATH@[16; 19)
18 PATH_SEGMENT@[16; 19)
19 NAME_REF@[16; 19)
20 IDENT@[16; 19) "foo"
21 ARG_LIST@[19; 31)
22 L_PAREN@[19; 20) "("
23 ATTR@[20; 27)
24 POUND@[20; 21) "#"
25 L_BRACK@[21; 22) "["
26 PATH@[22; 26)
27 PATH_SEGMENT@[22; 26)
28 NAME_REF@[22; 26)
29 IDENT@[22; 26) "attr"
30 R_BRACK@[26; 27) "]"
31 WHITESPACE@[27; 28) " "
32 LITERAL@[28; 30)
33 INT_NUMBER@[28; 30) "92"
34 R_PAREN@[30; 31) ")"
35 WHITESPACE@[31; 32) "\n"
36 R_CURLY@[32; 33) "}"
37 WHITESPACE@[33; 34) "\n"