aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/test_data/parser/err
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_syntax/test_data/parser/err')
-rw-r--r--crates/ra_syntax/test_data/parser/err/0005_attribute_recover.txt9
-rw-r--r--crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.txt60
-rw-r--r--crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.txt61
-rw-r--r--crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/err/0016_missing_semi.txt63
-rw-r--r--crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.txt47
-rw-r--r--crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.txt167
-rw-r--r--crates/ra_syntax/test_data/parser/err/0019_let_recover.txt168
-rw-r--r--crates/ra_syntax/test_data/parser/err/0020_fn_recover.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/err/0021_incomplete_param.txt9
-rw-r--r--crates/ra_syntax/test_data/parser/err/0022_bad_exprs.txt241
-rw-r--r--crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.txt51
-rw-r--r--crates/ra_syntax/test_data/parser/err/0024_many_type_parens.txt440
-rw-r--r--crates/ra_syntax/test_data/parser/err/0025_nope.txt363
-rw-r--r--crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/err/0028_macro_2.0.txt365
-rw-r--r--crates/ra_syntax/test_data/parser/err/0029_field_completion.txt25
-rw-r--r--crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.txt201
-rw-r--r--crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.txt359
-rw-r--r--crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.txt101
-rw-r--r--crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.txt157
22 files changed, 1474 insertions, 1441 deletions
diff --git a/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.txt b/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.txt
index 6d5199a56..378b92834 100644
--- a/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.txt
+++ b/crates/ra_syntax/test_data/parser/err/0005_attribute_recover.txt
@@ -25,10 +25,11 @@ SOURCE_FILE@[0; 54)
25 L_PAREN@[25; 26) "(" 25 L_PAREN@[25; 26) "("
26 R_PAREN@[26; 27) ")" 26 R_PAREN@[26; 27) ")"
27 WHITESPACE@[27; 28) " " 27 WHITESPACE@[27; 28) " "
28 BLOCK@[28; 31) 28 BLOCK_EXPR@[28; 31)
29 L_CURLY@[28; 29) "{" 29 BLOCK@[28; 31)
30 WHITESPACE@[29; 30) "\n" 30 L_CURLY@[28; 29) "{"
31 R_CURLY@[30; 31) "}" 31 WHITESPACE@[29; 30) "\n"
32 R_CURLY@[30; 31) "}"
32 WHITESPACE@[31; 34) "\n\n\n" 33 WHITESPACE@[31; 34) "\n\n\n"
33 ATTR@[34; 53) 34 ATTR@[34; 53)
34 POUND@[34; 35) "#" 35 POUND@[34; 35) "#"
diff --git a/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.txt b/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.txt
index b79e01238..7ae417441 100644
--- a/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.txt
+++ b/crates/ra_syntax/test_data/parser/err/0007_stray_curly_in_file.txt
@@ -20,9 +20,10 @@ SOURCE_FILE@[0; 31)
20 PARAM_LIST@[23; 25) 20 PARAM_LIST@[23; 25)
21 L_PAREN@[23; 24) "(" 21 L_PAREN@[23; 24) "("
22 R_PAREN@[24; 25) ")" 22 R_PAREN@[24; 25) ")"
23 BLOCK@[25; 27) 23 BLOCK_EXPR@[25; 27)
24 L_CURLY@[25; 26) "{" 24 BLOCK@[25; 27)
25 R_CURLY@[26; 27) "}" 25 L_CURLY@[25; 26) "{"
26 R_CURLY@[26; 27) "}"
26 WHITESPACE@[27; 29) "\n\n" 27 WHITESPACE@[27; 29) "\n\n"
27 ERROR@[29; 30) 28 ERROR@[29; 30)
28 R_CURLY@[29; 30) "}" 29 R_CURLY@[29; 30) "}"
diff --git a/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.txt b/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.txt
index 9a8871579..1a4b40a2b 100644
--- a/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.txt
+++ b/crates/ra_syntax/test_data/parser/err/0008_item_block_recovery.txt
@@ -8,10 +8,11 @@ SOURCE_FILE@[0; 95)
8 L_PAREN@[6; 7) "(" 8 L_PAREN@[6; 7) "("
9 R_PAREN@[7; 8) ")" 9 R_PAREN@[7; 8) ")"
10 WHITESPACE@[8; 9) " " 10 WHITESPACE@[8; 9) " "
11 BLOCK@[9; 12) 11 BLOCK_EXPR@[9; 12)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 12)
13 WHITESPACE@[10; 11) "\n" 13 L_CURLY@[9; 10) "{"
14 R_CURLY@[11; 12) "}" 14 WHITESPACE@[10; 11) "\n"
15 R_CURLY@[11; 12) "}"
15 WHITESPACE@[12; 14) "\n\n" 16 WHITESPACE@[12; 14) "\n\n"
16 MACRO_CALL@[14; 19) 17 MACRO_CALL@[14; 19)
17 PATH@[14; 17) 18 PATH@[14; 17)
@@ -32,29 +33,31 @@ SOURCE_FILE@[0; 95)
32 LITERAL@[29; 33) 33 LITERAL@[29; 33)
33 TRUE_KW@[29; 33) "true" 34 TRUE_KW@[29; 33) "true"
34 WHITESPACE@[33; 34) " " 35 WHITESPACE@[33; 34) " "
35 BLOCK@[34; 51) 36 BLOCK_EXPR@[34; 51)
36 L_CURLY@[34; 35) "{" 37 BLOCK@[34; 51)
37 WHITESPACE@[35; 44) "\n " 38 L_CURLY@[34; 35) "{"
38 LITERAL@[44; 45) 39 WHITESPACE@[35; 44) "\n "
39 INT_NUMBER@[44; 45) "1" 40 LITERAL@[44; 45)
40 WHITESPACE@[45; 50) "\n " 41 INT_NUMBER@[44; 45) "1"
41 R_CURLY@[50; 51) "}" 42 WHITESPACE@[45; 50) "\n "
43 R_CURLY@[50; 51) "}"
42 WHITESPACE@[51; 52) " " 44 WHITESPACE@[51; 52) " "
43 ELSE_KW@[52; 56) "else" 45 ELSE_KW@[52; 56) "else"
44 WHITESPACE@[56; 57) " " 46 WHITESPACE@[56; 57) " "
45 BLOCK@[57; 78) 47 BLOCK_EXPR@[57; 78)
46 L_CURLY@[57; 58) "{" 48 BLOCK@[57; 78)
47 WHITESPACE@[58; 67) "\n " 49 L_CURLY@[57; 58) "{"
48 BIN_EXPR@[67; 72) 50 WHITESPACE@[58; 67) "\n "
49 LITERAL@[67; 68) 51 BIN_EXPR@[67; 72)
50 INT_NUMBER@[67; 68) "2" 52 LITERAL@[67; 68)
51 WHITESPACE@[68; 69) " " 53 INT_NUMBER@[67; 68) "2"
52 PLUS@[69; 70) "+" 54 WHITESPACE@[68; 69) " "
53 WHITESPACE@[70; 71) " " 55 PLUS@[69; 70) "+"
54 LITERAL@[71; 72) 56 WHITESPACE@[70; 71) " "
55 INT_NUMBER@[71; 72) "3" 57 LITERAL@[71; 72)
56 WHITESPACE@[72; 77) "\n " 58 INT_NUMBER@[71; 72) "3"
57 R_CURLY@[77; 78) "}" 59 WHITESPACE@[72; 77) "\n "
60 R_CURLY@[77; 78) "}"
58 WHITESPACE@[78; 79) "\n" 61 WHITESPACE@[78; 79) "\n"
59 R_CURLY@[79; 80) "}" 62 R_CURLY@[79; 80) "}"
60 WHITESPACE@[80; 82) "\n\n" 63 WHITESPACE@[80; 82) "\n\n"
@@ -67,10 +70,11 @@ SOURCE_FILE@[0; 95)
67 L_PAREN@[88; 89) "(" 70 L_PAREN@[88; 89) "("
68 R_PAREN@[89; 90) ")" 71 R_PAREN@[89; 90) ")"
69 WHITESPACE@[90; 91) " " 72 WHITESPACE@[90; 91) " "
70 BLOCK@[91; 94) 73 BLOCK_EXPR@[91; 94)
71 L_CURLY@[91; 92) "{" 74 BLOCK@[91; 94)
72 WHITESPACE@[92; 93) "\n" 75 L_CURLY@[91; 92) "{"
73 R_CURLY@[93; 94) "}" 76 WHITESPACE@[92; 93) "\n"
77 R_CURLY@[93; 94) "}"
74 WHITESPACE@[94; 95) "\n" 78 WHITESPACE@[94; 95) "\n"
75error 17: expected EXCL 79error 17: expected EXCL
76error 19: expected SEMI 80error 19: expected SEMI
diff --git a/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.txt b/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.txt
index c46809f81..b73dda5ad 100644
--- a/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.txt
+++ b/crates/ra_syntax/test_data/parser/err/0010_unsafe_lambda_block.txt
@@ -8,35 +8,36 @@ SOURCE_FILE@[0; 42)
8 L_PAREN@[7; 8) "(" 8 L_PAREN@[7; 8) "("
9 R_PAREN@[8; 9) ")" 9 R_PAREN@[8; 9) ")"
10 WHITESPACE@[9; 10) " " 10 WHITESPACE@[9; 10) " "
11 BLOCK@[10; 41) 11 BLOCK_EXPR@[10; 41)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 41)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 EXPR_STMT@[16; 39) 14 WHITESPACE@[11; 16) "\n "
15 LAMBDA_EXPR@[16; 38) 15 EXPR_STMT@[16; 39)
16 PARAM_LIST@[16; 18) 16 LAMBDA_EXPR@[16; 38)
17 PIPE@[16; 17) "|" 17 PARAM_LIST@[16; 18)
18 PIPE@[17; 18) "|" 18 PIPE@[16; 17) "|"
19 WHITESPACE@[18; 19) " " 19 PIPE@[17; 18) "|"
20 RET_TYPE@[19; 24) 20 WHITESPACE@[18; 19) " "
21 THIN_ARROW@[19; 21) "->" 21 RET_TYPE@[19; 24)
22 WHITESPACE@[21; 22) " " 22 THIN_ARROW@[19; 21) "->"
23 TUPLE_TYPE@[22; 24) 23 WHITESPACE@[21; 22) " "
24 L_PAREN@[22; 23) "(" 24 TUPLE_TYPE@[22; 24)
25 R_PAREN@[23; 24) ")" 25 L_PAREN@[22; 23) "("
26 WHITESPACE@[24; 25) " " 26 R_PAREN@[23; 24) ")"
27 BLOCK_EXPR@[25; 38) 27 WHITESPACE@[24; 25) " "
28 UNSAFE_KW@[25; 31) "unsafe" 28 BLOCK_EXPR@[25; 38)
29 WHITESPACE@[31; 32) " " 29 UNSAFE_KW@[25; 31) "unsafe"
30 BLOCK@[32; 38) 30 WHITESPACE@[31; 32) " "
31 L_CURLY@[32; 33) "{" 31 BLOCK@[32; 38)
32 WHITESPACE@[33; 34) " " 32 L_CURLY@[32; 33) "{"
33 TUPLE_EXPR@[34; 36) 33 WHITESPACE@[33; 34) " "
34 L_PAREN@[34; 35) "(" 34 TUPLE_EXPR@[34; 36)
35 R_PAREN@[35; 36) ")" 35 L_PAREN@[34; 35) "("
36 WHITESPACE@[36; 37) " " 36 R_PAREN@[35; 36) ")"
37 R_CURLY@[37; 38) "}" 37 WHITESPACE@[36; 37) " "
38 SEMI@[38; 39) ";" 38 R_CURLY@[37; 38) "}"
39 WHITESPACE@[39; 40) "\n" 39 SEMI@[38; 39) ";"
40 R_CURLY@[40; 41) "}" 40 WHITESPACE@[39; 40) "\n"
41 R_CURLY@[40; 41) "}"
41 WHITESPACE@[41; 42) "\n" 42 WHITESPACE@[41; 42) "\n"
42error 24: expected `{` 43error 24: expected `{`
diff --git a/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.txt b/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.txt
index 2f0878572..0ba17cf8d 100644
--- a/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.txt
+++ b/crates/ra_syntax/test_data/parser/err/0014_where_no_bounds.txt
@@ -24,8 +24,9 @@ SOURCE_FILE@[0; 23)
24 NAME_REF@[18; 19) 24 NAME_REF@[18; 19)
25 IDENT@[18; 19) "T" 25 IDENT@[18; 19) "T"
26 WHITESPACE@[19; 20) " " 26 WHITESPACE@[19; 20) " "
27 BLOCK@[20; 22) 27 BLOCK_EXPR@[20; 22)
28 L_CURLY@[20; 21) "{" 28 BLOCK@[20; 22)
29 R_CURLY@[21; 22) "}" 29 L_CURLY@[20; 21) "{"
30 R_CURLY@[21; 22) "}"
30 WHITESPACE@[22; 23) "\n" 31 WHITESPACE@[22; 23) "\n"
31error 19: expected colon 32error 19: expected colon
diff --git a/crates/ra_syntax/test_data/parser/err/0016_missing_semi.txt b/crates/ra_syntax/test_data/parser/err/0016_missing_semi.txt
index 97e64dea9..bc5be6a66 100644
--- a/crates/ra_syntax/test_data/parser/err/0016_missing_semi.txt
+++ b/crates/ra_syntax/test_data/parser/err/0016_missing_semi.txt
@@ -8,36 +8,37 @@ SOURCE_FILE@[0; 56)
8 L_PAREN@[6; 7) "(" 8 L_PAREN@[6; 7) "("
9 R_PAREN@[7; 8) ")" 9 R_PAREN@[7; 8) ")"
10 WHITESPACE@[8; 9) " " 10 WHITESPACE@[8; 9) " "
11 BLOCK@[9; 55) 11 BLOCK_EXPR@[9; 55)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 55)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 38) 14 WHITESPACE@[10; 15) "\n "
15 CALL_EXPR@[15; 38) 15 EXPR_STMT@[15; 38)
16 PATH_EXPR@[15; 18) 16 CALL_EXPR@[15; 38)
17 PATH@[15; 18) 17 PATH_EXPR@[15; 18)
18 PATH_SEGMENT@[15; 18) 18 PATH@[15; 18)
19 NAME_REF@[15; 18) 19 PATH_SEGMENT@[15; 18)
20 IDENT@[15; 18) "foo" 20 NAME_REF@[15; 18)
21 ARG_LIST@[18; 38) 21 IDENT@[15; 18) "foo"
22 L_PAREN@[18; 19) "(" 22 ARG_LIST@[18; 38)
23 WHITESPACE@[19; 28) "\n " 23 L_PAREN@[18; 19) "("
24 LITERAL@[28; 29) 24 WHITESPACE@[19; 28) "\n "
25 INT_NUMBER@[28; 29) "1" 25 LITERAL@[28; 29)
26 COMMA@[29; 30) "," 26 INT_NUMBER@[28; 29) "1"
27 WHITESPACE@[30; 31) " " 27 COMMA@[29; 30) ","
28 LITERAL@[31; 32) 28 WHITESPACE@[30; 31) " "
29 INT_NUMBER@[31; 32) "2" 29 LITERAL@[31; 32)
30 WHITESPACE@[32; 37) "\n " 30 INT_NUMBER@[31; 32) "2"
31 R_PAREN@[37; 38) ")" 31 WHITESPACE@[32; 37) "\n "
32 WHITESPACE@[38; 43) "\n " 32 R_PAREN@[37; 38) ")"
33 EXPR_STMT@[43; 53) 33 WHITESPACE@[38; 43) "\n "
34 RETURN_EXPR@[43; 52) 34 EXPR_STMT@[43; 53)
35 RETURN_KW@[43; 49) "return" 35 RETURN_EXPR@[43; 52)
36 WHITESPACE@[49; 50) " " 36 RETURN_KW@[43; 49) "return"
37 LITERAL@[50; 52) 37 WHITESPACE@[49; 50) " "
38 INT_NUMBER@[50; 52) "92" 38 LITERAL@[50; 52)
39 SEMI@[52; 53) ";" 39 INT_NUMBER@[50; 52) "92"
40 WHITESPACE@[53; 54) "\n" 40 SEMI@[52; 53) ";"
41 R_CURLY@[54; 55) "}" 41 WHITESPACE@[53; 54) "\n"
42 R_CURLY@[54; 55) "}"
42 WHITESPACE@[55; 56) "\n" 43 WHITESPACE@[55; 56) "\n"
43error 38: expected SEMI 44error 38: expected SEMI
diff --git a/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.txt b/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.txt
index c18e20900..9033a5b38 100644
--- a/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.txt
+++ b/crates/ra_syntax/test_data/parser/err/0017_incomplete_binexpr.txt
@@ -19,28 +19,29 @@ SOURCE_FILE@[0; 47)
19 IDENT@[12; 15) "i32" 19 IDENT@[12; 15) "i32"
20 R_PAREN@[15; 16) ")" 20 R_PAREN@[15; 16) ")"
21 WHITESPACE@[16; 17) " " 21 WHITESPACE@[16; 17) " "
22 BLOCK@[17; 46) 22 BLOCK_EXPR@[17; 46)
23 L_CURLY@[17; 18) "{" 23 BLOCK@[17; 46)
24 WHITESPACE@[18; 23) "\n " 24 L_CURLY@[17; 18) "{"
25 LET_STMT@[23; 36) 25 WHITESPACE@[18; 23) "\n "
26 LET_KW@[23; 26) "let" 26 LET_STMT@[23; 36)
27 WHITESPACE@[26; 27) " " 27 LET_KW@[23; 26) "let"
28 BIND_PAT@[27; 30) 28 WHITESPACE@[26; 27) " "
29 NAME@[27; 30) 29 BIND_PAT@[27; 30)
30 IDENT@[27; 30) "bar" 30 NAME@[27; 30)
31 WHITESPACE@[30; 31) " " 31 IDENT@[27; 30) "bar"
32 EQ@[31; 32) "=" 32 WHITESPACE@[30; 31) " "
33 WHITESPACE@[32; 33) " " 33 EQ@[31; 32) "="
34 LITERAL@[33; 35) 34 WHITESPACE@[32; 33) " "
35 INT_NUMBER@[33; 35) "92" 35 LITERAL@[33; 35)
36 SEMI@[35; 36) ";" 36 INT_NUMBER@[33; 35) "92"
37 WHITESPACE@[36; 41) "\n " 37 SEMI@[35; 36) ";"
38 BIN_EXPR@[41; 44) 38 WHITESPACE@[36; 41) "\n "
39 LITERAL@[41; 42) 39 BIN_EXPR@[41; 44)
40 INT_NUMBER@[41; 42) "1" 40 LITERAL@[41; 42)
41 WHITESPACE@[42; 43) " " 41 INT_NUMBER@[41; 42) "1"
42 PLUS@[43; 44) "+" 42 WHITESPACE@[42; 43) " "
43 WHITESPACE@[44; 45) "\n" 43 PLUS@[43; 44) "+"
44 R_CURLY@[45; 46) "}" 44 WHITESPACE@[44; 45) "\n"
45 R_CURLY@[45; 46) "}"
45 WHITESPACE@[46; 47) "\n" 46 WHITESPACE@[46; 47) "\n"
46error 44: expected expression 47error 44: expected expression
diff --git a/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.txt b/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.txt
index 52eb7d5e2..d12f4c99b 100644
--- a/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.txt
+++ b/crates/ra_syntax/test_data/parser/err/0018_incomplete_fn.txt
@@ -32,89 +32,90 @@ SOURCE_FILE@[0; 183)
32 NAME_REF@[39; 46) 32 NAME_REF@[39; 46)
33 IDENT@[39; 46) "ScopeId" 33 IDENT@[39; 46) "ScopeId"
34 WHITESPACE@[46; 47) " " 34 WHITESPACE@[46; 47) " "
35 BLOCK@[47; 161) 35 BLOCK_EXPR@[47; 161)
36 L_CURLY@[47; 48) "{" 36 BLOCK@[47; 161)
37 WHITESPACE@[48; 57) "\n " 37 L_CURLY@[47; 48) "{"
38 LET_STMT@[57; 85) 38 WHITESPACE@[48; 57) "\n "
39 LET_KW@[57; 60) "let" 39 LET_STMT@[57; 85)
40 WHITESPACE@[60; 61) " " 40 LET_KW@[57; 60) "let"
41 BIND_PAT@[61; 64) 41 WHITESPACE@[60; 61) " "
42 NAME@[61; 64) 42 BIND_PAT@[61; 64)
43 IDENT@[61; 64) "res" 43 NAME@[61; 64)
44 WHITESPACE@[64; 65) " " 44 IDENT@[61; 64) "res"
45 EQ@[65; 66) "=" 45 WHITESPACE@[64; 65) " "
46 WHITESPACE@[66; 67) " " 46 EQ@[65; 66) "="
47 METHOD_CALL_EXPR@[67; 84) 47 WHITESPACE@[66; 67) " "
48 FIELD_EXPR@[67; 78) 48 METHOD_CALL_EXPR@[67; 84)
49 PATH_EXPR@[67; 71) 49 FIELD_EXPR@[67; 78)
50 PATH@[67; 71) 50 PATH_EXPR@[67; 71)
51 PATH_SEGMENT@[67; 71) 51 PATH@[67; 71)
52 SELF_KW@[67; 71) "self" 52 PATH_SEGMENT@[67; 71)
53 DOT@[71; 72) "." 53 SELF_KW@[67; 71) "self"
54 NAME_REF@[72; 78) 54 DOT@[71; 72) "."
55 IDENT@[72; 78) "scopes" 55 NAME_REF@[72; 78)
56 DOT@[78; 79) "." 56 IDENT@[72; 78) "scopes"
57 NAME_REF@[79; 82) 57 DOT@[78; 79) "."
58 IDENT@[79; 82) "len" 58 NAME_REF@[79; 82)
59 ARG_LIST@[82; 84) 59 IDENT@[79; 82) "len"
60 L_PAREN@[82; 83) "(" 60 ARG_LIST@[82; 84)
61 R_PAREN@[83; 84) ")" 61 L_PAREN@[82; 83) "("
62 SEMI@[84; 85) ";" 62 R_PAREN@[83; 84) ")"
63 WHITESPACE@[85; 94) "\n " 63 SEMI@[84; 85) ";"
64 METHOD_CALL_EXPR@[94; 155) 64 WHITESPACE@[85; 94) "\n "
65 FIELD_EXPR@[94; 105) 65 METHOD_CALL_EXPR@[94; 155)
66 PATH_EXPR@[94; 98) 66 FIELD_EXPR@[94; 105)
67 PATH@[94; 98) 67 PATH_EXPR@[94; 98)
68 PATH_SEGMENT@[94; 98) 68 PATH@[94; 98)
69 SELF_KW@[94; 98) "self" 69 PATH_SEGMENT@[94; 98)
70 DOT@[98; 99) "." 70 SELF_KW@[94; 98) "self"
71 NAME_REF@[99; 105) 71 DOT@[98; 99) "."
72 IDENT@[99; 105) "scopes" 72 NAME_REF@[99; 105)
73 DOT@[105; 106) "." 73 IDENT@[99; 105) "scopes"
74 NAME_REF@[106; 110) 74 DOT@[105; 106) "."
75 IDENT@[106; 110) "push" 75 NAME_REF@[106; 110)
76 ARG_LIST@[110; 155) 76 IDENT@[106; 110) "push"
77 L_PAREN@[110; 111) "(" 77 ARG_LIST@[110; 155)
78 RECORD_LIT@[111; 154) 78 L_PAREN@[110; 111) "("
79 PATH@[111; 120) 79 RECORD_LIT@[111; 154)
80 PATH_SEGMENT@[111; 120) 80 PATH@[111; 120)
81 NAME_REF@[111; 120) 81 PATH_SEGMENT@[111; 120)
82 IDENT@[111; 120) "ScopeData" 82 NAME_REF@[111; 120)
83 WHITESPACE@[120; 121) " " 83 IDENT@[111; 120) "ScopeData"
84 RECORD_FIELD_LIST@[121; 154) 84 WHITESPACE@[120; 121) " "
85 L_CURLY@[121; 122) "{" 85 RECORD_FIELD_LIST@[121; 154)
86 WHITESPACE@[122; 123) " " 86 L_CURLY@[121; 122) "{"
87 RECORD_FIELD@[123; 135) 87 WHITESPACE@[122; 123) " "
88 NAME_REF@[123; 129) 88 RECORD_FIELD@[123; 135)
89 IDENT@[123; 129) "parent" 89 NAME_REF@[123; 129)
90 COLON@[129; 130) ":" 90 IDENT@[123; 129) "parent"
91 WHITESPACE@[130; 131) " " 91 COLON@[129; 130) ":"
92 PATH_EXPR@[131; 135) 92 WHITESPACE@[130; 131) " "
93 PATH@[131; 135) 93 PATH_EXPR@[131; 135)
94 PATH_SEGMENT@[131; 135) 94 PATH@[131; 135)
95 NAME_REF@[131; 135) 95 PATH_SEGMENT@[131; 135)
96 IDENT@[131; 135) "None" 96 NAME_REF@[131; 135)
97 COMMA@[135; 136) "," 97 IDENT@[131; 135) "None"
98 WHITESPACE@[136; 137) " " 98 COMMA@[135; 136) ","
99 RECORD_FIELD@[137; 152) 99 WHITESPACE@[136; 137) " "
100 NAME_REF@[137; 144) 100 RECORD_FIELD@[137; 152)
101 IDENT@[137; 144) "entries" 101 NAME_REF@[137; 144)
102 COLON@[144; 145) ":" 102 IDENT@[137; 144) "entries"
103 WHITESPACE@[145; 146) " " 103 COLON@[144; 145) ":"
104 MACRO_CALL@[146; 152) 104 WHITESPACE@[145; 146) " "
105 PATH@[146; 149) 105 MACRO_CALL@[146; 152)
106 PATH_SEGMENT@[146; 149) 106 PATH@[146; 149)
107 NAME_REF@[146; 149) 107 PATH_SEGMENT@[146; 149)
108 IDENT@[146; 149) "vec" 108 NAME_REF@[146; 149)
109 EXCL@[149; 150) "!" 109 IDENT@[146; 149) "vec"
110 TOKEN_TREE@[150; 152) 110 EXCL@[149; 150) "!"
111 L_BRACK@[150; 151) "[" 111 TOKEN_TREE@[150; 152)
112 R_BRACK@[151; 152) "]" 112 L_BRACK@[150; 151) "["
113 WHITESPACE@[152; 153) " " 113 R_BRACK@[151; 152) "]"
114 R_CURLY@[153; 154) "}" 114 WHITESPACE@[152; 153) " "
115 R_PAREN@[154; 155) ")" 115 R_CURLY@[153; 154) "}"
116 WHITESPACE@[155; 160) "\n " 116 R_PAREN@[154; 155) ")"
117 R_CURLY@[160; 161) "}" 117 WHITESPACE@[155; 160) "\n "
118 R_CURLY@[160; 161) "}"
118 WHITESPACE@[161; 167) "\n\n " 119 WHITESPACE@[161; 167) "\n\n "
119 FN_DEF@[167; 180) 120 FN_DEF@[167; 180)
120 FN_KW@[167; 169) "fn" 121 FN_KW@[167; 169) "fn"
diff --git a/crates/ra_syntax/test_data/parser/err/0019_let_recover.txt b/crates/ra_syntax/test_data/parser/err/0019_let_recover.txt
index b6710241e..cc3578e54 100644
--- a/crates/ra_syntax/test_data/parser/err/0019_let_recover.txt
+++ b/crates/ra_syntax/test_data/parser/err/0019_let_recover.txt
@@ -8,88 +8,92 @@ SOURCE_FILE@[0; 139)
8 L_PAREN@[6; 7) "(" 8 L_PAREN@[6; 7) "("
9 R_PAREN@[7; 8) ")" 9 R_PAREN@[7; 8) ")"
10 WHITESPACE@[8; 9) " " 10 WHITESPACE@[8; 9) " "
11 BLOCK@[9; 138) 11 BLOCK_EXPR@[9; 138)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 138)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 24) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 24)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 BIND_PAT@[19; 22) 17 WHITESPACE@[18; 19) " "
18 NAME@[19; 22) 18 BIND_PAT@[19; 22)
19 IDENT@[19; 22) "foo" 19 NAME@[19; 22)
20 WHITESPACE@[22; 23) " " 20 IDENT@[19; 22) "foo"
21 EQ@[23; 24) "=" 21 WHITESPACE@[22; 23) " "
22 WHITESPACE@[24; 29) "\n " 22 EQ@[23; 24) "="
23 LET_STMT@[29; 41) 23 WHITESPACE@[24; 29) "\n "
24 LET_KW@[29; 32) "let" 24 LET_STMT@[29; 41)
25 WHITESPACE@[32; 33) " " 25 LET_KW@[29; 32) "let"
26 BIND_PAT@[33; 36) 26 WHITESPACE@[32; 33) " "
27 NAME@[33; 36) 27 BIND_PAT@[33; 36)
28 IDENT@[33; 36) "bar" 28 NAME@[33; 36)
29 WHITESPACE@[36; 37) " " 29 IDENT@[33; 36) "bar"
30 EQ@[37; 38) "=" 30 WHITESPACE@[36; 37) " "
31 WHITESPACE@[38; 39) " " 31 EQ@[37; 38) "="
32 LITERAL@[39; 40) 32 WHITESPACE@[38; 39) " "
33 INT_NUMBER@[39; 40) "1" 33 LITERAL@[39; 40)
34 SEMI@[40; 41) ";" 34 INT_NUMBER@[39; 40) "1"
35 WHITESPACE@[41; 46) "\n " 35 SEMI@[40; 41) ";"
36 LET_STMT@[46; 49) 36 WHITESPACE@[41; 46) "\n "
37 LET_KW@[46; 49) "let" 37 LET_STMT@[46; 49)
38 WHITESPACE@[49; 54) "\n " 38 LET_KW@[46; 49) "let"
39 LET_STMT@[54; 67) 39 WHITESPACE@[49; 54) "\n "
40 LET_KW@[54; 57) "let" 40 LET_STMT@[54; 67)
41 WHITESPACE@[57; 58) " " 41 LET_KW@[54; 57) "let"
42 BIND_PAT@[58; 61) 42 WHITESPACE@[57; 58) " "
43 NAME@[58; 61) 43 BIND_PAT@[58; 61)
44 IDENT@[58; 61) "baz" 44 NAME@[58; 61)
45 WHITESPACE@[61; 62) " " 45 IDENT@[58; 61) "baz"
46 EQ@[62; 63) "=" 46 WHITESPACE@[61; 62) " "
47 WHITESPACE@[63; 64) " " 47 EQ@[62; 63) "="
48 LITERAL@[64; 66) 48 WHITESPACE@[63; 64) " "
49 INT_NUMBER@[64; 66) "92" 49 LITERAL@[64; 66)
50 SEMI@[66; 67) ";" 50 INT_NUMBER@[64; 66) "92"
51 WHITESPACE@[67; 72) "\n " 51 SEMI@[66; 67) ";"
52 LET_STMT@[72; 75) 52 WHITESPACE@[67; 72) "\n "
53 LET_KW@[72; 75) "let" 53 LET_STMT@[72; 75)
54 WHITESPACE@[75; 80) "\n " 54 LET_KW@[72; 75) "let"
55 EXPR_STMT@[80; 90) 55 WHITESPACE@[75; 80) "\n "
56 IF_EXPR@[80; 90) 56 EXPR_STMT@[80; 90)
57 IF_KW@[80; 82) "if" 57 IF_EXPR@[80; 90)
58 WHITESPACE@[82; 83) " " 58 IF_KW@[80; 82) "if"
59 CONDITION@[83; 87) 59 WHITESPACE@[82; 83) " "
60 LITERAL@[83; 87) 60 CONDITION@[83; 87)
61 TRUE_KW@[83; 87) "true" 61 LITERAL@[83; 87)
62 WHITESPACE@[87; 88) " " 62 TRUE_KW@[83; 87) "true"
63 BLOCK@[88; 90) 63 WHITESPACE@[87; 88) " "
64 L_CURLY@[88; 89) "{" 64 BLOCK_EXPR@[88; 90)
65 R_CURLY@[89; 90) "}" 65 BLOCK@[88; 90)
66 WHITESPACE@[90; 95) "\n " 66 L_CURLY@[88; 89) "{"
67 LET_STMT@[95; 98) 67 R_CURLY@[89; 90) "}"
68 LET_KW@[95; 98) "let" 68 WHITESPACE@[90; 95) "\n "
69 WHITESPACE@[98; 103) "\n " 69 LET_STMT@[95; 98)
70 EXPR_STMT@[103; 116) 70 LET_KW@[95; 98) "let"
71 WHILE_EXPR@[103; 116) 71 WHITESPACE@[98; 103) "\n "
72 WHILE_KW@[103; 108) "while" 72 EXPR_STMT@[103; 116)
73 WHITESPACE@[108; 109) " " 73 WHILE_EXPR@[103; 116)
74 CONDITION@[109; 113) 74 WHILE_KW@[103; 108) "while"
75 LITERAL@[109; 113) 75 WHITESPACE@[108; 109) " "
76 TRUE_KW@[109; 113) "true" 76 CONDITION@[109; 113)
77 WHITESPACE@[113; 114) " " 77 LITERAL@[109; 113)
78 BLOCK@[114; 116) 78 TRUE_KW@[109; 113) "true"
79 L_CURLY@[114; 115) "{" 79 WHITESPACE@[113; 114) " "
80 R_CURLY@[115; 116) "}" 80 BLOCK_EXPR@[114; 116)
81 WHITESPACE@[116; 121) "\n " 81 BLOCK@[114; 116)
82 LET_STMT@[121; 124) 82 L_CURLY@[114; 115) "{"
83 LET_KW@[121; 124) "let" 83 R_CURLY@[115; 116) "}"
84 WHITESPACE@[124; 129) "\n " 84 WHITESPACE@[116; 121) "\n "
85 LOOP_EXPR@[129; 136) 85 LET_STMT@[121; 124)
86 LOOP_KW@[129; 133) "loop" 86 LET_KW@[121; 124) "let"
87 WHITESPACE@[133; 134) " " 87 WHITESPACE@[124; 129) "\n "
88 BLOCK@[134; 136) 88 LOOP_EXPR@[129; 136)
89 L_CURLY@[134; 135) "{" 89 LOOP_KW@[129; 133) "loop"
90 R_CURLY@[135; 136) "}" 90 WHITESPACE@[133; 134) " "
91 WHITESPACE@[136; 137) "\n" 91 BLOCK_EXPR@[134; 136)
92 R_CURLY@[137; 138) "}" 92 BLOCK@[134; 136)
93 L_CURLY@[134; 135) "{"
94 R_CURLY@[135; 136) "}"
95 WHITESPACE@[136; 137) "\n"
96 R_CURLY@[137; 138) "}"
93 WHITESPACE@[138; 139) "\n" 97 WHITESPACE@[138; 139) "\n"
94error 24: expected expression 98error 24: expected expression
95error 24: expected SEMI 99error 24: expected SEMI
diff --git a/crates/ra_syntax/test_data/parser/err/0020_fn_recover.txt b/crates/ra_syntax/test_data/parser/err/0020_fn_recover.txt
index 71c014028..70727d059 100644
--- a/crates/ra_syntax/test_data/parser/err/0020_fn_recover.txt
+++ b/crates/ra_syntax/test_data/parser/err/0020_fn_recover.txt
@@ -11,9 +11,10 @@ SOURCE_FILE@[0; 16)
11 L_PAREN@[10; 11) "(" 11 L_PAREN@[10; 11) "("
12 R_PAREN@[11; 12) ")" 12 R_PAREN@[11; 12) ")"
13 WHITESPACE@[12; 13) " " 13 WHITESPACE@[12; 13) " "
14 BLOCK@[13; 15) 14 BLOCK_EXPR@[13; 15)
15 L_CURLY@[13; 14) "{" 15 BLOCK@[13; 15)
16 R_CURLY@[14; 15) "}" 16 L_CURLY@[13; 14) "{"
17 R_CURLY@[14; 15) "}"
17 WHITESPACE@[15; 16) "\n" 18 WHITESPACE@[15; 16) "\n"
18error 2: expected a name 19error 2: expected a name
19error 2: expected function arguments 20error 2: expected function arguments
diff --git a/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.txt b/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.txt
index c125a0bc9..333782480 100644
--- a/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.txt
+++ b/crates/ra_syntax/test_data/parser/err/0021_incomplete_param.txt
@@ -25,10 +25,11 @@ SOURCE_FILE@[0; 22)
25 IDENT@[15; 16) "y" 25 IDENT@[15; 16) "y"
26 R_PAREN@[16; 17) ")" 26 R_PAREN@[16; 17) ")"
27 WHITESPACE@[17; 18) " " 27 WHITESPACE@[17; 18) " "
28 BLOCK@[18; 21) 28 BLOCK_EXPR@[18; 21)
29 L_CURLY@[18; 19) "{" 29 BLOCK@[18; 21)
30 WHITESPACE@[19; 20) "\n" 30 L_CURLY@[18; 19) "{"
31 R_CURLY@[20; 21) "}" 31 WHITESPACE@[19; 20) "\n"
32 R_CURLY@[20; 21) "}"
32 WHITESPACE@[21; 22) "\n" 33 WHITESPACE@[21; 22) "\n"
33error 16: expected COLON 34error 16: expected COLON
34error 16: expected type 35error 16: expected type
diff --git a/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.txt b/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.txt
index 32b53bba7..ee0ac52c3 100644
--- a/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.txt
+++ b/crates/ra_syntax/test_data/parser/err/0022_bad_exprs.txt
@@ -8,38 +8,39 @@ SOURCE_FILE@[0; 112)
8 L_PAREN@[4; 5) "(" 8 L_PAREN@[4; 5) "("
9 R_PAREN@[5; 6) ")" 9 R_PAREN@[5; 6) ")"
10 WHITESPACE@[6; 7) " " 10 WHITESPACE@[6; 7) " "
11 BLOCK@[7; 33) 11 BLOCK_EXPR@[7; 33)
12 L_CURLY@[7; 8) "{" 12 BLOCK@[7; 33)
13 WHITESPACE@[8; 9) " " 13 L_CURLY@[7; 8) "{"
14 EXPR_STMT@[9; 15) 14 WHITESPACE@[8; 9) " "
15 ARRAY_EXPR@[9; 15) 15 EXPR_STMT@[9; 15)
16 L_BRACK@[9; 10) "[" 16 ARRAY_EXPR@[9; 15)
17 LITERAL@[10; 11) 17 L_BRACK@[9; 10) "["
18 INT_NUMBER@[10; 11) "1" 18 LITERAL@[10; 11)
19 COMMA@[11; 12) "," 19 INT_NUMBER@[10; 11) "1"
20 WHITESPACE@[12; 13) " " 20 COMMA@[11; 12) ","
21 LITERAL@[13; 14) 21 WHITESPACE@[12; 13) " "
22 INT_NUMBER@[13; 14) "2" 22 LITERAL@[13; 14)
23 COMMA@[14; 15) "," 23 INT_NUMBER@[13; 14) "2"
24 WHITESPACE@[15; 16) " " 24 COMMA@[14; 15) ","
25 EXPR_STMT@[16; 17) 25 WHITESPACE@[15; 16) " "
26 ERROR@[16; 17) 26 EXPR_STMT@[16; 17)
27 AT@[16; 17) "@" 27 ERROR@[16; 17)
28 EXPR_STMT@[17; 18) 28 AT@[16; 17) "@"
29 ERROR@[17; 18) 29 EXPR_STMT@[17; 18)
30 COMMA@[17; 18) "," 30 ERROR@[17; 18)
31 WHITESPACE@[18; 19) " " 31 COMMA@[17; 18) ","
32 STRUCT_DEF@[19; 26) 32 WHITESPACE@[18; 19) " "
33 STRUCT_KW@[19; 25) "struct" 33 STRUCT_DEF@[19; 26)
34 ERROR@[25; 26) 34 STRUCT_KW@[19; 25) "struct"
35 COMMA@[25; 26) "," 35 ERROR@[25; 26)
36 WHITESPACE@[26; 27) " " 36 COMMA@[25; 26) ","
37 LET_STMT@[27; 31) 37 WHITESPACE@[26; 27) " "
38 LET_KW@[27; 30) "let" 38 LET_STMT@[27; 31)
39 ERROR@[30; 31) 39 LET_KW@[27; 30) "let"
40 R_BRACK@[30; 31) "]" 40 ERROR@[30; 31)
41 WHITESPACE@[31; 32) " " 41 R_BRACK@[30; 31) "]"
42 R_CURLY@[32; 33) "}" 42 WHITESPACE@[31; 32) " "
43 R_CURLY@[32; 33) "}"
43 WHITESPACE@[33; 34) "\n" 44 WHITESPACE@[33; 34) "\n"
44 FN_DEF@[34; 68) 45 FN_DEF@[34; 68)
45 FN_KW@[34; 36) "fn" 46 FN_KW@[34; 36) "fn"
@@ -50,45 +51,46 @@ SOURCE_FILE@[0; 112)
50 L_PAREN@[38; 39) "(" 51 L_PAREN@[38; 39) "("
51 R_PAREN@[39; 40) ")" 52 R_PAREN@[39; 40) ")"
52 WHITESPACE@[40; 41) " " 53 WHITESPACE@[40; 41) " "
53 BLOCK@[41; 68) 54 BLOCK_EXPR@[41; 68)
54 L_CURLY@[41; 42) "{" 55 BLOCK@[41; 68)
55 WHITESPACE@[42; 43) " " 56 L_CURLY@[41; 42) "{"
56 EXPR_STMT@[43; 52) 57 WHITESPACE@[42; 43) " "
57 CALL_EXPR@[43; 52) 58 EXPR_STMT@[43; 52)
58 PATH_EXPR@[43; 46) 59 CALL_EXPR@[43; 52)
59 PATH@[43; 46) 60 PATH_EXPR@[43; 46)
60 PATH_SEGMENT@[43; 46) 61 PATH@[43; 46)
61 NAME_REF@[43; 46) 62 PATH_SEGMENT@[43; 46)
62 IDENT@[43; 46) "foo" 63 NAME_REF@[43; 46)
63 ARG_LIST@[46; 52) 64 IDENT@[43; 46) "foo"
64 L_PAREN@[46; 47) "(" 65 ARG_LIST@[46; 52)
65 LITERAL@[47; 48) 66 L_PAREN@[46; 47) "("
66 INT_NUMBER@[47; 48) "1" 67 LITERAL@[47; 48)
67 COMMA@[48; 49) "," 68 INT_NUMBER@[47; 48) "1"
68 WHITESPACE@[49; 50) " " 69 COMMA@[48; 49) ","
69 LITERAL@[50; 51) 70 WHITESPACE@[49; 50) " "
70 INT_NUMBER@[50; 51) "2" 71 LITERAL@[50; 51)
71 COMMA@[51; 52) "," 72 INT_NUMBER@[50; 51) "2"
72 WHITESPACE@[52; 53) " " 73 COMMA@[51; 52) ","
73 EXPR_STMT@[53; 54) 74 WHITESPACE@[52; 53) " "
74 ERROR@[53; 54) 75 EXPR_STMT@[53; 54)
75 AT@[53; 54) "@" 76 ERROR@[53; 54)
76 EXPR_STMT@[54; 55) 77 AT@[53; 54) "@"
77 ERROR@[54; 55) 78 EXPR_STMT@[54; 55)
78 COMMA@[54; 55) "," 79 ERROR@[54; 55)
79 WHITESPACE@[55; 56) " " 80 COMMA@[54; 55) ","
80 IMPL_BLOCK@[56; 60) 81 WHITESPACE@[55; 56) " "
81 IMPL_KW@[56; 60) "impl" 82 IMPL_BLOCK@[56; 60)
82 EXPR_STMT@[60; 61) 83 IMPL_KW@[56; 60) "impl"
83 ERROR@[60; 61) 84 EXPR_STMT@[60; 61)
84 COMMA@[60; 61) "," 85 ERROR@[60; 61)
85 WHITESPACE@[61; 62) " " 86 COMMA@[60; 61) ","
86 LET_STMT@[62; 65) 87 WHITESPACE@[61; 62) " "
87 LET_KW@[62; 65) "let" 88 LET_STMT@[62; 65)
88 ERROR@[65; 66) 89 LET_KW@[62; 65) "let"
89 R_PAREN@[65; 66) ")" 90 ERROR@[65; 66)
90 WHITESPACE@[66; 67) " " 91 R_PAREN@[65; 66) ")"
91 R_CURLY@[67; 68) "}" 92 WHITESPACE@[66; 67) " "
93 R_CURLY@[67; 68) "}"
92 WHITESPACE@[68; 69) "\n" 94 WHITESPACE@[68; 69) "\n"
93 FN_DEF@[69; 111) 95 FN_DEF@[69; 111)
94 FN_KW@[69; 71) "fn" 96 FN_KW@[69; 71) "fn"
@@ -99,54 +101,55 @@ SOURCE_FILE@[0; 112)
99 L_PAREN@[73; 74) "(" 101 L_PAREN@[73; 74) "("
100 R_PAREN@[74; 75) ")" 102 R_PAREN@[74; 75) ")"
101 WHITESPACE@[75; 76) " " 103 WHITESPACE@[75; 76) " "
102 BLOCK@[76; 111) 104 BLOCK_EXPR@[76; 111)
103 L_CURLY@[76; 77) "{" 105 BLOCK@[76; 111)
104 WHITESPACE@[77; 78) " " 106 L_CURLY@[76; 77) "{"
105 EXPR_STMT@[78; 91) 107 WHITESPACE@[77; 78) " "
106 METHOD_CALL_EXPR@[78; 91) 108 EXPR_STMT@[78; 91)
107 PATH_EXPR@[78; 81) 109 METHOD_CALL_EXPR@[78; 91)
108 PATH@[78; 81) 110 PATH_EXPR@[78; 81)
109 PATH_SEGMENT@[78; 81) 111 PATH@[78; 81)
110 NAME_REF@[78; 81) 112 PATH_SEGMENT@[78; 81)
111 IDENT@[78; 81) "foo" 113 NAME_REF@[78; 81)
112 DOT@[81; 82) "." 114 IDENT@[78; 81) "foo"
113 NAME_REF@[82; 85) 115 DOT@[81; 82) "."
114 IDENT@[82; 85) "bar" 116 NAME_REF@[82; 85)
115 ARG_LIST@[85; 91) 117 IDENT@[82; 85) "bar"
116 L_PAREN@[85; 86) "(" 118 ARG_LIST@[85; 91)
117 LITERAL@[86; 87) 119 L_PAREN@[85; 86) "("
118 INT_NUMBER@[86; 87) "1" 120 LITERAL@[86; 87)
119 COMMA@[87; 88) "," 121 INT_NUMBER@[86; 87) "1"
120 WHITESPACE@[88; 89) " " 122 COMMA@[87; 88) ","
121 LITERAL@[89; 90) 123 WHITESPACE@[88; 89) " "
122 INT_NUMBER@[89; 90) "2" 124 LITERAL@[89; 90)
123 COMMA@[90; 91) "," 125 INT_NUMBER@[89; 90) "2"
124 WHITESPACE@[91; 92) " " 126 COMMA@[90; 91) ","
125 EXPR_STMT@[92; 93) 127 WHITESPACE@[91; 92) " "
126 ERROR@[92; 93) 128 EXPR_STMT@[92; 93)
127 AT@[92; 93) "@" 129 ERROR@[92; 93)
128 EXPR_STMT@[93; 94) 130 AT@[92; 93) "@"
129 ERROR@[93; 94) 131 EXPR_STMT@[93; 94)
130 COMMA@[93; 94) "," 132 ERROR@[93; 94)
131 WHITESPACE@[94; 95) " " 133 COMMA@[93; 94) ","
132 EXPR_STMT@[95; 96) 134 WHITESPACE@[94; 95) " "
133 ERROR@[95; 96) 135 EXPR_STMT@[95; 96)
134 R_BRACK@[95; 96) "]" 136 ERROR@[95; 96)
135 EXPR_STMT@[96; 97) 137 R_BRACK@[95; 96) "]"
136 ERROR@[96; 97) 138 EXPR_STMT@[96; 97)
137 COMMA@[96; 97) "," 139 ERROR@[96; 97)
138 WHITESPACE@[97; 98) " " 140 COMMA@[96; 97) ","
139 TRAIT_DEF@[98; 104) 141 WHITESPACE@[97; 98) " "
140 TRAIT_KW@[98; 103) "trait" 142 TRAIT_DEF@[98; 104)
141 ERROR@[103; 104) 143 TRAIT_KW@[98; 103) "trait"
142 COMMA@[103; 104) "," 144 ERROR@[103; 104)
143 WHITESPACE@[104; 105) " " 145 COMMA@[103; 104) ","
144 LET_STMT@[105; 108) 146 WHITESPACE@[104; 105) " "
145 LET_KW@[105; 108) "let" 147 LET_STMT@[105; 108)
146 ERROR@[108; 109) 148 LET_KW@[105; 108) "let"
147 R_PAREN@[108; 109) ")" 149 ERROR@[108; 109)
148 WHITESPACE@[109; 110) " " 150 R_PAREN@[108; 109) ")"
149 R_CURLY@[110; 111) "}" 151 WHITESPACE@[109; 110) " "
152 R_CURLY@[110; 111) "}"
150 WHITESPACE@[111; 112) "\n" 153 WHITESPACE@[111; 112) "\n"
151error 15: expected expression 154error 15: expected expression
152error 15: expected R_BRACK 155error 15: expected R_BRACK
diff --git a/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.txt b/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.txt
index f2515faa7..6dd04f80e 100644
--- a/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.txt
+++ b/crates/ra_syntax/test_data/parser/err/0023_mismatched_paren.txt
@@ -8,31 +8,32 @@ SOURCE_FILE@[0; 94)
8 L_PAREN@[7; 8) "(" 8 L_PAREN@[7; 8) "("
9 R_PAREN@[8; 9) ")" 9 R_PAREN@[8; 9) ")"
10 WHITESPACE@[9; 10) " " 10 WHITESPACE@[9; 10) " "
11 BLOCK@[10; 55) 11 BLOCK_EXPR@[10; 55)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 55)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 MACRO_CALL@[16; 49) 14 WHITESPACE@[11; 16) "\n "
15 PATH@[16; 19) 15 MACRO_CALL@[16; 49)
16 PATH_SEGMENT@[16; 19) 16 PATH@[16; 19)
17 NAME_REF@[16; 19) 17 PATH_SEGMENT@[16; 19)
18 IDENT@[16; 19) "foo" 18 NAME_REF@[16; 19)
19 EXCL@[19; 20) "!" 19 IDENT@[16; 19) "foo"
20 WHITESPACE@[20; 21) " " 20 EXCL@[19; 20) "!"
21 TOKEN_TREE@[21; 49) 21 WHITESPACE@[20; 21) " "
22 L_PAREN@[21; 22) "(" 22 TOKEN_TREE@[21; 49)
23 WHITESPACE@[22; 31) "\n " 23 L_PAREN@[21; 22) "("
24 IDENT@[31; 34) "bar" 24 WHITESPACE@[22; 31) "\n "
25 COMMA@[34; 35) "," 25 IDENT@[31; 34) "bar"
26 WHITESPACE@[35; 36) " " 26 COMMA@[34; 35) ","
27 STRING@[36; 41) "\"baz\"" 27 WHITESPACE@[35; 36) " "
28 COMMA@[41; 42) "," 28 STRING@[36; 41) "\"baz\""
29 WHITESPACE@[42; 43) " " 29 COMMA@[41; 42) ","
30 INT_NUMBER@[43; 44) "1" 30 WHITESPACE@[42; 43) " "
31 COMMA@[44; 45) "," 31 INT_NUMBER@[43; 44) "1"
32 WHITESPACE@[45; 46) " " 32 COMMA@[44; 45) ","
33 FLOAT_NUMBER@[46; 49) "2.0" 33 WHITESPACE@[45; 46) " "
34 WHITESPACE@[49; 54) "\n " 34 FLOAT_NUMBER@[46; 49) "2.0"
35 R_CURLY@[54; 55) "}" 35 WHITESPACE@[49; 54) "\n "
36 R_CURLY@[54; 55) "}"
36 WHITESPACE@[55; 56) " " 37 WHITESPACE@[55; 56) " "
37 COMMENT@[56; 91) "//~ ERROR incorrect c ..." 38 COMMENT@[56; 91) "//~ ERROR incorrect c ..."
38 WHITESPACE@[91; 92) "\n" 39 WHITESPACE@[91; 92) "\n"
diff --git a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.txt b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.txt
index faf0fe462..198daf7b4 100644
--- a/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.txt
+++ b/crates/ra_syntax/test_data/parser/err/0024_many_type_parens.txt
@@ -61,9 +61,10 @@ SOURCE_FILE@[0; 240)
61 L_PAREN@[48; 49) "(" 61 L_PAREN@[48; 49) "("
62 R_PAREN@[49; 50) ")" 62 R_PAREN@[49; 50) ")"
63 WHITESPACE@[50; 51) " " 63 WHITESPACE@[50; 51) " "
64 BLOCK@[51; 53) 64 BLOCK_EXPR@[51; 53)
65 L_CURLY@[51; 52) "{" 65 BLOCK@[51; 53)
66 R_CURLY@[52; 53) "}" 66 L_CURLY@[51; 52) "{"
67 R_CURLY@[52; 53) "}"
67 WHITESPACE@[53; 55) "\n\n" 68 WHITESPACE@[53; 55) "\n\n"
68 FN_DEF@[55; 239) 69 FN_DEF@[55; 239)
69 FN_KW@[55; 57) "fn" 70 FN_KW@[55; 57) "fn"
@@ -74,222 +75,223 @@ SOURCE_FILE@[0; 240)
74 L_PAREN@[62; 63) "(" 75 L_PAREN@[62; 63) "("
75 R_PAREN@[63; 64) ")" 76 R_PAREN@[63; 64) ")"
76 WHITESPACE@[64; 65) " " 77 WHITESPACE@[64; 65) " "
77 BLOCK@[65; 239) 78 BLOCK_EXPR@[65; 239)
78 L_CURLY@[65; 66) "{" 79 BLOCK@[65; 239)
79 WHITESPACE@[66; 71) "\n " 80 L_CURLY@[65; 66) "{"
80 LET_STMT@[71; 121) 81 WHITESPACE@[66; 71) "\n "
81 LET_KW@[71; 74) "let" 82 LET_STMT@[71; 121)
82 WHITESPACE@[74; 75) " " 83 LET_KW@[71; 74) "let"
83 PLACEHOLDER_PAT@[75; 76) 84 WHITESPACE@[74; 75) " "
84 UNDERSCORE@[75; 76) "_" 85 PLACEHOLDER_PAT@[75; 76)
85 COLON@[76; 77) ":" 86 UNDERSCORE@[75; 76) "_"
86 WHITESPACE@[77; 78) " " 87 COLON@[76; 77) ":"
87 DYN_TRAIT_TYPE@[78; 121) 88 WHITESPACE@[77; 78) " "
88 TYPE_BOUND_LIST@[78; 121) 89 DYN_TRAIT_TYPE@[78; 121)
89 TYPE_BOUND@[78; 88) 90 TYPE_BOUND_LIST@[78; 121)
90 PATH_TYPE@[78; 88) 91 TYPE_BOUND@[78; 88)
91 PATH@[78; 88) 92 PATH_TYPE@[78; 88)
92 PATH_SEGMENT@[78; 88) 93 PATH@[78; 88)
93 NAME_REF@[78; 81) 94 PATH_SEGMENT@[78; 88)
94 IDENT@[78; 81) "Box" 95 NAME_REF@[78; 81)
95 TYPE_ARG_LIST@[81; 88) 96 IDENT@[78; 81) "Box"
96 L_ANGLE@[81; 82) "<" 97 TYPE_ARG_LIST@[81; 88)
97 TYPE_ARG@[82; 88) 98 L_ANGLE@[81; 82) "<"
98 PAREN_TYPE@[82; 88) 99 TYPE_ARG@[82; 88)
99 L_PAREN@[82; 83) "(" 100 PAREN_TYPE@[82; 88)
100 PATH_TYPE@[83; 87) 101 L_PAREN@[82; 83) "("
101 PATH@[83; 87) 102 PATH_TYPE@[83; 87)
102 PATH_SEGMENT@[83; 87) 103 PATH@[83; 87)
103 NAME_REF@[83; 87) 104 PATH_SEGMENT@[83; 87)
104 IDENT@[83; 87) "Copy" 105 NAME_REF@[83; 87)
105 R_PAREN@[87; 88) ")" 106 IDENT@[83; 87) "Copy"
106 WHITESPACE@[88; 89) " " 107 R_PAREN@[87; 88) ")"
107 PLUS@[89; 90) "+" 108 WHITESPACE@[88; 89) " "
108 WHITESPACE@[90; 91) " " 109 PLUS@[89; 90) "+"
109 TYPE_BOUND@[91; 99) 110 WHITESPACE@[90; 91) " "
110 L_PAREN@[91; 92) "(" 111 TYPE_BOUND@[91; 99)
111 QUESTION@[92; 93) "?" 112 L_PAREN@[91; 92) "("
112 PATH_TYPE@[93; 98) 113 QUESTION@[92; 93) "?"
113 PATH@[93; 98) 114 PATH_TYPE@[93; 98)
114 PATH_SEGMENT@[93; 98) 115 PATH@[93; 98)
115 NAME_REF@[93; 98) 116 PATH_SEGMENT@[93; 98)
116 IDENT@[93; 98) "Sized" 117 NAME_REF@[93; 98)
117 R_PAREN@[98; 99) ")" 118 IDENT@[93; 98) "Sized"
118 WHITESPACE@[99; 100) " " 119 R_PAREN@[98; 99) ")"
119 PLUS@[100; 101) "+" 120 WHITESPACE@[99; 100) " "
120 WHITESPACE@[101; 102) " " 121 PLUS@[100; 101) "+"
121 TYPE_BOUND@[102; 121) 122 WHITESPACE@[101; 102) " "
122 L_PAREN@[102; 103) "(" 123 TYPE_BOUND@[102; 121)
123 FOR_TYPE@[103; 120) 124 L_PAREN@[102; 103) "("
124 FOR_KW@[103; 106) "for" 125 FOR_TYPE@[103; 120)
125 TYPE_PARAM_LIST@[106; 110) 126 FOR_KW@[103; 106) "for"
126 L_ANGLE@[106; 107) "<" 127 TYPE_PARAM_LIST@[106; 110)
127 LIFETIME_PARAM@[107; 109) 128 L_ANGLE@[106; 107) "<"
128 LIFETIME@[107; 109) "\'a" 129 LIFETIME_PARAM@[107; 109)
129 R_ANGLE@[109; 110) ">" 130 LIFETIME@[107; 109) "\'a"
130 WHITESPACE@[110; 111) " " 131 R_ANGLE@[109; 110) ">"
131 PATH_TYPE@[111; 120) 132 WHITESPACE@[110; 111) " "
132 PATH@[111; 120) 133 PATH_TYPE@[111; 120)
133 PATH_SEGMENT@[111; 120) 134 PATH@[111; 120)
134 NAME_REF@[111; 116) 135 PATH_SEGMENT@[111; 120)
135 IDENT@[111; 116) "Trait" 136 NAME_REF@[111; 116)
136 TYPE_ARG_LIST@[116; 120) 137 IDENT@[111; 116) "Trait"
137 L_ANGLE@[116; 117) "<" 138 TYPE_ARG_LIST@[116; 120)
138 LIFETIME_ARG@[117; 119) 139 L_ANGLE@[116; 117) "<"
139 LIFETIME@[117; 119) "\'a" 140 LIFETIME_ARG@[117; 119)
140 R_ANGLE@[119; 120) ">" 141 LIFETIME@[117; 119) "\'a"
141 R_PAREN@[120; 121) ")" 142 R_ANGLE@[119; 120) ">"
142 EXPR_STMT@[121; 123) 143 R_PAREN@[120; 121) ")"
143 ERROR@[121; 122) 144 EXPR_STMT@[121; 123)
144 R_ANGLE@[121; 122) ">" 145 ERROR@[121; 122)
145 SEMI@[122; 123) ";" 146 R_ANGLE@[121; 122) ">"
146 WHITESPACE@[123; 128) "\n " 147 SEMI@[122; 123) ";"
147 LET_STMT@[128; 141) 148 WHITESPACE@[123; 128) "\n "
148 LET_KW@[128; 131) "let" 149 LET_STMT@[128; 141)
149 WHITESPACE@[131; 132) " " 150 LET_KW@[128; 131) "let"
150 PLACEHOLDER_PAT@[132; 133) 151 WHITESPACE@[131; 132) " "
151 UNDERSCORE@[132; 133) "_" 152 PLACEHOLDER_PAT@[132; 133)
152 COLON@[133; 134) ":" 153 UNDERSCORE@[132; 133) "_"
153 WHITESPACE@[134; 135) " " 154 COLON@[133; 134) ":"
154 PATH_TYPE@[135; 141) 155 WHITESPACE@[134; 135) " "
155 PATH@[135; 141) 156 PATH_TYPE@[135; 141)
156 PATH_SEGMENT@[135; 141) 157 PATH@[135; 141)
157 NAME_REF@[135; 138) 158 PATH_SEGMENT@[135; 141)
158 IDENT@[135; 138) "Box" 159 NAME_REF@[135; 138)
159 TYPE_ARG_LIST@[138; 141) 160 IDENT@[135; 138) "Box"
160 L_ANGLE@[138; 139) "<" 161 TYPE_ARG_LIST@[138; 141)
161 TYPE_ARG@[139; 141) 162 L_ANGLE@[138; 139) "<"
162 PAREN_TYPE@[139; 141) 163 TYPE_ARG@[139; 141)
163 L_PAREN@[139; 140) "(" 164 PAREN_TYPE@[139; 141)
164 ERROR@[140; 141) 165 L_PAREN@[139; 140) "("
165 QUESTION@[140; 141) "?" 166 ERROR@[140; 141)
166 EXPR_STMT@[141; 146) 167 QUESTION@[140; 141) "?"
167 PATH_EXPR@[141; 146) 168 EXPR_STMT@[141; 146)
168 PATH@[141; 146) 169 PATH_EXPR@[141; 146)
169 PATH_SEGMENT@[141; 146) 170 PATH@[141; 146)
170 NAME_REF@[141; 146) 171 PATH_SEGMENT@[141; 146)
171 IDENT@[141; 146) "Sized" 172 NAME_REF@[141; 146)
172 EXPR_STMT@[146; 147) 173 IDENT@[141; 146) "Sized"
173 ERROR@[146; 147) 174 EXPR_STMT@[146; 147)
174 R_PAREN@[146; 147) ")" 175 ERROR@[146; 147)
175 WHITESPACE@[147; 148) " " 176 R_PAREN@[146; 147) ")"
176 EXPR_STMT@[148; 149) 177 WHITESPACE@[147; 148) " "
177 ERROR@[148; 149) 178 EXPR_STMT@[148; 149)
178 PLUS@[148; 149) "+" 179 ERROR@[148; 149)
179 WHITESPACE@[149; 150) " " 180 PLUS@[148; 149) "+"
180 EXPR_STMT@[150; 151) 181 WHITESPACE@[149; 150) " "
181 PAREN_EXPR@[150; 151) 182 EXPR_STMT@[150; 151)
182 L_PAREN@[150; 151) "(" 183 PAREN_EXPR@[150; 151)
183 EXPR_STMT@[151; 157) 184 L_PAREN@[150; 151) "("
184 FOR_EXPR@[151; 157) 185 EXPR_STMT@[151; 157)
185 FOR_KW@[151; 154) "for" 186 FOR_EXPR@[151; 157)
186 ERROR@[154; 155) 187 FOR_KW@[151; 154) "for"
187 L_ANGLE@[154; 155) "<" 188 ERROR@[154; 155)
188 ERROR@[155; 157) 189 L_ANGLE@[154; 155) "<"
189 LIFETIME@[155; 157) "\'a" 190 ERROR@[155; 157)
190 EXPR_STMT@[157; 158) 191 LIFETIME@[155; 157) "\'a"
191 ERROR@[157; 158) 192 EXPR_STMT@[157; 158)
192 R_ANGLE@[157; 158) ">" 193 ERROR@[157; 158)
193 WHITESPACE@[158; 159) " " 194 R_ANGLE@[157; 158) ">"
194 EXPR_STMT@[159; 180) 195 WHITESPACE@[158; 159) " "
195 BIN_EXPR@[159; 180) 196 EXPR_STMT@[159; 180)
196 BIN_EXPR@[159; 178) 197 BIN_EXPR@[159; 180)
197 BIN_EXPR@[159; 169) 198 BIN_EXPR@[159; 178)
198 BIN_EXPR@[159; 167) 199 BIN_EXPR@[159; 169)
199 PATH_EXPR@[159; 164) 200 BIN_EXPR@[159; 167)
200 PATH@[159; 164) 201 PATH_EXPR@[159; 164)
201 PATH_SEGMENT@[159; 164) 202 PATH@[159; 164)
202 NAME_REF@[159; 164) 203 PATH_SEGMENT@[159; 164)
203 IDENT@[159; 164) "Trait" 204 NAME_REF@[159; 164)
204 L_ANGLE@[164; 165) "<" 205 IDENT@[159; 164) "Trait"
205 ERROR@[165; 167) 206 L_ANGLE@[164; 165) "<"
206 LIFETIME@[165; 167) "\'a" 207 ERROR@[165; 167)
207 R_ANGLE@[167; 168) ">" 208 LIFETIME@[165; 167) "\'a"
208 ERROR@[168; 169) 209 R_ANGLE@[167; 168) ">"
209 R_PAREN@[168; 169) ")" 210 ERROR@[168; 169)
210 WHITESPACE@[169; 170) " " 211 R_PAREN@[168; 169) ")"
211 PLUS@[170; 171) "+" 212 WHITESPACE@[169; 170) " "
212 WHITESPACE@[171; 172) " " 213 PLUS@[170; 171) "+"
213 PAREN_EXPR@[172; 178) 214 WHITESPACE@[171; 172) " "
214 L_PAREN@[172; 173) "(" 215 PAREN_EXPR@[172; 178)
215 PATH_EXPR@[173; 177) 216 L_PAREN@[172; 173) "("
216 PATH@[173; 177) 217 PATH_EXPR@[173; 177)
217 PATH_SEGMENT@[173; 177) 218 PATH@[173; 177)
218 NAME_REF@[173; 177) 219 PATH_SEGMENT@[173; 177)
219 IDENT@[173; 177) "Copy" 220 NAME_REF@[173; 177)
220 R_PAREN@[177; 178) ")" 221 IDENT@[173; 177) "Copy"
221 R_ANGLE@[178; 179) ">" 222 R_PAREN@[177; 178) ")"
222 ERROR@[179; 180) 223 R_ANGLE@[178; 179) ">"
223 SEMI@[179; 180) ";" 224 ERROR@[179; 180)
224 WHITESPACE@[180; 185) "\n " 225 SEMI@[179; 180) ";"
225 LET_STMT@[185; 235) 226 WHITESPACE@[180; 185) "\n "
226 LET_KW@[185; 188) "let" 227 LET_STMT@[185; 235)
227 WHITESPACE@[188; 189) " " 228 LET_KW@[185; 188) "let"
228 PLACEHOLDER_PAT@[189; 190) 229 WHITESPACE@[188; 189) " "
229 UNDERSCORE@[189; 190) "_" 230 PLACEHOLDER_PAT@[189; 190)
230 COLON@[190; 191) ":" 231 UNDERSCORE@[189; 190) "_"
231 WHITESPACE@[191; 192) " " 232 COLON@[190; 191) ":"
232 DYN_TRAIT_TYPE@[192; 235) 233 WHITESPACE@[191; 192) " "
233 TYPE_BOUND_LIST@[192; 235) 234 DYN_TRAIT_TYPE@[192; 235)
234 TYPE_BOUND@[192; 215) 235 TYPE_BOUND_LIST@[192; 235)
235 PATH_TYPE@[192; 215) 236 TYPE_BOUND@[192; 215)
236 PATH@[192; 215) 237 PATH_TYPE@[192; 215)
237 PATH_SEGMENT@[192; 215) 238 PATH@[192; 215)
238 NAME_REF@[192; 195) 239 PATH_SEGMENT@[192; 215)
239 IDENT@[192; 195) "Box" 240 NAME_REF@[192; 195)
240 TYPE_ARG_LIST@[195; 215) 241 IDENT@[192; 195) "Box"
241 L_ANGLE@[195; 196) "<" 242 TYPE_ARG_LIST@[195; 215)
242 TYPE_ARG@[196; 215) 243 L_ANGLE@[195; 196) "<"
243 PAREN_TYPE@[196; 215) 244 TYPE_ARG@[196; 215)
244 L_PAREN@[196; 197) "(" 245 PAREN_TYPE@[196; 215)
245 FOR_TYPE@[197; 214) 246 L_PAREN@[196; 197) "("
246 FOR_KW@[197; 200) "for" 247 FOR_TYPE@[197; 214)
247 TYPE_PARAM_LIST@[200; 204) 248 FOR_KW@[197; 200) "for"
248 L_ANGLE@[200; 201) "<" 249 TYPE_PARAM_LIST@[200; 204)
249 LIFETIME_PARAM@[201; 203) 250 L_ANGLE@[200; 201) "<"
250 LIFETIME@[201; 203) "\'a" 251 LIFETIME_PARAM@[201; 203)
251 R_ANGLE@[203; 204) ">" 252 LIFETIME@[201; 203) "\'a"
252 WHITESPACE@[204; 205) " " 253 R_ANGLE@[203; 204) ">"
253 PATH_TYPE@[205; 214) 254 WHITESPACE@[204; 205) " "
254 PATH@[205; 214) 255 PATH_TYPE@[205; 214)
255 PATH_SEGMENT@[205; 214) 256 PATH@[205; 214)
256 NAME_REF@[205; 210) 257 PATH_SEGMENT@[205; 214)
257 IDENT@[205; 210) "Trait" 258 NAME_REF@[205; 210)
258 TYPE_ARG_LIST@[210; 214) 259 IDENT@[205; 210) "Trait"
259 L_ANGLE@[210; 211) "<" 260 TYPE_ARG_LIST@[210; 214)
260 LIFETIME_ARG@[211; 213) 261 L_ANGLE@[210; 211) "<"
261 LIFETIME@[211; 213) "\'a" 262 LIFETIME_ARG@[211; 213)
262 R_ANGLE@[213; 214) ">" 263 LIFETIME@[211; 213) "\'a"
263 R_PAREN@[214; 215) ")" 264 R_ANGLE@[213; 214) ">"
264 WHITESPACE@[215; 216) " " 265 R_PAREN@[214; 215) ")"
265 PLUS@[216; 217) "+" 266 WHITESPACE@[215; 216) " "
266 WHITESPACE@[217; 218) " " 267 PLUS@[216; 217) "+"
267 TYPE_BOUND@[218; 224) 268 WHITESPACE@[217; 218) " "
268 L_PAREN@[218; 219) "(" 269 TYPE_BOUND@[218; 224)
269 PATH_TYPE@[219; 223) 270 L_PAREN@[218; 219) "("
270 PATH@[219; 223) 271 PATH_TYPE@[219; 223)
271 PATH_SEGMENT@[219; 223) 272 PATH@[219; 223)
272 NAME_REF@[219; 223) 273 PATH_SEGMENT@[219; 223)
273 IDENT@[219; 223) "Copy" 274 NAME_REF@[219; 223)
274 R_PAREN@[223; 224) ")" 275 IDENT@[219; 223) "Copy"
275 WHITESPACE@[224; 225) " " 276 R_PAREN@[223; 224) ")"
276 PLUS@[225; 226) "+" 277 WHITESPACE@[224; 225) " "
277 WHITESPACE@[226; 227) " " 278 PLUS@[225; 226) "+"
278 TYPE_BOUND@[227; 235) 279 WHITESPACE@[226; 227) " "
279 L_PAREN@[227; 228) "(" 280 TYPE_BOUND@[227; 235)
280 QUESTION@[228; 229) "?" 281 L_PAREN@[227; 228) "("
281 PATH_TYPE@[229; 234) 282 QUESTION@[228; 229) "?"
282 PATH@[229; 234) 283 PATH_TYPE@[229; 234)
283 PATH_SEGMENT@[229; 234) 284 PATH@[229; 234)
284 NAME_REF@[229; 234) 285 PATH_SEGMENT@[229; 234)
285 IDENT@[229; 234) "Sized" 286 NAME_REF@[229; 234)
286 R_PAREN@[234; 235) ")" 287 IDENT@[229; 234) "Sized"
287 EXPR_STMT@[235; 237) 288 R_PAREN@[234; 235) ")"
288 ERROR@[235; 236) 289 EXPR_STMT@[235; 237)
289 R_ANGLE@[235; 236) ">" 290 ERROR@[235; 236)
290 SEMI@[236; 237) ";" 291 R_ANGLE@[235; 236) ">"
291 WHITESPACE@[237; 238) "\n" 292 SEMI@[236; 237) ";"
292 R_CURLY@[238; 239) "}" 293 WHITESPACE@[237; 238) "\n"
294 R_CURLY@[238; 239) "}"
293 WHITESPACE@[239; 240) "\n" 295 WHITESPACE@[239; 240) "\n"
294error 88: expected COMMA 296error 88: expected COMMA
295error 88: expected R_ANGLE 297error 88: expected R_ANGLE
diff --git a/crates/ra_syntax/test_data/parser/err/0025_nope.txt b/crates/ra_syntax/test_data/parser/err/0025_nope.txt
index 7b228a8ed..8369f4bda 100644
--- a/crates/ra_syntax/test_data/parser/err/0025_nope.txt
+++ b/crates/ra_syntax/test_data/parser/err/0025_nope.txt
@@ -8,187 +8,188 @@ SOURCE_FILE@[0; 575)
8 L_PAREN@[7; 8) "(" 8 L_PAREN@[7; 8) "("
9 R_PAREN@[8; 9) ")" 9 R_PAREN@[8; 9) ")"
10 WHITESPACE@[9; 10) " " 10 WHITESPACE@[9; 10) " "
11 BLOCK@[10; 574) 11 BLOCK_EXPR@[10; 574)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 574)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 ENUM_DEF@[16; 152) 14 WHITESPACE@[11; 16) "\n "
15 ENUM_KW@[16; 20) "enum" 15 ENUM_DEF@[16; 152)
16 WHITESPACE@[20; 21) " " 16 ENUM_KW@[16; 20) "enum"
17 NAME@[21; 25) 17 WHITESPACE@[20; 21) " "
18 IDENT@[21; 25) "Test" 18 NAME@[21; 25)
19 WHITESPACE@[25; 26) " " 19 IDENT@[21; 25) "Test"
20 ENUM_VARIANT_LIST@[26; 152) 20 WHITESPACE@[25; 26) " "
21 L_CURLY@[26; 27) "{" 21 ENUM_VARIANT_LIST@[26; 152)
22 WHITESPACE@[27; 36) "\n " 22 L_CURLY@[26; 27) "{"
23 ENUM_VARIANT@[36; 40) 23 WHITESPACE@[27; 36) "\n "
24 NAME@[36; 40) 24 ENUM_VARIANT@[36; 40)
25 IDENT@[36; 40) "Var1" 25 NAME@[36; 40)
26 COMMA@[40; 41) "," 26 IDENT@[36; 40) "Var1"
27 WHITESPACE@[41; 50) "\n " 27 COMMA@[40; 41) ","
28 ENUM_VARIANT@[50; 62) 28 WHITESPACE@[41; 50) "\n "
29 NAME@[50; 54) 29 ENUM_VARIANT@[50; 62)
30 IDENT@[50; 54) "Var2" 30 NAME@[50; 54)
31 TUPLE_FIELD_DEF_LIST@[54; 62) 31 IDENT@[50; 54) "Var2"
32 L_PAREN@[54; 55) "(" 32 TUPLE_FIELD_DEF_LIST@[54; 62)
33 TUPLE_FIELD_DEF@[55; 61) 33 L_PAREN@[54; 55) "("
34 PATH_TYPE@[55; 61) 34 TUPLE_FIELD_DEF@[55; 61)
35 PATH@[55; 61) 35 PATH_TYPE@[55; 61)
36 PATH_SEGMENT@[55; 61) 36 PATH@[55; 61)
37 NAME_REF@[55; 61) 37 PATH_SEGMENT@[55; 61)
38 IDENT@[55; 61) "String" 38 NAME_REF@[55; 61)
39 R_PAREN@[61; 62) ")" 39 IDENT@[55; 61) "String"
40 COMMA@[62; 63) "," 40 R_PAREN@[61; 62) ")"
41 WHITESPACE@[63; 72) "\n " 41 COMMA@[62; 63) ","
42 ENUM_VARIANT@[72; 145) 42 WHITESPACE@[63; 72) "\n "
43 NAME@[72; 76) 43 ENUM_VARIANT@[72; 145)
44 IDENT@[72; 76) "Var3" 44 NAME@[72; 76)
45 WHITESPACE@[76; 77) " " 45 IDENT@[72; 76) "Var3"
46 RECORD_FIELD_DEF_LIST@[77; 145) 46 WHITESPACE@[76; 77) " "
47 L_CURLY@[77; 78) "{" 47 RECORD_FIELD_DEF_LIST@[77; 145)
48 WHITESPACE@[78; 91) "\n " 48 L_CURLY@[77; 78) "{"
49 RECORD_FIELD_DEF@[91; 95) 49 WHITESPACE@[78; 91) "\n "
50 NAME@[91; 94) 50 RECORD_FIELD_DEF@[91; 95)
51 IDENT@[91; 94) "abc" 51 NAME@[91; 94)
52 COLON@[94; 95) ":" 52 IDENT@[91; 94) "abc"
53 WHITESPACE@[95; 96) " " 53 COLON@[94; 95) ":"
54 ERROR@[96; 98) 54 WHITESPACE@[95; 96) " "
55 L_CURLY@[96; 97) "{" 55 ERROR@[96; 98)
56 R_CURLY@[97; 98) "}" 56 L_CURLY@[96; 97) "{"
57 ERROR@[98; 99) 57 R_CURLY@[97; 98) "}"
58 COMMA@[98; 99) "," 58 ERROR@[98; 99)
59 WHITESPACE@[99; 100) " " 59 COMMA@[98; 99) ","
60 COMMENT@[100; 135) "//~ ERROR: expected t ..." 60 WHITESPACE@[99; 100) " "
61 WHITESPACE@[135; 144) "\n " 61 COMMENT@[100; 135) "//~ ERROR: expected t ..."
62 R_CURLY@[144; 145) "}" 62 WHITESPACE@[135; 144) "\n "
63 COMMA@[145; 146) "," 63 R_CURLY@[144; 145) "}"
64 WHITESPACE@[146; 151) "\n " 64 COMMA@[145; 146) ","
65 R_CURLY@[151; 152) "}" 65 WHITESPACE@[146; 151) "\n "
66 WHITESPACE@[152; 158) "\n\n " 66 R_CURLY@[151; 152) "}"
67 COMMENT@[158; 171) "// recover..." 67 WHITESPACE@[152; 158) "\n\n "
68 WHITESPACE@[171; 176) "\n " 68 COMMENT@[158; 171) "// recover..."
69 LET_STMT@[176; 186) 69 WHITESPACE@[171; 176) "\n "
70 LET_KW@[176; 179) "let" 70 LET_STMT@[176; 186)
71 WHITESPACE@[179; 180) " " 71 LET_KW@[176; 179) "let"
72 BIND_PAT@[180; 181) 72 WHITESPACE@[179; 180) " "
73 NAME@[180; 181) 73 BIND_PAT@[180; 181)
74 IDENT@[180; 181) "a" 74 NAME@[180; 181)
75 WHITESPACE@[181; 182) " " 75 IDENT@[180; 181) "a"
76 EQ@[182; 183) "=" 76 WHITESPACE@[181; 182) " "
77 WHITESPACE@[183; 184) " " 77 EQ@[182; 183) "="
78 LITERAL@[184; 185) 78 WHITESPACE@[183; 184) " "
79 INT_NUMBER@[184; 185) "1" 79 LITERAL@[184; 185)
80 SEMI@[185; 186) ";" 80 INT_NUMBER@[184; 185) "1"
81 WHITESPACE@[186; 191) "\n " 81 SEMI@[185; 186) ";"
82 ENUM_DEF@[191; 223) 82 WHITESPACE@[186; 191) "\n "
83 ENUM_KW@[191; 195) "enum" 83 ENUM_DEF@[191; 223)
84 WHITESPACE@[195; 196) " " 84 ENUM_KW@[191; 195) "enum"
85 NAME@[196; 201) 85 WHITESPACE@[195; 196) " "
86 IDENT@[196; 201) "Test2" 86 NAME@[196; 201)
87 WHITESPACE@[201; 202) " " 87 IDENT@[196; 201) "Test2"
88 ENUM_VARIANT_LIST@[202; 223) 88 WHITESPACE@[201; 202) " "
89 L_CURLY@[202; 203) "{" 89 ENUM_VARIANT_LIST@[202; 223)
90 WHITESPACE@[203; 212) "\n " 90 L_CURLY@[202; 203) "{"
91 ENUM_VARIANT@[212; 216) 91 WHITESPACE@[203; 212) "\n "
92 NAME@[212; 216) 92 ENUM_VARIANT@[212; 216)
93 IDENT@[212; 216) "Fine" 93 NAME@[212; 216)
94 COMMA@[216; 217) "," 94 IDENT@[212; 216) "Fine"
95 WHITESPACE@[217; 222) "\n " 95 COMMA@[216; 217) ","
96 R_CURLY@[222; 223) "}" 96 WHITESPACE@[217; 222) "\n "
97 WHITESPACE@[223; 229) "\n\n " 97 R_CURLY@[222; 223) "}"
98 ENUM_DEF@[229; 300) 98 WHITESPACE@[223; 229) "\n\n "
99 ENUM_KW@[229; 233) "enum" 99 ENUM_DEF@[229; 300)
100 WHITESPACE@[233; 234) " " 100 ENUM_KW@[229; 233) "enum"
101 NAME@[234; 239) 101 WHITESPACE@[233; 234) " "
102 IDENT@[234; 239) "Test3" 102 NAME@[234; 239)
103 WHITESPACE@[239; 240) " " 103 IDENT@[234; 239) "Test3"
104 ENUM_VARIANT_LIST@[240; 300) 104 WHITESPACE@[239; 240) " "
105 L_CURLY@[240; 241) "{" 105 ENUM_VARIANT_LIST@[240; 300)
106 WHITESPACE@[241; 250) "\n " 106 L_CURLY@[240; 241) "{"
107 ENUM_VARIANT@[250; 293) 107 WHITESPACE@[241; 250) "\n "
108 NAME@[250; 259) 108 ENUM_VARIANT@[250; 293)
109 IDENT@[250; 259) "StillFine" 109 NAME@[250; 259)
110 WHITESPACE@[259; 260) " " 110 IDENT@[250; 259) "StillFine"
111 RECORD_FIELD_DEF_LIST@[260; 293) 111 WHITESPACE@[259; 260) " "
112 L_CURLY@[260; 261) "{" 112 RECORD_FIELD_DEF_LIST@[260; 293)
113 WHITESPACE@[261; 274) "\n " 113 L_CURLY@[260; 261) "{"
114 RECORD_FIELD_DEF@[274; 282) 114 WHITESPACE@[261; 274) "\n "
115 NAME@[274; 277) 115 RECORD_FIELD_DEF@[274; 282)
116 IDENT@[274; 277) "def" 116 NAME@[274; 277)
117 COLON@[277; 278) ":" 117 IDENT@[274; 277) "def"
118 WHITESPACE@[278; 279) " " 118 COLON@[277; 278) ":"
119 PATH_TYPE@[279; 282) 119 WHITESPACE@[278; 279) " "
120 PATH@[279; 282) 120 PATH_TYPE@[279; 282)
121 PATH_SEGMENT@[279; 282) 121 PATH@[279; 282)
122 NAME_REF@[279; 282) 122 PATH_SEGMENT@[279; 282)
123 IDENT@[279; 282) "i32" 123 NAME_REF@[279; 282)
124 COMMA@[282; 283) "," 124 IDENT@[279; 282) "i32"
125 WHITESPACE@[283; 292) "\n " 125 COMMA@[282; 283) ","
126 R_CURLY@[292; 293) "}" 126 WHITESPACE@[283; 292) "\n "
127 COMMA@[293; 294) "," 127 R_CURLY@[292; 293) "}"
128 WHITESPACE@[294; 299) "\n " 128 COMMA@[293; 294) ","
129 R_CURLY@[299; 300) "}" 129 WHITESPACE@[294; 299) "\n "
130 WHITESPACE@[300; 306) "\n\n " 130 R_CURLY@[299; 300) "}"
131 EXPR_STMT@[306; 459) 131 WHITESPACE@[300; 306) "\n\n "
132 BLOCK_EXPR@[306; 459) 132 EXPR_STMT@[306; 459)
133 BLOCK@[306; 459) 133 BLOCK_EXPR@[306; 459)
134 L_CURLY@[306; 307) "{" 134 BLOCK@[306; 459)
135 WHITESPACE@[307; 316) "\n " 135 L_CURLY@[306; 307) "{"
136 ENUM_DEF@[316; 453) 136 WHITESPACE@[307; 316) "\n "
137 COMMENT@[316; 329) "// fail again" 137 ENUM_DEF@[316; 453)
138 WHITESPACE@[329; 338) "\n " 138 COMMENT@[316; 329) "// fail again"
139 ENUM_KW@[338; 342) "enum" 139 WHITESPACE@[329; 338) "\n "
140 WHITESPACE@[342; 343) " " 140 ENUM_KW@[338; 342) "enum"
141 NAME@[343; 348) 141 WHITESPACE@[342; 343) " "
142 IDENT@[343; 348) "Test4" 142 NAME@[343; 348)
143 WHITESPACE@[348; 349) " " 143 IDENT@[343; 348) "Test4"
144 ENUM_VARIANT_LIST@[349; 453) 144 WHITESPACE@[348; 349) " "
145 L_CURLY@[349; 350) "{" 145 ENUM_VARIANT_LIST@[349; 453)
146 WHITESPACE@[350; 363) "\n " 146 L_CURLY@[349; 350) "{"
147 ENUM_VARIANT@[363; 372) 147 WHITESPACE@[350; 363) "\n "
148 NAME@[363; 367) 148 ENUM_VARIANT@[363; 372)
149 IDENT@[363; 367) "Nope" 149 NAME@[363; 367)
150 TUPLE_FIELD_DEF_LIST@[367; 372) 150 IDENT@[363; 367) "Nope"
151 L_PAREN@[367; 368) "(" 151 TUPLE_FIELD_DEF_LIST@[367; 372)
152 TUPLE_FIELD_DEF@[368; 371) 152 L_PAREN@[367; 368) "("
153 PATH_TYPE@[368; 371) 153 TUPLE_FIELD_DEF@[368; 371)
154 PATH@[368; 371) 154 PATH_TYPE@[368; 371)
155 PATH_SEGMENT@[368; 371) 155 PATH@[368; 371)
156 NAME_REF@[368; 371) 156 PATH_SEGMENT@[368; 371)
157 IDENT@[368; 371) "i32" 157 NAME_REF@[368; 371)
158 WHITESPACE@[371; 372) " " 158 IDENT@[368; 371) "i32"
159 ERROR@[372; 372) 159 WHITESPACE@[371; 372) " "
160 ERROR@[372; 374) 160 ERROR@[372; 372)
161 L_CURLY@[372; 373) "{" 161 ERROR@[372; 374)
162 R_CURLY@[373; 374) "}" 162 L_CURLY@[372; 373) "{"
163 ERROR@[374; 375) 163 R_CURLY@[373; 374) "}"
164 R_PAREN@[374; 375) ")" 164 ERROR@[374; 375)
165 WHITESPACE@[375; 376) " " 165 R_PAREN@[374; 375) ")"
166 COMMENT@[376; 396) "//~ ERROR: found `{`" 166 WHITESPACE@[375; 376) " "
167 WHITESPACE@[396; 422) "\n ..." 167 COMMENT@[376; 396) "//~ ERROR: found `{`"
168 COMMENT@[422; 443) "//~^ ERROR: found `{`" 168 WHITESPACE@[396; 422) "\n ..."
169 WHITESPACE@[443; 452) "\n " 169 COMMENT@[422; 443) "//~^ ERROR: found `{`"
170 R_CURLY@[452; 453) "}" 170 WHITESPACE@[443; 452) "\n "
171 WHITESPACE@[453; 458) "\n " 171 R_CURLY@[452; 453) "}"
172 R_CURLY@[458; 459) "}" 172 WHITESPACE@[453; 458) "\n "
173 WHITESPACE@[459; 464) "\n " 173 R_CURLY@[458; 459) "}"
174 COMMENT@[464; 486) "// still recover later" 174 WHITESPACE@[459; 464) "\n "
175 WHITESPACE@[486; 491) "\n " 175 COMMENT@[464; 486) "// still recover later"
176 LET_STMT@[491; 510) 176 WHITESPACE@[486; 491) "\n "
177 LET_KW@[491; 494) "let" 177 LET_STMT@[491; 510)
178 WHITESPACE@[494; 495) " " 178 LET_KW@[491; 494) "let"
179 BIND_PAT@[495; 505) 179 WHITESPACE@[494; 495) " "
180 NAME@[495; 505) 180 BIND_PAT@[495; 505)
181 IDENT@[495; 505) "bad_syntax" 181 NAME@[495; 505)
182 WHITESPACE@[505; 506) " " 182 IDENT@[495; 505) "bad_syntax"
183 EQ@[506; 507) "=" 183 WHITESPACE@[505; 506) " "
184 WHITESPACE@[507; 508) " " 184 EQ@[506; 507) "="
185 ERROR@[508; 509) 185 WHITESPACE@[507; 508) " "
186 UNDERSCORE@[508; 509) "_" 186 ERROR@[508; 509)
187 SEMI@[509; 510) ";" 187 UNDERSCORE@[508; 509) "_"
188 WHITESPACE@[510; 511) " " 188 SEMI@[509; 510) ";"
189 COMMENT@[511; 572) "//~ ERROR: expected e ..." 189 WHITESPACE@[510; 511) " "
190 WHITESPACE@[572; 573) "\n" 190 COMMENT@[511; 572) "//~ ERROR: expected e ..."
191 R_CURLY@[573; 574) "}" 191 WHITESPACE@[572; 573) "\n"
192 R_CURLY@[573; 574) "}"
192 WHITESPACE@[574; 575) "\n" 193 WHITESPACE@[574; 575) "\n"
193error 95: expected type 194error 95: expected type
194error 95: expected COMMA 195error 95: expected COMMA
diff --git a/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.txt b/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.txt
index 061e6fb31..9298b45a4 100644
--- a/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.txt
+++ b/crates/ra_syntax/test_data/parser/err/0027_incomplere_where_for.txt
@@ -20,9 +20,10 @@ SOURCE_FILE@[0; 30)
20 LIFETIME@[23; 25) "\'a" 20 LIFETIME@[23; 25) "\'a"
21 R_ANGLE@[25; 26) ">" 21 R_ANGLE@[25; 26) ">"
22 WHITESPACE@[26; 27) "\n" 22 WHITESPACE@[26; 27) "\n"
23 BLOCK@[27; 29) 23 BLOCK_EXPR@[27; 29)
24 L_CURLY@[27; 28) "{" 24 BLOCK@[27; 29)
25 R_CURLY@[28; 29) "}" 25 L_CURLY@[27; 28) "{"
26 R_CURLY@[28; 29) "}"
26 WHITESPACE@[29; 30) "\n" 27 WHITESPACE@[29; 30) "\n"
27error 26: expected a path 28error 26: expected a path
28error 26: expected colon 29error 26: expected colon
diff --git a/crates/ra_syntax/test_data/parser/err/0028_macro_2.0.txt b/crates/ra_syntax/test_data/parser/err/0028_macro_2.0.txt
index 98bc562a3..73d322c48 100644
--- a/crates/ra_syntax/test_data/parser/err/0028_macro_2.0.txt
+++ b/crates/ra_syntax/test_data/parser/err/0028_macro_2.0.txt
@@ -73,188 +73,189 @@ SOURCE_FILE@[0; 349)
73 L_PAREN@[125; 126) "(" 73 L_PAREN@[125; 126) "("
74 R_PAREN@[126; 127) ")" 74 R_PAREN@[126; 127) ")"
75 WHITESPACE@[127; 128) " " 75 WHITESPACE@[127; 128) " "
76 BLOCK@[128; 348) 76 BLOCK_EXPR@[128; 348)
77 L_CURLY@[128; 129) "{" 77 BLOCK@[128; 348)
78 WHITESPACE@[129; 134) "\n " 78 L_CURLY@[128; 129) "{"
79 EXPR_STMT@[134; 139) 79 WHITESPACE@[129; 134) "\n "
80 PATH_EXPR@[134; 139) 80 EXPR_STMT@[134; 139)
81 PATH@[134; 139) 81 PATH_EXPR@[134; 139)
82 PATH_SEGMENT@[134; 139) 82 PATH@[134; 139)
83 NAME_REF@[134; 139) 83 PATH_SEGMENT@[134; 139)
84 IDENT@[134; 139) "macro" 84 NAME_REF@[134; 139)
85 WHITESPACE@[139; 140) " " 85 IDENT@[134; 139) "macro"
86 EXPR_STMT@[140; 154) 86 WHITESPACE@[139; 140) " "
87 CALL_EXPR@[140; 154) 87 EXPR_STMT@[140; 154)
88 PATH_EXPR@[140; 150) 88 CALL_EXPR@[140; 154)
89 PATH@[140; 150) 89 PATH_EXPR@[140; 150)
90 PATH_SEGMENT@[140; 150) 90 PATH@[140; 150)
91 NAME_REF@[140; 150) 91 PATH_SEGMENT@[140; 150)
92 IDENT@[140; 150) "test_merge" 92 NAME_REF@[140; 150)
93 ARG_LIST@[150; 154) 93 IDENT@[140; 150) "test_merge"
94 L_PAREN@[150; 151) "(" 94 ARG_LIST@[150; 154)
95 ARRAY_EXPR@[151; 154) 95 L_PAREN@[150; 151) "("
96 L_BRACK@[151; 152) "[" 96 ARRAY_EXPR@[151; 154)
97 ERROR@[152; 153) 97 L_BRACK@[151; 152) "["
98 DOLLAR@[152; 153) "$" 98 ERROR@[152; 153)
99 PAREN_EXPR@[153; 154) 99 DOLLAR@[152; 153) "$"
100 L_PAREN@[153; 154) "(" 100 PAREN_EXPR@[153; 154)
101 EXPR_STMT@[154; 155) 101 L_PAREN@[153; 154) "("
102 ERROR@[154; 155) 102 EXPR_STMT@[154; 155)
103 DOLLAR@[154; 155) "$" 103 ERROR@[154; 155)
104 EXPR_STMT@[155; 160) 104 DOLLAR@[154; 155) "$"
105 PATH_EXPR@[155; 160) 105 EXPR_STMT@[155; 160)
106 PATH@[155; 160) 106 PATH_EXPR@[155; 160)
107 PATH_SEGMENT@[155; 160) 107 PATH@[155; 160)
108 NAME_REF@[155; 160) 108 PATH_SEGMENT@[155; 160)
109 IDENT@[155; 160) "input" 109 NAME_REF@[155; 160)
110 EXPR_STMT@[160; 161) 110 IDENT@[155; 160) "input"
111 ERROR@[160; 161) 111 EXPR_STMT@[160; 161)
112 COLON@[160; 161) ":" 112 ERROR@[160; 161)
113 EXPR_STMT@[161; 165) 113 COLON@[160; 161) ":"
114 PATH_EXPR@[161; 165) 114 EXPR_STMT@[161; 165)
115 PATH@[161; 165) 115 PATH_EXPR@[161; 165)
116 PATH_SEGMENT@[161; 165) 116 PATH@[161; 165)
117 NAME_REF@[161; 165) 117 PATH_SEGMENT@[161; 165)
118 IDENT@[161; 165) "expr" 118 NAME_REF@[161; 165)
119 EXPR_STMT@[165; 166) 119 IDENT@[161; 165) "expr"
120 ERROR@[165; 166) 120 EXPR_STMT@[165; 166)
121 R_PAREN@[165; 166) ")" 121 ERROR@[165; 166)
122 EXPR_STMT@[166; 167) 122 R_PAREN@[165; 166) ")"
123 ERROR@[166; 167) 123 EXPR_STMT@[166; 167)
124 COMMA@[166; 167) "," 124 ERROR@[166; 167)
125 EXPR_STMT@[167; 170) 125 COMMA@[166; 167) ","
126 PREFIX_EXPR@[167; 170) 126 EXPR_STMT@[167; 170)
127 STAR@[167; 168) "*" 127 PREFIX_EXPR@[167; 170)
128 WHITESPACE@[168; 169) " " 128 STAR@[167; 168) "*"
129 ERROR@[169; 170) 129 WHITESPACE@[168; 169) " "
130 DOLLAR@[169; 170) "$" 130 ERROR@[169; 170)
131 EXPR_STMT@[170; 171) 131 DOLLAR@[169; 170) "$"
132 PAREN_EXPR@[170; 171) 132 EXPR_STMT@[170; 171)
133 L_PAREN@[170; 171) "(" 133 PAREN_EXPR@[170; 171)
134 EXPR_STMT@[171; 172) 134 L_PAREN@[170; 171) "("
135 ERROR@[171; 172) 135 EXPR_STMT@[171; 172)
136 COMMA@[171; 172) "," 136 ERROR@[171; 172)
137 EXPR_STMT@[172; 173) 137 COMMA@[171; 172) ","
138 ERROR@[172; 173) 138 EXPR_STMT@[172; 173)
139 R_PAREN@[172; 173) ")" 139 ERROR@[172; 173)
140 EXPR_STMT@[173; 175) 140 R_PAREN@[172; 173) ")"
141 PREFIX_EXPR@[173; 175) 141 EXPR_STMT@[173; 175)
142 STAR@[173; 174) "*" 142 PREFIX_EXPR@[173; 175)
143 ERROR@[174; 175) 143 STAR@[173; 174) "*"
144 R_BRACK@[174; 175) "]" 144 ERROR@[174; 175)
145 EXPR_STMT@[175; 176) 145 R_BRACK@[174; 175) "]"
146 ERROR@[175; 176) 146 EXPR_STMT@[175; 176)
147 COMMA@[175; 176) "," 147 ERROR@[175; 176)
148 WHITESPACE@[176; 177) " " 148 COMMA@[175; 176) ","
149 EXPR_STMT@[177; 180) 149 WHITESPACE@[176; 177) " "
150 ARRAY_EXPR@[177; 180) 150 EXPR_STMT@[177; 180)
151 L_BRACK@[177; 178) "[" 151 ARRAY_EXPR@[177; 180)
152 ERROR@[178; 179) 152 L_BRACK@[177; 178) "["
153 DOLLAR@[178; 179) "$" 153 ERROR@[178; 179)
154 PAREN_EXPR@[179; 180) 154 DOLLAR@[178; 179) "$"
155 L_PAREN@[179; 180) "(" 155 PAREN_EXPR@[179; 180)
156 EXPR_STMT@[180; 181) 156 L_PAREN@[179; 180) "("
157 ERROR@[180; 181) 157 EXPR_STMT@[180; 181)
158 DOLLAR@[180; 181) "$" 158 ERROR@[180; 181)
159 EXPR_STMT@[181; 187) 159 DOLLAR@[180; 181) "$"
160 PATH_EXPR@[181; 187) 160 EXPR_STMT@[181; 187)
161 PATH@[181; 187) 161 PATH_EXPR@[181; 187)
162 PATH_SEGMENT@[181; 187) 162 PATH@[181; 187)
163 NAME_REF@[181; 187) 163 PATH_SEGMENT@[181; 187)
164 IDENT@[181; 187) "output" 164 NAME_REF@[181; 187)
165 EXPR_STMT@[187; 188) 165 IDENT@[181; 187) "output"
166 ERROR@[187; 188) 166 EXPR_STMT@[187; 188)
167 COLON@[187; 188) ":" 167 ERROR@[187; 188)
168 EXPR_STMT@[188; 192) 168 COLON@[187; 188) ":"
169 PATH_EXPR@[188; 192) 169 EXPR_STMT@[188; 192)
170 PATH@[188; 192) 170 PATH_EXPR@[188; 192)
171 PATH_SEGMENT@[188; 192) 171 PATH@[188; 192)
172 NAME_REF@[188; 192) 172 PATH_SEGMENT@[188; 192)
173 IDENT@[188; 192) "expr" 173 NAME_REF@[188; 192)
174 EXPR_STMT@[192; 193) 174 IDENT@[188; 192) "expr"
175 ERROR@[192; 193) 175 EXPR_STMT@[192; 193)
176 R_PAREN@[192; 193) ")" 176 ERROR@[192; 193)
177 EXPR_STMT@[193; 194) 177 R_PAREN@[192; 193) ")"
178 ERROR@[193; 194) 178 EXPR_STMT@[193; 194)
179 COMMA@[193; 194) "," 179 ERROR@[193; 194)
180 EXPR_STMT@[194; 197) 180 COMMA@[193; 194) ","
181 PREFIX_EXPR@[194; 197) 181 EXPR_STMT@[194; 197)
182 STAR@[194; 195) "*" 182 PREFIX_EXPR@[194; 197)
183 WHITESPACE@[195; 196) " " 183 STAR@[194; 195) "*"
184 ERROR@[196; 197) 184 WHITESPACE@[195; 196) " "
185 DOLLAR@[196; 197) "$" 185 ERROR@[196; 197)
186 EXPR_STMT@[197; 198) 186 DOLLAR@[196; 197) "$"
187 PAREN_EXPR@[197; 198) 187 EXPR_STMT@[197; 198)
188 L_PAREN@[197; 198) "(" 188 PAREN_EXPR@[197; 198)
189 EXPR_STMT@[198; 199) 189 L_PAREN@[197; 198) "("
190 ERROR@[198; 199) 190 EXPR_STMT@[198; 199)
191 COMMA@[198; 199) "," 191 ERROR@[198; 199)
192 EXPR_STMT@[199; 200) 192 COMMA@[198; 199) ","
193 ERROR@[199; 200) 193 EXPR_STMT@[199; 200)
194 R_PAREN@[199; 200) ")" 194 ERROR@[199; 200)
195 EXPR_STMT@[200; 202) 195 R_PAREN@[199; 200) ")"
196 PREFIX_EXPR@[200; 202) 196 EXPR_STMT@[200; 202)
197 STAR@[200; 201) "*" 197 PREFIX_EXPR@[200; 202)
198 ERROR@[201; 202) 198 STAR@[200; 201) "*"
199 R_BRACK@[201; 202) "]" 199 ERROR@[201; 202)
200 EXPR_STMT@[202; 203) 200 R_BRACK@[201; 202) "]"
201 ERROR@[202; 203) 201 EXPR_STMT@[202; 203)
202 R_PAREN@[202; 203) ")" 202 ERROR@[202; 203)
203 WHITESPACE@[203; 204) " " 203 R_PAREN@[202; 203) ")"
204 BLOCK_EXPR@[204; 346) 204 WHITESPACE@[203; 204) " "
205 BLOCK@[204; 346) 205 BLOCK_EXPR@[204; 346)
206 L_CURLY@[204; 205) "{" 206 BLOCK@[204; 346)
207 WHITESPACE@[205; 214) "\n " 207 L_CURLY@[204; 205) "{"
208 EXPR_STMT@[214; 340) 208 WHITESPACE@[205; 214) "\n "
209 MACRO_CALL@[214; 339) 209 EXPR_STMT@[214; 340)
210 PATH@[214; 223) 210 MACRO_CALL@[214; 339)
211 PATH_SEGMENT@[214; 223) 211 PATH@[214; 223)
212 NAME_REF@[214; 223) 212 PATH_SEGMENT@[214; 223)
213 IDENT@[214; 223) "assert_eq" 213 NAME_REF@[214; 223)
214 EXCL@[223; 224) "!" 214 IDENT@[214; 223) "assert_eq"
215 TOKEN_TREE@[224; 339) 215 EXCL@[223; 224) "!"
216 L_PAREN@[224; 225) "(" 216 TOKEN_TREE@[224; 339)
217 WHITESPACE@[225; 238) "\n " 217 L_PAREN@[224; 225) "("
218 IDENT@[238; 253) "merge_use_trees" 218 WHITESPACE@[225; 238) "\n "
219 TOKEN_TREE@[253; 284) 219 IDENT@[238; 253) "merge_use_trees"
220 L_PAREN@[253; 254) "(" 220 TOKEN_TREE@[253; 284)
221 IDENT@[254; 269) "parse_use_trees" 221 L_PAREN@[253; 254) "("
222 EXCL@[269; 270) "!" 222 IDENT@[254; 269) "parse_use_trees"
223 TOKEN_TREE@[270; 283) 223 EXCL@[269; 270) "!"
224 L_PAREN@[270; 271) "(" 224 TOKEN_TREE@[270; 283)
225 DOLLAR@[271; 272) "$" 225 L_PAREN@[270; 271) "("
226 TOKEN_TREE@[272; 281) 226 DOLLAR@[271; 272) "$"
227 L_PAREN@[272; 273) "(" 227 TOKEN_TREE@[272; 281)
228 DOLLAR@[273; 274) "$" 228 L_PAREN@[272; 273) "("
229 IDENT@[274; 279) "input" 229 DOLLAR@[273; 274) "$"
230 COMMA@[279; 280) "," 230 IDENT@[274; 279) "input"
231 R_PAREN@[280; 281) ")" 231 COMMA@[279; 280) ","
232 STAR@[281; 282) "*" 232 R_PAREN@[280; 281) ")"
233 R_PAREN@[282; 283) ")" 233 STAR@[281; 282) "*"
234 R_PAREN@[283; 284) ")" 234 R_PAREN@[282; 283) ")"
235 COMMA@[284; 285) "," 235 R_PAREN@[283; 284) ")"
236 WHITESPACE@[285; 298) "\n " 236 COMMA@[284; 285) ","
237 IDENT@[298; 313) "parse_use_trees" 237 WHITESPACE@[285; 298) "\n "
238 EXCL@[313; 314) "!" 238 IDENT@[298; 313) "parse_use_trees"
239 TOKEN_TREE@[314; 328) 239 EXCL@[313; 314) "!"
240 L_PAREN@[314; 315) "(" 240 TOKEN_TREE@[314; 328)
241 DOLLAR@[315; 316) "$" 241 L_PAREN@[314; 315) "("
242 TOKEN_TREE@[316; 326) 242 DOLLAR@[315; 316) "$"
243 L_PAREN@[316; 317) "(" 243 TOKEN_TREE@[316; 326)
244 DOLLAR@[317; 318) "$" 244 L_PAREN@[316; 317) "("
245 IDENT@[318; 324) "output" 245 DOLLAR@[317; 318) "$"
246 COMMA@[324; 325) "," 246 IDENT@[318; 324) "output"
247 R_PAREN@[325; 326) ")" 247 COMMA@[324; 325) ","
248 STAR@[326; 327) "*" 248 R_PAREN@[325; 326) ")"
249 R_PAREN@[327; 328) ")" 249 STAR@[326; 327) "*"
250 COMMA@[328; 329) "," 250 R_PAREN@[327; 328) ")"
251 WHITESPACE@[329; 338) "\n " 251 COMMA@[328; 329) ","
252 R_PAREN@[338; 339) ")" 252 WHITESPACE@[329; 338) "\n "
253 SEMI@[339; 340) ";" 253 R_PAREN@[338; 339) ")"
254 WHITESPACE@[340; 345) "\n " 254 SEMI@[339; 340) ";"
255 R_CURLY@[345; 346) "}" 255 WHITESPACE@[340; 345) "\n "
256 WHITESPACE@[346; 347) "\n" 256 R_CURLY@[345; 346) "}"
257 R_CURLY@[347; 348) "}" 257 WHITESPACE@[346; 347) "\n"
258 R_CURLY@[347; 348) "}"
258 WHITESPACE@[348; 349) "\n" 259 WHITESPACE@[348; 349) "\n"
259error 5: expected EXCL 260error 5: expected EXCL
260error 41: expected SEMI 261error 41: expected SEMI
diff --git a/crates/ra_syntax/test_data/parser/err/0029_field_completion.txt b/crates/ra_syntax/test_data/parser/err/0029_field_completion.txt
index fb50a12fc..e3e1282ec 100644
--- a/crates/ra_syntax/test_data/parser/err/0029_field_completion.txt
+++ b/crates/ra_syntax/test_data/parser/err/0029_field_completion.txt
@@ -19,17 +19,18 @@ SOURCE_FILE@[0; 24)
19 IDENT@[10; 11) "A" 19 IDENT@[10; 11) "A"
20 R_PAREN@[11; 12) ")" 20 R_PAREN@[11; 12) ")"
21 WHITESPACE@[12; 13) " " 21 WHITESPACE@[12; 13) " "
22 BLOCK@[13; 23) 22 BLOCK_EXPR@[13; 23)
23 L_CURLY@[13; 14) "{" 23 BLOCK@[13; 23)
24 WHITESPACE@[14; 19) "\n " 24 L_CURLY@[13; 14) "{"
25 FIELD_EXPR@[19; 21) 25 WHITESPACE@[14; 19) "\n "
26 PATH_EXPR@[19; 20) 26 FIELD_EXPR@[19; 21)
27 PATH@[19; 20) 27 PATH_EXPR@[19; 20)
28 PATH_SEGMENT@[19; 20) 28 PATH@[19; 20)
29 NAME_REF@[19; 20) 29 PATH_SEGMENT@[19; 20)
30 IDENT@[19; 20) "a" 30 NAME_REF@[19; 20)
31 DOT@[20; 21) "." 31 IDENT@[19; 20) "a"
32 WHITESPACE@[21; 22) "\n" 32 DOT@[20; 21) "."
33 R_CURLY@[22; 23) "}" 33 WHITESPACE@[21; 22) "\n"
34 R_CURLY@[22; 23) "}"
34 WHITESPACE@[23; 24) "\n" 35 WHITESPACE@[23; 24) "\n"
35error 21: expected field name or number 36error 21: expected field name or number
diff --git a/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.txt b/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.txt
index c205cf147..f67325b76 100644
--- a/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.txt
+++ b/crates/ra_syntax/test_data/parser/err/0031_block_inner_attrs.txt
@@ -8,105 +8,108 @@ SOURCE_FILE@[0; 350)
8 L_PAREN@[8; 9) "(" 8 L_PAREN@[8; 9) "("
9 R_PAREN@[9; 10) ")" 9 R_PAREN@[9; 10) ")"
10 WHITESPACE@[10; 11) " " 10 WHITESPACE@[10; 11) " "
11 BLOCK@[11; 349) 11 BLOCK_EXPR@[11; 349)
12 L_CURLY@[11; 12) "{" 12 BLOCK@[11; 349)
13 WHITESPACE@[12; 17) "\n " 13 L_CURLY@[11; 12) "{"
14 LET_STMT@[17; 129) 14 WHITESPACE@[12; 17) "\n "
15 LET_KW@[17; 20) "let" 15 LET_STMT@[17; 129)
16 WHITESPACE@[20; 21) " " 16 LET_KW@[17; 20) "let"
17 BIND_PAT@[21; 26) 17 WHITESPACE@[20; 21) " "
18 NAME@[21; 26) 18 BIND_PAT@[21; 26)
19 IDENT@[21; 26) "inner" 19 NAME@[21; 26)
20 WHITESPACE@[26; 27) " " 20 IDENT@[21; 26) "inner"
21 EQ@[27; 28) "=" 21 WHITESPACE@[26; 27) " "
22 WHITESPACE@[28; 29) " " 22 EQ@[27; 28) "="
23 BLOCK_EXPR@[29; 128) 23 WHITESPACE@[28; 29) " "
24 BLOCK@[29; 128) 24 BLOCK_EXPR@[29; 128)
25 L_CURLY@[29; 30) "{" 25 BLOCK@[29; 128)
26 WHITESPACE@[30; 39) "\n " 26 L_CURLY@[29; 30) "{"
27 ATTR@[39; 83) 27 WHITESPACE@[30; 39) "\n "
28 POUND@[39; 40) "#" 28 ATTR@[39; 83)
29 EXCL@[40; 41) "!" 29 POUND@[39; 40) "#"
30 TOKEN_TREE@[41; 83) 30 EXCL@[40; 41) "!"
31 L_BRACK@[41; 42) "[" 31 TOKEN_TREE@[41; 83)
32 IDENT@[42; 45) "doc" 32 L_BRACK@[41; 42) "["
33 TOKEN_TREE@[45; 82) 33 IDENT@[42; 45) "doc"
34 L_PAREN@[45; 46) "(" 34 TOKEN_TREE@[45; 82)
35 STRING@[46; 81) "\"Inner attributes not ..." 35 L_PAREN@[45; 46) "("
36 R_PAREN@[81; 82) ")" 36 STRING@[46; 81) "\"Inner attributes not ..."
37 R_BRACK@[82; 83) "]" 37 R_PAREN@[81; 82) ")"
38 WHITESPACE@[83; 92) "\n " 38 R_BRACK@[82; 83) "]"
39 COMMENT@[92; 122) "//! Nor are ModuleDoc ..." 39 WHITESPACE@[83; 92) "\n "
40 WHITESPACE@[122; 127) "\n " 40 COMMENT@[92; 122) "//! Nor are ModuleDoc ..."
41 R_CURLY@[127; 128) "}" 41 WHITESPACE@[122; 127) "\n "
42 SEMI@[128; 129) ";" 42 R_CURLY@[127; 128) "}"
43 WHITESPACE@[129; 134) "\n " 43 SEMI@[128; 129) ";"
44 EXPR_STMT@[134; 257) 44 WHITESPACE@[129; 134) "\n "
45 IF_EXPR@[134; 257) 45 EXPR_STMT@[134; 257)
46 IF_KW@[134; 136) "if" 46 IF_EXPR@[134; 257)
47 WHITESPACE@[136; 137) " " 47 IF_KW@[134; 136) "if"
48 CONDITION@[137; 141) 48 WHITESPACE@[136; 137) " "
49 LITERAL@[137; 141) 49 CONDITION@[137; 141)
50 TRUE_KW@[137; 141) "true" 50 LITERAL@[137; 141)
51 WHITESPACE@[141; 142) " " 51 TRUE_KW@[137; 141) "true"
52 BLOCK@[142; 257) 52 WHITESPACE@[141; 142) " "
53 L_CURLY@[142; 143) "{" 53 BLOCK_EXPR@[142; 257)
54 WHITESPACE@[143; 152) "\n " 54 BLOCK@[142; 257)
55 ATTR@[152; 171) 55 L_CURLY@[142; 143) "{"
56 POUND@[152; 153) "#" 56 WHITESPACE@[143; 152) "\n "
57 EXCL@[153; 154) "!" 57 ATTR@[152; 171)
58 TOKEN_TREE@[154; 171) 58 POUND@[152; 153) "#"
59 L_BRACK@[154; 155) "[" 59 EXCL@[153; 154) "!"
60 IDENT@[155; 158) "doc" 60 TOKEN_TREE@[154; 171)
61 TOKEN_TREE@[158; 170) 61 L_BRACK@[154; 155) "["
62 L_PAREN@[158; 159) "(" 62 IDENT@[155; 158) "doc"
63 STRING@[159; 169) "\"Nor here\"" 63 TOKEN_TREE@[158; 170)
64 R_PAREN@[169; 170) ")" 64 L_PAREN@[158; 159) "("
65 R_BRACK@[170; 171) "]" 65 STRING@[159; 169) "\"Nor here\""
66 WHITESPACE@[171; 180) "\n " 66 R_PAREN@[169; 170) ")"
67 ATTR@[180; 212) 67 R_BRACK@[170; 171) "]"
68 POUND@[180; 181) "#" 68 WHITESPACE@[171; 180) "\n "
69 EXCL@[181; 182) "!" 69 ATTR@[180; 212)
70 TOKEN_TREE@[182; 212) 70 POUND@[180; 181) "#"
71 L_BRACK@[182; 183) "[" 71 EXCL@[181; 182) "!"
72 IDENT@[183; 186) "doc" 72 TOKEN_TREE@[182; 212)
73 TOKEN_TREE@[186; 211) 73 L_BRACK@[182; 183) "["
74 L_PAREN@[186; 187) "(" 74 IDENT@[183; 186) "doc"
75 STRING@[187; 210) "\"We error on each attr\"" 75 TOKEN_TREE@[186; 211)
76 R_PAREN@[210; 211) ")" 76 L_PAREN@[186; 187) "("
77 R_BRACK@[211; 212) "]" 77 STRING@[187; 210) "\"We error on each attr\""
78 WHITESPACE@[212; 221) "\n " 78 R_PAREN@[210; 211) ")"
79 COMMENT@[221; 251) "//! Nor are ModuleDoc ..." 79 R_BRACK@[211; 212) "]"
80 WHITESPACE@[251; 256) "\n " 80 WHITESPACE@[212; 221) "\n "
81 R_CURLY@[256; 257) "}" 81 COMMENT@[221; 251) "//! Nor are ModuleDoc ..."
82 WHITESPACE@[257; 262) "\n " 82 WHITESPACE@[251; 256) "\n "
83 WHILE_EXPR@[262; 347) 83 R_CURLY@[256; 257) "}"
84 WHILE_KW@[262; 267) "while" 84 WHITESPACE@[257; 262) "\n "
85 WHITESPACE@[267; 268) " " 85 WHILE_EXPR@[262; 347)
86 CONDITION@[268; 272) 86 WHILE_KW@[262; 267) "while"
87 LITERAL@[268; 272) 87 WHITESPACE@[267; 268) " "
88 TRUE_KW@[268; 272) "true" 88 CONDITION@[268; 272)
89 WHITESPACE@[272; 273) " " 89 LITERAL@[268; 272)
90 BLOCK@[273; 347) 90 TRUE_KW@[268; 272) "true"
91 L_CURLY@[273; 274) "{" 91 WHITESPACE@[272; 273) " "
92 WHITESPACE@[274; 283) "\n " 92 BLOCK_EXPR@[273; 347)
93 ATTR@[283; 302) 93 BLOCK@[273; 347)
94 POUND@[283; 284) "#" 94 L_CURLY@[273; 274) "{"
95 EXCL@[284; 285) "!" 95 WHITESPACE@[274; 283) "\n "
96 TOKEN_TREE@[285; 302) 96 ATTR@[283; 302)
97 L_BRACK@[285; 286) "[" 97 POUND@[283; 284) "#"
98 IDENT@[286; 289) "doc" 98 EXCL@[284; 285) "!"
99 TOKEN_TREE@[289; 301) 99 TOKEN_TREE@[285; 302)
100 L_PAREN@[289; 290) "(" 100 L_BRACK@[285; 286) "["
101 STRING@[290; 300) "\"Nor here\"" 101 IDENT@[286; 289) "doc"
102 R_PAREN@[300; 301) ")" 102 TOKEN_TREE@[289; 301)
103 R_BRACK@[301; 302) "]" 103 L_PAREN@[289; 290) "("
104 WHITESPACE@[302; 311) "\n " 104 STRING@[290; 300) "\"Nor here\""
105 COMMENT@[311; 341) "//! Nor are ModuleDoc ..." 105 R_PAREN@[300; 301) ")"
106 WHITESPACE@[341; 346) "\n " 106 R_BRACK@[301; 302) "]"
107 R_CURLY@[346; 347) "}" 107 WHITESPACE@[302; 311) "\n "
108 WHITESPACE@[347; 348) "\n" 108 COMMENT@[311; 341) "//! Nor are ModuleDoc ..."
109 R_CURLY@[348; 349) "}" 109 WHITESPACE@[341; 346) "\n "
110 R_CURLY@[346; 347) "}"
111 WHITESPACE@[347; 348) "\n"
112 R_CURLY@[348; 349) "}"
110 WHITESPACE@[349; 350) "\n" 113 WHITESPACE@[349; 350) "\n"
111error [39; 83): A block in this position cannot accept inner attributes 114error [39; 83): A block in this position cannot accept inner attributes
112error [152; 171): A block in this position cannot accept inner attributes 115error [152; 171): A block in this position cannot accept inner attributes
diff --git a/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.txt b/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.txt
index 4e8c4143b..1344fcbc2 100644
--- a/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.txt
+++ b/crates/ra_syntax/test_data/parser/err/0032_match_arms_inner_attrs.txt
@@ -8,185 +8,186 @@ SOURCE_FILE@[0; 293)
8 L_PAREN@[6; 7) "(" 8 L_PAREN@[6; 7) "("
9 R_PAREN@[7; 8) ")" 9 R_PAREN@[7; 8) ")"
10 WHITESPACE@[8; 9) " " 10 WHITESPACE@[8; 9) " "
11 BLOCK@[9; 292) 11 BLOCK_EXPR@[9; 292)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 292)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 101) 14 WHITESPACE@[10; 15) "\n "
15 MATCH_EXPR@[15; 101) 15 EXPR_STMT@[15; 101)
16 MATCH_KW@[15; 20) "match" 16 MATCH_EXPR@[15; 101)
17 WHITESPACE@[20; 21) " " 17 MATCH_KW@[15; 20) "match"
18 TUPLE_EXPR@[21; 23) 18 WHITESPACE@[20; 21) " "
19 L_PAREN@[21; 22) "(" 19 TUPLE_EXPR@[21; 23)
20 R_PAREN@[22; 23) ")" 20 L_PAREN@[21; 22) "("
21 WHITESPACE@[23; 24) " " 21 R_PAREN@[22; 23) ")"
22 MATCH_ARM_LIST@[24; 101) 22 WHITESPACE@[23; 24) " "
23 L_CURLY@[24; 25) "{" 23 MATCH_ARM_LIST@[24; 101)
24 WHITESPACE@[25; 34) "\n " 24 L_CURLY@[24; 25) "{"
25 MATCH_ARM@[34; 41) 25 WHITESPACE@[25; 34) "\n "
26 PLACEHOLDER_PAT@[34; 35) 26 MATCH_ARM@[34; 41)
27 UNDERSCORE@[34; 35) "_" 27 PLACEHOLDER_PAT@[34; 35)
28 WHITESPACE@[35; 36) " " 28 UNDERSCORE@[34; 35) "_"
29 FAT_ARROW@[36; 38) "=>" 29 WHITESPACE@[35; 36) " "
30 WHITESPACE@[38; 39) " " 30 FAT_ARROW@[36; 38) "=>"
31 TUPLE_EXPR@[39; 41) 31 WHITESPACE@[38; 39) " "
32 L_PAREN@[39; 40) "(" 32 TUPLE_EXPR@[39; 41)
33 R_PAREN@[40; 41) ")" 33 L_PAREN@[39; 40) "("
34 COMMA@[41; 42) "," 34 R_PAREN@[40; 41) ")"
35 WHITESPACE@[42; 51) "\n " 35 COMMA@[41; 42) ","
36 MATCH_ARM@[51; 78) 36 WHITESPACE@[42; 51) "\n "
37 ATTR@[51; 52) 37 MATCH_ARM@[51; 78)
38 POUND@[51; 52) "#" 38 ATTR@[51; 52)
39 ERROR@[52; 53) 39 POUND@[51; 52) "#"
40 EXCL@[52; 53) "!" 40 ERROR@[52; 53)
41 ARRAY_EXPR@[53; 78) 41 EXCL@[52; 53) "!"
42 L_BRACK@[53; 54) "[" 42 ARRAY_EXPR@[53; 78)
43 CALL_EXPR@[54; 77) 43 L_BRACK@[53; 54) "["
44 PATH_EXPR@[54; 57) 44 CALL_EXPR@[54; 77)
45 PATH@[54; 57) 45 PATH_EXPR@[54; 57)
46 PATH_SEGMENT@[54; 57) 46 PATH@[54; 57)
47 NAME_REF@[54; 57) 47 PATH_SEGMENT@[54; 57)
48 IDENT@[54; 57) "doc" 48 NAME_REF@[54; 57)
49 ARG_LIST@[57; 77) 49 IDENT@[54; 57) "doc"
50 L_PAREN@[57; 58) "(" 50 ARG_LIST@[57; 77)
51 LITERAL@[58; 76) 51 L_PAREN@[57; 58) "("
52 STRING@[58; 76) "\"Not allowed here\"" 52 LITERAL@[58; 76)
53 R_PAREN@[76; 77) ")" 53 STRING@[58; 76) "\"Not allowed here\""
54 R_BRACK@[77; 78) "]" 54 R_PAREN@[76; 77) ")"
55 WHITESPACE@[78; 87) "\n " 55 R_BRACK@[77; 78) "]"
56 MATCH_ARM@[87; 94) 56 WHITESPACE@[78; 87) "\n "
57 PLACEHOLDER_PAT@[87; 88) 57 MATCH_ARM@[87; 94)
58 UNDERSCORE@[87; 88) "_" 58 PLACEHOLDER_PAT@[87; 88)
59 WHITESPACE@[88; 89) " " 59 UNDERSCORE@[87; 88) "_"
60 FAT_ARROW@[89; 91) "=>" 60 WHITESPACE@[88; 89) " "
61 WHITESPACE@[91; 92) " " 61 FAT_ARROW@[89; 91) "=>"
62 TUPLE_EXPR@[92; 94) 62 WHITESPACE@[91; 92) " "
63 L_PAREN@[92; 93) "(" 63 TUPLE_EXPR@[92; 94)
64 R_PAREN@[93; 94) ")" 64 L_PAREN@[92; 93) "("
65 COMMA@[94; 95) "," 65 R_PAREN@[93; 94) ")"
66 WHITESPACE@[95; 100) "\n " 66 COMMA@[94; 95) ","
67 R_CURLY@[100; 101) "}" 67 WHITESPACE@[95; 100) "\n "
68 WHITESPACE@[101; 107) "\n\n " 68 R_CURLY@[100; 101) "}"
69 EXPR_STMT@[107; 185) 69 WHITESPACE@[101; 107) "\n\n "
70 MATCH_EXPR@[107; 185) 70 EXPR_STMT@[107; 185)
71 MATCH_KW@[107; 112) "match" 71 MATCH_EXPR@[107; 185)
72 WHITESPACE@[112; 113) " " 72 MATCH_KW@[107; 112) "match"
73 TUPLE_EXPR@[113; 115) 73 WHITESPACE@[112; 113) " "
74 L_PAREN@[113; 114) "(" 74 TUPLE_EXPR@[113; 115)
75 R_PAREN@[114; 115) ")" 75 L_PAREN@[113; 114) "("
76 WHITESPACE@[115; 116) " " 76 R_PAREN@[114; 115) ")"
77 MATCH_ARM_LIST@[116; 185) 77 WHITESPACE@[115; 116) " "
78 L_CURLY@[116; 117) "{" 78 MATCH_ARM_LIST@[116; 185)
79 WHITESPACE@[117; 126) "\n " 79 L_CURLY@[116; 117) "{"
80 MATCH_ARM@[126; 133) 80 WHITESPACE@[117; 126) "\n "
81 PLACEHOLDER_PAT@[126; 127) 81 MATCH_ARM@[126; 133)
82 UNDERSCORE@[126; 127) "_" 82 PLACEHOLDER_PAT@[126; 127)
83 WHITESPACE@[127; 128) " " 83 UNDERSCORE@[126; 127) "_"
84 FAT_ARROW@[128; 130) "=>" 84 WHITESPACE@[127; 128) " "
85 WHITESPACE@[130; 131) " " 85 FAT_ARROW@[128; 130) "=>"
86 TUPLE_EXPR@[131; 133) 86 WHITESPACE@[130; 131) " "
87 L_PAREN@[131; 132) "(" 87 TUPLE_EXPR@[131; 133)
88 R_PAREN@[132; 133) ")" 88 L_PAREN@[131; 132) "("
89 COMMA@[133; 134) "," 89 R_PAREN@[132; 133) ")"
90 WHITESPACE@[134; 143) "\n " 90 COMMA@[133; 134) ","
91 MATCH_ARM@[143; 150) 91 WHITESPACE@[134; 143) "\n "
92 PLACEHOLDER_PAT@[143; 144) 92 MATCH_ARM@[143; 150)
93 UNDERSCORE@[143; 144) "_" 93 PLACEHOLDER_PAT@[143; 144)
94 WHITESPACE@[144; 145) " " 94 UNDERSCORE@[143; 144) "_"
95 FAT_ARROW@[145; 147) "=>" 95 WHITESPACE@[144; 145) " "
96 WHITESPACE@[147; 148) " " 96 FAT_ARROW@[145; 147) "=>"
97 TUPLE_EXPR@[148; 150) 97 WHITESPACE@[147; 148) " "
98 L_PAREN@[148; 149) "(" 98 TUPLE_EXPR@[148; 150)
99 R_PAREN@[149; 150) ")" 99 L_PAREN@[148; 149) "("
100 COMMA@[150; 151) "," 100 R_PAREN@[149; 150) ")"
101 WHITESPACE@[151; 160) "\n " 101 COMMA@[150; 151) ","
102 MATCH_ARM@[160; 179) 102 WHITESPACE@[151; 160) "\n "
103 ATTR@[160; 161) 103 MATCH_ARM@[160; 179)
104 POUND@[160; 161) "#" 104 ATTR@[160; 161)
105 ERROR@[161; 162) 105 POUND@[160; 161) "#"
106 EXCL@[161; 162) "!" 106 ERROR@[161; 162)
107 ARRAY_EXPR@[162; 179) 107 EXCL@[161; 162) "!"
108 L_BRACK@[162; 163) "[" 108 ARRAY_EXPR@[162; 179)
109 CALL_EXPR@[163; 178) 109 L_BRACK@[162; 163) "["
110 PATH_EXPR@[163; 166) 110 CALL_EXPR@[163; 178)
111 PATH@[163; 166) 111 PATH_EXPR@[163; 166)
112 PATH_SEGMENT@[163; 166) 112 PATH@[163; 166)
113 NAME_REF@[163; 166) 113 PATH_SEGMENT@[163; 166)
114 IDENT@[163; 166) "doc" 114 NAME_REF@[163; 166)
115 ARG_LIST@[166; 178) 115 IDENT@[163; 166) "doc"
116 L_PAREN@[166; 167) "(" 116 ARG_LIST@[166; 178)
117 LITERAL@[167; 177) 117 L_PAREN@[166; 167) "("
118 STRING@[167; 177) "\"Nor here\"" 118 LITERAL@[167; 177)
119 R_PAREN@[177; 178) ")" 119 STRING@[167; 177) "\"Nor here\""
120 R_BRACK@[178; 179) "]" 120 R_PAREN@[177; 178) ")"
121 WHITESPACE@[179; 184) "\n " 121 R_BRACK@[178; 179) "]"
122 R_CURLY@[184; 185) "}" 122 WHITESPACE@[179; 184) "\n "
123 WHITESPACE@[185; 191) "\n\n " 123 R_CURLY@[184; 185) "}"
124 MATCH_EXPR@[191; 290) 124 WHITESPACE@[185; 191) "\n\n "
125 MATCH_KW@[191; 196) "match" 125 MATCH_EXPR@[191; 290)
126 WHITESPACE@[196; 197) " " 126 MATCH_KW@[191; 196) "match"
127 TUPLE_EXPR@[197; 199) 127 WHITESPACE@[196; 197) " "
128 L_PAREN@[197; 198) "(" 128 TUPLE_EXPR@[197; 199)
129 R_PAREN@[198; 199) ")" 129 L_PAREN@[197; 198) "("
130 WHITESPACE@[199; 200) " " 130 R_PAREN@[198; 199) ")"
131 MATCH_ARM_LIST@[200; 290) 131 WHITESPACE@[199; 200) " "
132 L_CURLY@[200; 201) "{" 132 MATCH_ARM_LIST@[200; 290)
133 WHITESPACE@[201; 210) "\n " 133 L_CURLY@[200; 201) "{"
134 MATCH_ARM@[210; 250) 134 WHITESPACE@[201; 210) "\n "
135 ATTR@[210; 222) 135 MATCH_ARM@[210; 250)
136 POUND@[210; 211) "#" 136 ATTR@[210; 222)
137 TOKEN_TREE@[211; 222) 137 POUND@[210; 211) "#"
138 L_BRACK@[211; 212) "[" 138 TOKEN_TREE@[211; 222)
139 IDENT@[212; 215) "cfg" 139 L_BRACK@[211; 212) "["
140 TOKEN_TREE@[215; 221) 140 IDENT@[212; 215) "cfg"
141 L_PAREN@[215; 216) "(" 141 TOKEN_TREE@[215; 221)
142 IDENT@[216; 220) "test" 142 L_PAREN@[215; 216) "("
143 R_PAREN@[220; 221) ")" 143 IDENT@[216; 220) "test"
144 R_BRACK@[221; 222) "]" 144 R_PAREN@[220; 221) ")"
145 WHITESPACE@[222; 231) "\n " 145 R_BRACK@[221; 222) "]"
146 ATTR@[231; 232) 146 WHITESPACE@[222; 231) "\n "
147 POUND@[231; 232) "#" 147 ATTR@[231; 232)
148 ERROR@[232; 233) 148 POUND@[231; 232) "#"
149 EXCL@[232; 233) "!" 149 ERROR@[232; 233)
150 ARRAY_EXPR@[233; 250) 150 EXCL@[232; 233) "!"
151 L_BRACK@[233; 234) "[" 151 ARRAY_EXPR@[233; 250)
152 CALL_EXPR@[234; 249) 152 L_BRACK@[233; 234) "["
153 PATH_EXPR@[234; 237) 153 CALL_EXPR@[234; 249)
154 PATH@[234; 237) 154 PATH_EXPR@[234; 237)
155 PATH_SEGMENT@[234; 237) 155 PATH@[234; 237)
156 NAME_REF@[234; 237) 156 PATH_SEGMENT@[234; 237)
157 IDENT@[234; 237) "doc" 157 NAME_REF@[234; 237)
158 ARG_LIST@[237; 249) 158 IDENT@[234; 237) "doc"
159 L_PAREN@[237; 238) "(" 159 ARG_LIST@[237; 249)
160 LITERAL@[238; 248) 160 L_PAREN@[237; 238) "("
161 STRING@[238; 248) "\"Nor here\"" 161 LITERAL@[238; 248)
162 R_PAREN@[248; 249) ")" 162 STRING@[238; 248) "\"Nor here\""
163 R_BRACK@[249; 250) "]" 163 R_PAREN@[248; 249) ")"
164 WHITESPACE@[250; 259) "\n " 164 R_BRACK@[249; 250) "]"
165 MATCH_ARM@[259; 266) 165 WHITESPACE@[250; 259) "\n "
166 PLACEHOLDER_PAT@[259; 260) 166 MATCH_ARM@[259; 266)
167 UNDERSCORE@[259; 260) "_" 167 PLACEHOLDER_PAT@[259; 260)
168 WHITESPACE@[260; 261) " " 168 UNDERSCORE@[259; 260) "_"
169 FAT_ARROW@[261; 263) "=>" 169 WHITESPACE@[260; 261) " "
170 WHITESPACE@[263; 264) " " 170 FAT_ARROW@[261; 263) "=>"
171 TUPLE_EXPR@[264; 266) 171 WHITESPACE@[263; 264) " "
172 L_PAREN@[264; 265) "(" 172 TUPLE_EXPR@[264; 266)
173 R_PAREN@[265; 266) ")" 173 L_PAREN@[264; 265) "("
174 COMMA@[266; 267) "," 174 R_PAREN@[265; 266) ")"
175 WHITESPACE@[267; 276) "\n " 175 COMMA@[266; 267) ","
176 MATCH_ARM@[276; 283) 176 WHITESPACE@[267; 276) "\n "
177 PLACEHOLDER_PAT@[276; 277) 177 MATCH_ARM@[276; 283)
178 UNDERSCORE@[276; 277) "_" 178 PLACEHOLDER_PAT@[276; 277)
179 WHITESPACE@[277; 278) " " 179 UNDERSCORE@[276; 277) "_"
180 FAT_ARROW@[278; 280) "=>" 180 WHITESPACE@[277; 278) " "
181 WHITESPACE@[280; 281) " " 181 FAT_ARROW@[278; 280) "=>"
182 TUPLE_EXPR@[281; 283) 182 WHITESPACE@[280; 281) " "
183 L_PAREN@[281; 282) "(" 183 TUPLE_EXPR@[281; 283)
184 R_PAREN@[282; 283) ")" 184 L_PAREN@[281; 282) "("
185 COMMA@[283; 284) "," 185 R_PAREN@[282; 283) ")"
186 WHITESPACE@[284; 289) "\n " 186 COMMA@[283; 284) ","
187 R_CURLY@[289; 290) "}" 187 WHITESPACE@[284; 289) "\n "
188 WHITESPACE@[290; 291) "\n" 188 R_CURLY@[289; 290) "}"
189 R_CURLY@[291; 292) "}" 189 WHITESPACE@[290; 291) "\n"
190 R_CURLY@[291; 292) "}"
190 WHITESPACE@[292; 293) "\n" 191 WHITESPACE@[292; 293) "\n"
191error 52: expected `[` 192error 52: expected `[`
192error 52: expected pattern 193error 52: expected pattern
diff --git a/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.txt b/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.txt
index e4f1f6337..b65cc3de3 100644
--- a/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.txt
+++ b/crates/ra_syntax/test_data/parser/err/0033_match_arms_outer_attrs.txt
@@ -8,56 +8,57 @@ SOURCE_FILE@[0; 89)
8 L_PAREN@[6; 7) "(" 8 L_PAREN@[6; 7) "("
9 R_PAREN@[7; 8) ")" 9 R_PAREN@[7; 8) ")"
10 WHITESPACE@[8; 9) " " 10 WHITESPACE@[8; 9) " "
11 BLOCK@[9; 88) 11 BLOCK_EXPR@[9; 88)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 88)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 MATCH_EXPR@[15; 86) 14 WHITESPACE@[10; 15) "\n "
15 MATCH_KW@[15; 20) "match" 15 MATCH_EXPR@[15; 86)
16 WHITESPACE@[20; 21) " " 16 MATCH_KW@[15; 20) "match"
17 TUPLE_EXPR@[21; 23) 17 WHITESPACE@[20; 21) " "
18 L_PAREN@[21; 22) "(" 18 TUPLE_EXPR@[21; 23)
19 R_PAREN@[22; 23) ")" 19 L_PAREN@[21; 22) "("
20 WHITESPACE@[23; 24) " " 20 R_PAREN@[22; 23) ")"
21 MATCH_ARM_LIST@[24; 86) 21 WHITESPACE@[23; 24) " "
22 L_CURLY@[24; 25) "{" 22 MATCH_ARM_LIST@[24; 86)
23 WHITESPACE@[25; 34) "\n " 23 L_CURLY@[24; 25) "{"
24 MATCH_ARM@[34; 41) 24 WHITESPACE@[25; 34) "\n "
25 PLACEHOLDER_PAT@[34; 35) 25 MATCH_ARM@[34; 41)
26 UNDERSCORE@[34; 35) "_" 26 PLACEHOLDER_PAT@[34; 35)
27 WHITESPACE@[35; 36) " " 27 UNDERSCORE@[34; 35) "_"
28 FAT_ARROW@[36; 38) "=>" 28 WHITESPACE@[35; 36) " "
29 WHITESPACE@[38; 39) " " 29 FAT_ARROW@[36; 38) "=>"
30 TUPLE_EXPR@[39; 41) 30 WHITESPACE@[38; 39) " "
31 L_PAREN@[39; 40) "(" 31 TUPLE_EXPR@[39; 41)
32 R_PAREN@[40; 41) ")" 32 L_PAREN@[39; 40) "("
33 COMMA@[41; 42) "," 33 R_PAREN@[40; 41) ")"
34 WHITESPACE@[42; 51) "\n " 34 COMMA@[41; 42) ","
35 MATCH_ARM@[51; 58) 35 WHITESPACE@[42; 51) "\n "
36 PLACEHOLDER_PAT@[51; 52) 36 MATCH_ARM@[51; 58)
37 UNDERSCORE@[51; 52) "_" 37 PLACEHOLDER_PAT@[51; 52)
38 WHITESPACE@[52; 53) " " 38 UNDERSCORE@[51; 52) "_"
39 FAT_ARROW@[53; 55) "=>" 39 WHITESPACE@[52; 53) " "
40 WHITESPACE@[55; 56) " " 40 FAT_ARROW@[53; 55) "=>"
41 TUPLE_EXPR@[56; 58) 41 WHITESPACE@[55; 56) " "
42 L_PAREN@[56; 57) "(" 42 TUPLE_EXPR@[56; 58)
43 R_PAREN@[57; 58) ")" 43 L_PAREN@[56; 57) "("
44 COMMA@[58; 59) "," 44 R_PAREN@[57; 58) ")"
45 WHITESPACE@[59; 68) "\n " 45 COMMA@[58; 59) ","
46 MATCH_ARM@[68; 80) 46 WHITESPACE@[59; 68) "\n "
47 ATTR@[68; 80) 47 MATCH_ARM@[68; 80)
48 POUND@[68; 69) "#" 48 ATTR@[68; 80)
49 TOKEN_TREE@[69; 80) 49 POUND@[68; 69) "#"
50 L_BRACK@[69; 70) "[" 50 TOKEN_TREE@[69; 80)
51 IDENT@[70; 73) "cfg" 51 L_BRACK@[69; 70) "["
52 TOKEN_TREE@[73; 79) 52 IDENT@[70; 73) "cfg"
53 L_PAREN@[73; 74) "(" 53 TOKEN_TREE@[73; 79)
54 IDENT@[74; 78) "test" 54 L_PAREN@[73; 74) "("
55 R_PAREN@[78; 79) ")" 55 IDENT@[74; 78) "test"
56 R_BRACK@[79; 80) "]" 56 R_PAREN@[78; 79) ")"
57 WHITESPACE@[80; 85) "\n " 57 R_BRACK@[79; 80) "]"
58 R_CURLY@[85; 86) "}" 58 WHITESPACE@[80; 85) "\n "
59 WHITESPACE@[86; 87) "\n" 59 R_CURLY@[85; 86) "}"
60 R_CURLY@[87; 88) "}" 60 WHITESPACE@[86; 87) "\n"
61 R_CURLY@[87; 88) "}"
61 WHITESPACE@[88; 89) "\n" 62 WHITESPACE@[88; 89) "\n"
62error 80: expected pattern 63error 80: expected pattern
63error 80: expected FAT_ARROW 64error 80: expected FAT_ARROW
diff --git a/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.txt b/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.txt
index 0cdca4b55..21269fb02 100644
--- a/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.txt
+++ b/crates/ra_syntax/test_data/parser/err/0034_bad_box_pattern.txt
@@ -8,84 +8,85 @@ SOURCE_FILE@[0; 91)
8 L_PAREN@[7; 8) "(" 8 L_PAREN@[7; 8) "("
9 R_PAREN@[8; 9) ")" 9 R_PAREN@[8; 9) ")"
10 WHITESPACE@[9; 10) " " 10 WHITESPACE@[9; 10) " "
11 BLOCK@[10; 89) 11 BLOCK_EXPR@[10; 89)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 89)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 LET_STMT@[16; 27) 14 WHITESPACE@[11; 16) "\n "
15 LET_KW@[16; 19) "let" 15 LET_STMT@[16; 27)
16 WHITESPACE@[19; 20) " " 16 LET_KW@[16; 19) "let"
17 BIND_PAT@[20; 27) 17 WHITESPACE@[19; 20) " "
18 REF_KW@[20; 23) "ref" 18 BIND_PAT@[20; 27)
19 WHITESPACE@[23; 24) " " 19 REF_KW@[20; 23) "ref"
20 ERROR@[24; 27) 20 WHITESPACE@[23; 24) " "
21 BOX_KW@[24; 27) "box" 21 ERROR@[24; 27)
22 WHITESPACE@[27; 28) " " 22 BOX_KW@[24; 27) "box"
23 EXPR_STMT@[28; 35) 23 WHITESPACE@[27; 28) " "
24 BIN_EXPR@[28; 34) 24 EXPR_STMT@[28; 35)
25 PATH_EXPR@[28; 29) 25 BIN_EXPR@[28; 34)
26 PATH@[28; 29) 26 PATH_EXPR@[28; 29)
27 PATH_SEGMENT@[28; 29) 27 PATH@[28; 29)
28 NAME_REF@[28; 29) 28 PATH_SEGMENT@[28; 29)
29 IDENT@[28; 29) "i" 29 NAME_REF@[28; 29)
30 WHITESPACE@[29; 30) " " 30 IDENT@[28; 29) "i"
31 EQ@[30; 31) "=" 31 WHITESPACE@[29; 30) " "
32 WHITESPACE@[31; 32) " " 32 EQ@[30; 31) "="
33 TUPLE_EXPR@[32; 34) 33 WHITESPACE@[31; 32) " "
34 L_PAREN@[32; 33) "(" 34 TUPLE_EXPR@[32; 34)
35 R_PAREN@[33; 34) ")" 35 L_PAREN@[32; 33) "("
36 SEMI@[34; 35) ";" 36 R_PAREN@[33; 34) ")"
37 WHITESPACE@[35; 40) "\n " 37 SEMI@[34; 35) ";"
38 LET_STMT@[40; 51) 38 WHITESPACE@[35; 40) "\n "
39 LET_KW@[40; 43) "let" 39 LET_STMT@[40; 51)
40 WHITESPACE@[43; 44) " " 40 LET_KW@[40; 43) "let"
41 BIND_PAT@[44; 51) 41 WHITESPACE@[43; 44) " "
42 MUT_KW@[44; 47) "mut" 42 BIND_PAT@[44; 51)
43 WHITESPACE@[47; 48) " " 43 MUT_KW@[44; 47) "mut"
44 ERROR@[48; 51) 44 WHITESPACE@[47; 48) " "
45 BOX_KW@[48; 51) "box" 45 ERROR@[48; 51)
46 WHITESPACE@[51; 52) " " 46 BOX_KW@[48; 51) "box"
47 EXPR_STMT@[52; 59) 47 WHITESPACE@[51; 52) " "
48 BIN_EXPR@[52; 58) 48 EXPR_STMT@[52; 59)
49 PATH_EXPR@[52; 53) 49 BIN_EXPR@[52; 58)
50 PATH@[52; 53) 50 PATH_EXPR@[52; 53)
51 PATH_SEGMENT@[52; 53) 51 PATH@[52; 53)
52 NAME_REF@[52; 53) 52 PATH_SEGMENT@[52; 53)
53 IDENT@[52; 53) "i" 53 NAME_REF@[52; 53)
54 WHITESPACE@[53; 54) " " 54 IDENT@[52; 53) "i"
55 EQ@[54; 55) "=" 55 WHITESPACE@[53; 54) " "
56 WHITESPACE@[55; 56) " " 56 EQ@[54; 55) "="
57 TUPLE_EXPR@[56; 58) 57 WHITESPACE@[55; 56) " "
58 L_PAREN@[56; 57) "(" 58 TUPLE_EXPR@[56; 58)
59 R_PAREN@[57; 58) ")" 59 L_PAREN@[56; 57) "("
60 SEMI@[58; 59) ";" 60 R_PAREN@[57; 58) ")"
61 WHITESPACE@[59; 64) "\n " 61 SEMI@[58; 59) ";"
62 LET_STMT@[64; 79) 62 WHITESPACE@[59; 64) "\n "
63 LET_KW@[64; 67) "let" 63 LET_STMT@[64; 79)
64 WHITESPACE@[67; 68) " " 64 LET_KW@[64; 67) "let"
65 BIND_PAT@[68; 79) 65 WHITESPACE@[67; 68) " "
66 REF_KW@[68; 71) "ref" 66 BIND_PAT@[68; 79)
67 WHITESPACE@[71; 72) " " 67 REF_KW@[68; 71) "ref"
68 MUT_KW@[72; 75) "mut" 68 WHITESPACE@[71; 72) " "
69 WHITESPACE@[75; 76) " " 69 MUT_KW@[72; 75) "mut"
70 ERROR@[76; 79) 70 WHITESPACE@[75; 76) " "
71 BOX_KW@[76; 79) "box" 71 ERROR@[76; 79)
72 WHITESPACE@[79; 80) " " 72 BOX_KW@[76; 79) "box"
73 EXPR_STMT@[80; 87) 73 WHITESPACE@[79; 80) " "
74 BIN_EXPR@[80; 86) 74 EXPR_STMT@[80; 87)
75 PATH_EXPR@[80; 81) 75 BIN_EXPR@[80; 86)
76 PATH@[80; 81) 76 PATH_EXPR@[80; 81)
77 PATH_SEGMENT@[80; 81) 77 PATH@[80; 81)
78 NAME_REF@[80; 81) 78 PATH_SEGMENT@[80; 81)
79 IDENT@[80; 81) "i" 79 NAME_REF@[80; 81)
80 WHITESPACE@[81; 82) " " 80 IDENT@[80; 81) "i"
81 EQ@[82; 83) "=" 81 WHITESPACE@[81; 82) " "
82 WHITESPACE@[83; 84) " " 82 EQ@[82; 83) "="
83 TUPLE_EXPR@[84; 86) 83 WHITESPACE@[83; 84) " "
84 L_PAREN@[84; 85) "(" 84 TUPLE_EXPR@[84; 86)
85 R_PAREN@[85; 86) ")" 85 L_PAREN@[84; 85) "("
86 SEMI@[86; 87) ";" 86 R_PAREN@[85; 86) ")"
87 WHITESPACE@[87; 88) "\n" 87 SEMI@[86; 87) ";"
88 R_CURLY@[88; 89) "}" 88 WHITESPACE@[87; 88) "\n"
89 R_CURLY@[88; 89) "}"
89 WHITESPACE@[89; 91) "\n\n" 90 WHITESPACE@[89; 91) "\n\n"
90error 24: expected a name 91error 24: expected a name
91error 27: expected SEMI 92error 27: expected SEMI