diff options
Diffstat (limited to 'crates/ra_syntax')
3 files changed, 65 insertions, 0 deletions
diff --git a/crates/ra_syntax/src/grammar/expressions.rs b/crates/ra_syntax/src/grammar/expressions.rs index 1608b1a73..da78d85a2 100644 --- a/crates/ra_syntax/src/grammar/expressions.rs +++ b/crates/ra_syntax/src/grammar/expressions.rs | |||
@@ -42,9 +42,15 @@ pub(crate) fn block(p: &mut Parser) { | |||
42 | } | 42 | } |
43 | let m = p.start(); | 43 | let m = p.start(); |
44 | p.bump(); | 44 | p.bump(); |
45 | |||
45 | while !p.at(EOF) && !p.at(R_CURLY) { | 46 | while !p.at(EOF) && !p.at(R_CURLY) { |
46 | match p.current() { | 47 | match p.current() { |
47 | LET_KW => let_stmt(p), | 48 | LET_KW => let_stmt(p), |
49 | // test nocontentexpr | ||
50 | // fn foo(){ | ||
51 | // ;;;some_expr();;;;{;;;};;;;Ok(()) | ||
52 | // } | ||
53 | SEMI => p.bump(), | ||
48 | _ => { | 54 | _ => { |
49 | // test block_items | 55 | // test block_items |
50 | // fn a() { fn b() {} } | 56 | // fn a() { fn b() {} } |
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.rs b/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.rs new file mode 100644 index 000000000..bbf09e367 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.rs | |||
@@ -0,0 +1,3 @@ | |||
1 | fn foo(){ | ||
2 | ;;;some_expr();;;;{;;;};;;;Ok(()) | ||
3 | } | ||
diff --git a/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.txt b/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.txt new file mode 100644 index 000000000..db91e3075 --- /dev/null +++ b/crates/ra_syntax/tests/data/parser/inline/ok/0113_nocontentexpr.txt | |||
@@ -0,0 +1,56 @@ | |||
1 | SOURCE_FILE@[0; 50) | ||
2 | FN_DEF@[0; 49) | ||
3 | FN_KW@[0; 2) | ||
4 | WHITESPACE@[2; 3) | ||
5 | NAME@[3; 6) | ||
6 | IDENT@[3; 6) "foo" | ||
7 | PARAM_LIST@[6; 8) | ||
8 | L_PAREN@[6; 7) | ||
9 | R_PAREN@[7; 8) | ||
10 | BLOCK@[8; 49) | ||
11 | L_CURLY@[8; 9) | ||
12 | WHITESPACE@[9; 14) | ||
13 | SEMI@[14; 15) | ||
14 | SEMI@[15; 16) | ||
15 | SEMI@[16; 17) | ||
16 | EXPR_STMT@[17; 29) | ||
17 | CALL_EXPR@[17; 28) | ||
18 | PATH_EXPR@[17; 26) | ||
19 | PATH@[17; 26) | ||
20 | PATH_SEGMENT@[17; 26) | ||
21 | NAME_REF@[17; 26) | ||
22 | IDENT@[17; 26) "some_expr" | ||
23 | ARG_LIST@[26; 28) | ||
24 | L_PAREN@[26; 27) | ||
25 | R_PAREN@[27; 28) | ||
26 | SEMI@[28; 29) | ||
27 | SEMI@[29; 30) | ||
28 | SEMI@[30; 31) | ||
29 | SEMI@[31; 32) | ||
30 | EXPR_STMT@[32; 38) | ||
31 | BLOCK_EXPR@[32; 37) | ||
32 | BLOCK@[32; 37) | ||
33 | L_CURLY@[32; 33) | ||
34 | SEMI@[33; 34) | ||
35 | SEMI@[34; 35) | ||
36 | SEMI@[35; 36) | ||
37 | R_CURLY@[36; 37) | ||
38 | SEMI@[37; 38) | ||
39 | SEMI@[38; 39) | ||
40 | SEMI@[39; 40) | ||
41 | SEMI@[40; 41) | ||
42 | CALL_EXPR@[41; 47) | ||
43 | PATH_EXPR@[41; 43) | ||
44 | PATH@[41; 43) | ||
45 | PATH_SEGMENT@[41; 43) | ||
46 | NAME_REF@[41; 43) | ||
47 | IDENT@[41; 43) "Ok" | ||
48 | ARG_LIST@[43; 47) | ||
49 | L_PAREN@[43; 44) | ||
50 | TUPLE_EXPR@[44; 46) | ||
51 | L_PAREN@[44; 45) | ||
52 | R_PAREN@[45; 46) | ||
53 | R_PAREN@[46; 47) | ||
54 | WHITESPACE@[47; 48) | ||
55 | R_CURLY@[48; 49) | ||
56 | WHITESPACE@[49; 50) | ||