aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/test_data/parser/inline/ok
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2019-09-02 17:33:21 +0100
committerAleksey Kladov <[email protected]>2019-09-02 18:15:51 +0100
commit470fc4765cd3ccc764d3265034d18766374371aa (patch)
tree8940c7e976106d64f766afbbcb7ddab489ce9485 /crates/ra_syntax/test_data/parser/inline/ok
parent3c2dea7f55830ba2391e5eb8525cdbb43ac666c2 (diff)
update test data
Diffstat (limited to 'crates/ra_syntax/test_data/parser/inline/ok')
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.txt9
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt35
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.txt169
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.txt28
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.txt97
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.txt50
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.txt67
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.txt14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.txt59
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.txt185
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.txt77
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.txt157
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0030_cond.txt365
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.txt113
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.txt86
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.txt69
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.txt35
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.txt9
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.txt273
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.txt36
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.txt14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.txt169
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.txt131
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.txt143
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.txt97
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.txt215
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.txt176
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.txt277
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt83
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.txt67
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.txt35
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt103
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0075_block.txt94
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.txt29
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.txt39
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.txt21
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.txt87
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.txt249
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.txt14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.txt114
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.txt45
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.txt35
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.txt233
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt28
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.txt48
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.txt239
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.txt87
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.txt63
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.txt257
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.txt103
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.txt55
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0109_label.txt110
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.txt59
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.txt233
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.txt93
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.txt73
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.txt127
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.txt249
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.txt9
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.txt41
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.txt69
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.txt155
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.txt87
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.txt14
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.txt51
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.txt181
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.txt42
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.txt157
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.txt104
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.txt117
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.txt109
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.txt7
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.txt60
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.txt197
90 files changed, 3943 insertions, 3803 deletions
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.txt b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.txt
index 18f02bb22..d4e710dd4 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.txt
@@ -50,9 +50,10 @@ SOURCE_FILE@[0; 83)
50 L_PAREN@[56; 57) "(" 50 L_PAREN@[56; 57) "("
51 R_PAREN@[57; 58) ")" 51 R_PAREN@[57; 58) ")"
52 WHITESPACE@[58; 59) " " 52 WHITESPACE@[58; 59) " "
53 BLOCK@[59; 61) 53 BLOCK_EXPR@[59; 61)
54 L_CURLY@[59; 60) "{" 54 BLOCK@[59; 61)
55 R_CURLY@[60; 61) "}" 55 L_CURLY@[59; 60) "{"
56 R_CURLY@[60; 61) "}"
56 WHITESPACE@[61; 66) "\n " 57 WHITESPACE@[61; 66) "\n "
57 FN_DEF@[66; 80) 58 FN_DEF@[66; 80)
58 FN_KW@[66; 68) "fn" 59 FN_KW@[66; 68) "fn"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.txt b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.txt
index 8a21ee968..e3f5a7f04 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.txt
@@ -54,8 +54,9 @@ SOURCE_FILE@[0; 49)
54 IDENT@[40; 43) "str" 54 IDENT@[40; 43) "str"
55 R_PAREN@[43; 44) ")" 55 R_PAREN@[43; 44) ")"
56 WHITESPACE@[44; 45) "\n" 56 WHITESPACE@[44; 45) "\n"
57 BLOCK@[45; 48) 57 BLOCK_EXPR@[45; 48)
58 L_CURLY@[45; 46) "{" 58 BLOCK@[45; 48)
59 WHITESPACE@[46; 47) " " 59 L_CURLY@[45; 46) "{"
60 R_CURLY@[47; 48) "}" 60 WHITESPACE@[46; 47) " "
61 R_CURLY@[47; 48) "}"
61 WHITESPACE@[48; 49) "\n" 62 WHITESPACE@[48; 49) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.txt b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.txt
index c1a70d566..8ae7909f9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.txt
@@ -31,7 +31,8 @@ SOURCE_FILE@[0; 28)
31 PARAM_LIST@[23; 25) 31 PARAM_LIST@[23; 25)
32 L_PAREN@[23; 24) "(" 32 L_PAREN@[23; 24) "("
33 R_PAREN@[24; 25) ")" 33 R_PAREN@[24; 25) ")"
34 BLOCK@[25; 27) 34 BLOCK_EXPR@[25; 27)
35 L_CURLY@[25; 26) "{" 35 BLOCK@[25; 27)
36 R_CURLY@[26; 27) "}" 36 L_CURLY@[25; 26) "{"
37 R_CURLY@[26; 27) "}"
37 WHITESPACE@[27; 28) "\n" 38 WHITESPACE@[27; 28) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt
index 8e210a6ca..0ccd12b0a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.txt
@@ -22,9 +22,10 @@ SOURCE_FILE@[0; 128)
22 SELF_KW@[18; 22) "self" 22 SELF_KW@[18; 22) "self"
23 R_PAREN@[22; 23) ")" 23 R_PAREN@[22; 23) ")"
24 WHITESPACE@[23; 24) " " 24 WHITESPACE@[23; 24) " "
25 BLOCK@[24; 26) 25 BLOCK_EXPR@[24; 26)
26 L_CURLY@[24; 25) "{" 26 BLOCK@[24; 26)
27 R_CURLY@[25; 26) "}" 27 L_CURLY@[24; 25) "{"
28 R_CURLY@[25; 26) "}"
28 WHITESPACE@[26; 31) "\n " 29 WHITESPACE@[26; 31) "\n "
29 FN_DEF@[31; 46) 30 FN_DEF@[31; 46)
30 FN_KW@[31; 33) "fn" 31 FN_KW@[31; 33) "fn"
@@ -39,9 +40,10 @@ SOURCE_FILE@[0; 128)
39 COMMA@[41; 42) "," 40 COMMA@[41; 42) ","
40 R_PAREN@[42; 43) ")" 41 R_PAREN@[42; 43) ")"
41 WHITESPACE@[43; 44) " " 42 WHITESPACE@[43; 44) " "
42 BLOCK@[44; 46) 43 BLOCK_EXPR@[44; 46)
43 L_CURLY@[44; 45) "{" 44 BLOCK@[44; 46)
44 R_CURLY@[45; 46) "}" 45 L_CURLY@[44; 45) "{"
46 R_CURLY@[45; 46) "}"
45 WHITESPACE@[46; 51) "\n " 47 WHITESPACE@[46; 51) "\n "
46 FN_DEF@[51; 69) 48 FN_DEF@[51; 69)
47 FN_KW@[51; 53) "fn" 49 FN_KW@[51; 53) "fn"
@@ -58,9 +60,10 @@ SOURCE_FILE@[0; 128)
58 COMMA@[64; 65) "," 60 COMMA@[64; 65) ","
59 R_PAREN@[65; 66) ")" 61 R_PAREN@[65; 66) ")"
60 WHITESPACE@[66; 67) " " 62 WHITESPACE@[66; 67) " "
61 BLOCK@[67; 69) 63 BLOCK_EXPR@[67; 69)
62 L_CURLY@[67; 68) "{" 64 BLOCK@[67; 69)
63 R_CURLY@[68; 69) "}" 65 L_CURLY@[67; 68) "{"
66 R_CURLY@[68; 69) "}"
64 WHITESPACE@[69; 74) "\n " 67 WHITESPACE@[69; 74) "\n "
65 FN_DEF@[74; 103) 68 FN_DEF@[74; 103)
66 FN_KW@[74; 76) "fn" 69 FN_KW@[74; 76) "fn"
@@ -91,9 +94,10 @@ SOURCE_FILE@[0; 128)
91 IDENT@[96; 99) "i32" 94 IDENT@[96; 99) "i32"
92 R_PAREN@[99; 100) ")" 95 R_PAREN@[99; 100) ")"
93 WHITESPACE@[100; 101) " " 96 WHITESPACE@[100; 101) " "
94 BLOCK@[101; 103) 97 BLOCK_EXPR@[101; 103)
95 L_CURLY@[101; 102) "{" 98 BLOCK@[101; 103)
96 R_CURLY@[102; 103) "}" 99 L_CURLY@[101; 102) "{"
100 R_CURLY@[102; 103) "}"
97 WHITESPACE@[103; 108) "\n " 101 WHITESPACE@[103; 108) "\n "
98 FN_DEF@[108; 125) 102 FN_DEF@[108; 125)
99 FN_KW@[108; 110) "fn" 103 FN_KW@[108; 110) "fn"
@@ -108,9 +112,10 @@ SOURCE_FILE@[0; 128)
108 SELF_KW@[117; 121) "self" 112 SELF_KW@[117; 121) "self"
109 R_PAREN@[121; 122) ")" 113 R_PAREN@[121; 122) ")"
110 WHITESPACE@[122; 123) " " 114 WHITESPACE@[122; 123) " "
111 BLOCK@[123; 125) 115 BLOCK_EXPR@[123; 125)
112 L_CURLY@[123; 124) "{" 116 BLOCK@[123; 125)
113 R_CURLY@[124; 125) "}" 117 L_CURLY@[123; 124) "{"
118 R_CURLY@[124; 125) "}"
114 WHITESPACE@[125; 126) "\n" 119 WHITESPACE@[125; 126) "\n"
115 R_CURLY@[126; 127) "}" 120 R_CURLY@[126; 127) "}"
116 WHITESPACE@[127; 128) "\n" 121 WHITESPACE@[127; 128) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.txt b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.txt
index 4108762e5..80bb7733c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.txt
@@ -8,88 +8,89 @@ SOURCE_FILE@[0; 103)
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; 102) 11 BLOCK_EXPR@[9; 102)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 102)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 33) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 33)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 PATH_PAT@[19; 27) 17 WHITESPACE@[18; 19) " "
18 PATH@[19; 27) 18 PATH_PAT@[19; 27)
19 PATH@[19; 22) 19 PATH@[19; 27)
20 PATH_SEGMENT@[19; 22) 20 PATH@[19; 22)
21 NAME_REF@[19; 22) 21 PATH_SEGMENT@[19; 22)
22 IDENT@[19; 22) "foo" 22 NAME_REF@[19; 22)
23 COLONCOLON@[22; 24) "::" 23 IDENT@[19; 22) "foo"
24 PATH_SEGMENT@[24; 27) 24 COLONCOLON@[22; 24) "::"
25 NAME_REF@[24; 27) 25 PATH_SEGMENT@[24; 27)
26 IDENT@[24; 27) "Bar" 26 NAME_REF@[24; 27)
27 WHITESPACE@[27; 28) " " 27 IDENT@[24; 27) "Bar"
28 EQ@[28; 29) "=" 28 WHITESPACE@[27; 28) " "
29 WHITESPACE@[29; 30) " " 29 EQ@[28; 29) "="
30 TUPLE_EXPR@[30; 32) 30 WHITESPACE@[29; 30) " "
31 L_PAREN@[30; 31) "(" 31 TUPLE_EXPR@[30; 32)
32 R_PAREN@[31; 32) ")" 32 L_PAREN@[30; 31) "("
33 SEMI@[32; 33) ";" 33 R_PAREN@[31; 32) ")"
34 WHITESPACE@[33; 38) "\n " 34 SEMI@[32; 33) ";"
35 LET_STMT@[38; 53) 35 WHITESPACE@[33; 38) "\n "
36 LET_KW@[38; 41) "let" 36 LET_STMT@[38; 53)
37 WHITESPACE@[41; 42) " " 37 LET_KW@[38; 41) "let"
38 PATH_PAT@[42; 47) 38 WHITESPACE@[41; 42) " "
39 PATH@[42; 47) 39 PATH_PAT@[42; 47)
40 PATH_SEGMENT@[42; 47) 40 PATH@[42; 47)
41 COLONCOLON@[42; 44) "::" 41 PATH_SEGMENT@[42; 47)
42 NAME_REF@[44; 47) 42 COLONCOLON@[42; 44) "::"
43 IDENT@[44; 47) "Bar" 43 NAME_REF@[44; 47)
44 WHITESPACE@[47; 48) " " 44 IDENT@[44; 47) "Bar"
45 EQ@[48; 49) "=" 45 WHITESPACE@[47; 48) " "
46 WHITESPACE@[49; 50) " " 46 EQ@[48; 49) "="
47 TUPLE_EXPR@[50; 52) 47 WHITESPACE@[49; 50) " "
48 L_PAREN@[50; 51) "(" 48 TUPLE_EXPR@[50; 52)
49 R_PAREN@[51; 52) ")" 49 L_PAREN@[50; 51) "("
50 SEMI@[52; 53) ";" 50 R_PAREN@[51; 52) ")"
51 WHITESPACE@[53; 58) "\n " 51 SEMI@[52; 53) ";"
52 LET_STMT@[58; 78) 52 WHITESPACE@[53; 58) "\n "
53 LET_KW@[58; 61) "let" 53 LET_STMT@[58; 78)
54 WHITESPACE@[61; 62) " " 54 LET_KW@[58; 61) "let"
55 RECORD_PAT@[62; 72) 55 WHITESPACE@[61; 62) " "
56 PATH@[62; 65) 56 RECORD_PAT@[62; 72)
57 PATH_SEGMENT@[62; 65) 57 PATH@[62; 65)
58 NAME_REF@[62; 65) 58 PATH_SEGMENT@[62; 65)
59 IDENT@[62; 65) "Bar" 59 NAME_REF@[62; 65)
60 WHITESPACE@[65; 66) " " 60 IDENT@[62; 65) "Bar"
61 RECORD_FIELD_PAT_LIST@[66; 72) 61 WHITESPACE@[65; 66) " "
62 L_CURLY@[66; 67) "{" 62 RECORD_FIELD_PAT_LIST@[66; 72)
63 WHITESPACE@[67; 68) " " 63 L_CURLY@[66; 67) "{"
64 DOTDOT@[68; 70) ".." 64 WHITESPACE@[67; 68) " "
65 WHITESPACE@[70; 71) " " 65 DOTDOT@[68; 70) ".."
66 R_CURLY@[71; 72) "}" 66 WHITESPACE@[70; 71) " "
67 WHITESPACE@[72; 73) " " 67 R_CURLY@[71; 72) "}"
68 EQ@[73; 74) "=" 68 WHITESPACE@[72; 73) " "
69 WHITESPACE@[74; 75) " " 69 EQ@[73; 74) "="
70 TUPLE_EXPR@[75; 77) 70 WHITESPACE@[74; 75) " "
71 L_PAREN@[75; 76) "(" 71 TUPLE_EXPR@[75; 77)
72 R_PAREN@[76; 77) ")" 72 L_PAREN@[75; 76) "("
73 SEMI@[77; 78) ";" 73 R_PAREN@[76; 77) ")"
74 WHITESPACE@[78; 83) "\n " 74 SEMI@[77; 78) ";"
75 LET_STMT@[83; 100) 75 WHITESPACE@[78; 83) "\n "
76 LET_KW@[83; 86) "let" 76 LET_STMT@[83; 100)
77 WHITESPACE@[86; 87) " " 77 LET_KW@[83; 86) "let"
78 TUPLE_STRUCT_PAT@[87; 94) 78 WHITESPACE@[86; 87) " "
79 PATH@[87; 90) 79 TUPLE_STRUCT_PAT@[87; 94)
80 PATH_SEGMENT@[87; 90) 80 PATH@[87; 90)
81 NAME_REF@[87; 90) 81 PATH_SEGMENT@[87; 90)
82 IDENT@[87; 90) "Bar" 82 NAME_REF@[87; 90)
83 L_PAREN@[90; 91) "(" 83 IDENT@[87; 90) "Bar"
84 DOTDOT@[91; 93) ".." 84 L_PAREN@[90; 91) "("
85 R_PAREN@[93; 94) ")" 85 DOTDOT@[91; 93) ".."
86 WHITESPACE@[94; 95) " " 86 R_PAREN@[93; 94) ")"
87 EQ@[95; 96) "=" 87 WHITESPACE@[94; 95) " "
88 WHITESPACE@[96; 97) " " 88 EQ@[95; 96) "="
89 TUPLE_EXPR@[97; 99) 89 WHITESPACE@[96; 97) " "
90 L_PAREN@[97; 98) "(" 90 TUPLE_EXPR@[97; 99)
91 R_PAREN@[98; 99) ")" 91 L_PAREN@[97; 98) "("
92 SEMI@[99; 100) ";" 92 R_PAREN@[98; 99) ")"
93 WHITESPACE@[100; 101) "\n" 93 SEMI@[99; 100) ";"
94 R_CURLY@[101; 102) "}" 94 WHITESPACE@[100; 101) "\n"
95 R_CURLY@[101; 102) "}"
95 WHITESPACE@[102; 103) "\n" 96 WHITESPACE@[102; 103) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.txt
index 8240aba15..2d8872022 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.txt
@@ -8,17 +8,19 @@ SOURCE_FILE@[0; 26)
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; 25) 11 BLOCK_EXPR@[9; 25)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 25)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 23) 14 WHITESPACE@[10; 15) "\n "
15 LOOP_EXPR@[15; 22) 15 EXPR_STMT@[15; 23)
16 LOOP_KW@[15; 19) "loop" 16 LOOP_EXPR@[15; 22)
17 WHITESPACE@[19; 20) " " 17 LOOP_KW@[15; 19) "loop"
18 BLOCK@[20; 22) 18 WHITESPACE@[19; 20) " "
19 L_CURLY@[20; 21) "{" 19 BLOCK_EXPR@[20; 22)
20 R_CURLY@[21; 22) "}" 20 BLOCK@[20; 22)
21 SEMI@[22; 23) ";" 21 L_CURLY@[20; 21) "{"
22 WHITESPACE@[23; 24) "\n" 22 R_CURLY@[21; 22) "}"
23 R_CURLY@[24; 25) "}" 23 SEMI@[22; 23) ";"
24 WHITESPACE@[23; 24) "\n"
25 R_CURLY@[24; 25) "}"
24 WHITESPACE@[25; 26) "\n" 26 WHITESPACE@[25; 26) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.txt
index 1d2cf2761..29b268b55 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.txt
@@ -8,52 +8,53 @@ SOURCE_FILE@[0; 48)
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; 47) 11 BLOCK_EXPR@[9; 47)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 47)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 21) 14 WHITESPACE@[10; 15) "\n "
15 FIELD_EXPR@[15; 20) 15 EXPR_STMT@[15; 21)
16 PATH_EXPR@[15; 16) 16 FIELD_EXPR@[15; 20)
17 PATH@[15; 16) 17 PATH_EXPR@[15; 16)
18 PATH_SEGMENT@[15; 16) 18 PATH@[15; 16)
19 NAME_REF@[15; 16) 19 PATH_SEGMENT@[15; 16)
20 IDENT@[15; 16) "x" 20 NAME_REF@[15; 16)
21 DOT@[16; 17) "." 21 IDENT@[15; 16) "x"
22 NAME_REF@[17; 20) 22 DOT@[16; 17) "."
23 IDENT@[17; 20) "foo" 23 NAME_REF@[17; 20)
24 SEMI@[20; 21) ";" 24 IDENT@[17; 20) "foo"
25 WHITESPACE@[21; 26) "\n " 25 SEMI@[20; 21) ";"
26 EXPR_STMT@[26; 34) 26 WHITESPACE@[21; 26) "\n "
27 FIELD_EXPR@[26; 33) 27 EXPR_STMT@[26; 34)
28 FIELD_EXPR@[26; 29) 28 FIELD_EXPR@[26; 33)
29 PATH_EXPR@[26; 27) 29 FIELD_EXPR@[26; 29)
30 PATH@[26; 27) 30 PATH_EXPR@[26; 27)
31 PATH_SEGMENT@[26; 27) 31 PATH@[26; 27)
32 NAME_REF@[26; 27) 32 PATH_SEGMENT@[26; 27)
33 IDENT@[26; 27) "x" 33 NAME_REF@[26; 27)
34 DOT@[27; 28) "." 34 IDENT@[26; 27) "x"
35 NAME_REF@[28; 29) 35 DOT@[27; 28) "."
36 INT_NUMBER@[28; 29) "0" 36 NAME_REF@[28; 29)
37 DOT@[29; 30) "." 37 INT_NUMBER@[28; 29) "0"
38 NAME_REF@[30; 33) 38 DOT@[29; 30) "."
39 IDENT@[30; 33) "bar" 39 NAME_REF@[30; 33)
40 SEMI@[33; 34) ";" 40 IDENT@[30; 33) "bar"
41 WHITESPACE@[34; 39) "\n " 41 SEMI@[33; 34) ";"
42 EXPR_STMT@[39; 45) 42 WHITESPACE@[34; 39) "\n "
43 CALL_EXPR@[39; 44) 43 EXPR_STMT@[39; 45)
44 FIELD_EXPR@[39; 42) 44 CALL_EXPR@[39; 44)
45 PATH_EXPR@[39; 40) 45 FIELD_EXPR@[39; 42)
46 PATH@[39; 40) 46 PATH_EXPR@[39; 40)
47 PATH_SEGMENT@[39; 40) 47 PATH@[39; 40)
48 NAME_REF@[39; 40) 48 PATH_SEGMENT@[39; 40)
49 IDENT@[39; 40) "x" 49 NAME_REF@[39; 40)
50 DOT@[40; 41) "." 50 IDENT@[39; 40) "x"
51 NAME_REF@[41; 42) 51 DOT@[40; 41) "."
52 INT_NUMBER@[41; 42) "0" 52 NAME_REF@[41; 42)
53 ARG_LIST@[42; 44) 53 INT_NUMBER@[41; 42) "0"
54 L_PAREN@[42; 43) "(" 54 ARG_LIST@[42; 44)
55 R_PAREN@[43; 44) ")" 55 L_PAREN@[42; 43) "("
56 SEMI@[44; 45) ";" 56 R_PAREN@[43; 44) ")"
57 WHITESPACE@[45; 46) "\n" 57 SEMI@[44; 45) ";"
58 R_CURLY@[46; 47) "}" 58 WHITESPACE@[45; 46) "\n"
59 R_CURLY@[46; 47) "}"
59 WHITESPACE@[47; 48) "\n" 60 WHITESPACE@[47; 48) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.txt
index e8cc32f2c..c051c1c86 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.txt
@@ -8,28 +8,30 @@ SOURCE_FILE@[0; 69)
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; 68) 11 BLOCK_EXPR@[9; 68)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 68)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LOOP_EXPR@[15; 66) 14 WHITESPACE@[10; 15) "\n "
15 LOOP_KW@[15; 19) "loop" 15 LOOP_EXPR@[15; 66)
16 WHITESPACE@[19; 20) " " 16 LOOP_KW@[15; 19) "loop"
17 BLOCK@[20; 66) 17 WHITESPACE@[19; 20) " "
18 L_CURLY@[20; 21) "{" 18 BLOCK_EXPR@[20; 66)
19 WHITESPACE@[21; 30) "\n " 19 BLOCK@[20; 66)
20 EXPR_STMT@[30; 39) 20 L_CURLY@[20; 21) "{"
21 CONTINUE_EXPR@[30; 38) 21 WHITESPACE@[21; 30) "\n "
22 CONTINUE_KW@[30; 38) "continue" 22 EXPR_STMT@[30; 39)
23 SEMI@[38; 39) ";" 23 CONTINUE_EXPR@[30; 38)
24 WHITESPACE@[39; 48) "\n " 24 CONTINUE_KW@[30; 38) "continue"
25 EXPR_STMT@[48; 60) 25 SEMI@[38; 39) ";"
26 CONTINUE_EXPR@[48; 59) 26 WHITESPACE@[39; 48) "\n "
27 CONTINUE_KW@[48; 56) "continue" 27 EXPR_STMT@[48; 60)
28 WHITESPACE@[56; 57) " " 28 CONTINUE_EXPR@[48; 59)
29 LIFETIME@[57; 59) "\'l" 29 CONTINUE_KW@[48; 56) "continue"
30 SEMI@[59; 60) ";" 30 WHITESPACE@[56; 57) " "
31 WHITESPACE@[60; 65) "\n " 31 LIFETIME@[57; 59) "\'l"
32 R_CURLY@[65; 66) "}" 32 SEMI@[59; 60) ";"
33 WHITESPACE@[66; 67) "\n" 33 WHITESPACE@[60; 65) "\n "
34 R_CURLY@[67; 68) "}" 34 R_CURLY@[65; 66) "}"
35 WHITESPACE@[66; 67) "\n"
36 R_CURLY@[67; 68) "}"
35 WHITESPACE@[68; 69) "\n" 37 WHITESPACE@[68; 69) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt
index 67d0de0f0..d0beeb81e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.txt
@@ -31,9 +31,10 @@ SOURCE_FILE@[0; 69)
31 IDENT@[25; 29) "Self" 31 IDENT@[25; 29) "Self"
32 R_PAREN@[29; 30) ")" 32 R_PAREN@[29; 30) ")"
33 WHITESPACE@[30; 31) " " 33 WHITESPACE@[30; 31) " "
34 BLOCK@[31; 33) 34 BLOCK_EXPR@[31; 33)
35 L_CURLY@[31; 32) "{" 35 BLOCK@[31; 33)
36 R_CURLY@[32; 33) "}" 36 L_CURLY@[31; 32) "{"
37 R_CURLY@[32; 33) "}"
37 WHITESPACE@[33; 38) "\n " 38 WHITESPACE@[33; 38) "\n "
38 FN_DEF@[38; 66) 39 FN_DEF@[38; 66)
39 FN_KW@[38; 40) "fn" 40 FN_KW@[38; 40) "fn"
@@ -64,9 +65,10 @@ SOURCE_FILE@[0; 69)
64 R_ANGLE@[61; 62) ">" 65 R_ANGLE@[61; 62) ">"
65 R_PAREN@[62; 63) ")" 66 R_PAREN@[62; 63) ")"
66 WHITESPACE@[63; 64) " " 67 WHITESPACE@[63; 64) " "
67 BLOCK@[64; 66) 68 BLOCK_EXPR@[64; 66)
68 L_CURLY@[64; 65) "{" 69 BLOCK@[64; 66)
69 R_CURLY@[65; 66) "}" 70 L_CURLY@[64; 65) "{"
71 R_CURLY@[65; 66) "}"
70 WHITESPACE@[66; 67) "\n" 72 WHITESPACE@[66; 67) "\n"
71 R_CURLY@[67; 68) "}" 73 R_CURLY@[67; 68) "}"
72 WHITESPACE@[68; 69) "\n" 74 WHITESPACE@[68; 69) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.txt
index 42032f56c..2d71efd86 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.txt
@@ -8,37 +8,38 @@ SOURCE_FILE@[0; 44)
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; 43) 11 BLOCK_EXPR@[9; 43)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 43)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 20) 14 WHITESPACE@[10; 15) "\n "
15 PREFIX_EXPR@[15; 19) 15 EXPR_STMT@[15; 20)
16 STAR@[15; 16) "*" 16 PREFIX_EXPR@[15; 19)
17 PREFIX_EXPR@[16; 19) 17 STAR@[15; 16) "*"
18 STAR@[16; 17) "*" 18 PREFIX_EXPR@[16; 19)
19 REF_EXPR@[17; 19) 19 STAR@[16; 17) "*"
20 AMP@[17; 18) "&" 20 REF_EXPR@[17; 19)
21 LITERAL@[18; 19) 21 AMP@[17; 18) "&"
22 INT_NUMBER@[18; 19) "1" 22 LITERAL@[18; 19)
23 SEMI@[19; 20) ";" 23 INT_NUMBER@[18; 19) "1"
24 WHITESPACE@[20; 25) "\n " 24 SEMI@[19; 20) ";"
25 EXPR_STMT@[25; 32) 25 WHITESPACE@[20; 25) "\n "
26 PREFIX_EXPR@[25; 31) 26 EXPR_STMT@[25; 32)
27 EXCL@[25; 26) "!" 27 PREFIX_EXPR@[25; 31)
28 PREFIX_EXPR@[26; 31) 28 EXCL@[25; 26) "!"
29 EXCL@[26; 27) "!" 29 PREFIX_EXPR@[26; 31)
30 LITERAL@[27; 31) 30 EXCL@[26; 27) "!"
31 TRUE_KW@[27; 31) "true" 31 LITERAL@[27; 31)
32 SEMI@[31; 32) ";" 32 TRUE_KW@[27; 31) "true"
33 WHITESPACE@[32; 37) "\n " 33 SEMI@[31; 32) ";"
34 EXPR_STMT@[37; 41) 34 WHITESPACE@[32; 37) "\n "
35 PREFIX_EXPR@[37; 40) 35 EXPR_STMT@[37; 41)
36 MINUS@[37; 38) "-" 36 PREFIX_EXPR@[37; 40)
37 PREFIX_EXPR@[38; 40) 37 MINUS@[37; 38) "-"
38 MINUS@[38; 39) "-" 38 PREFIX_EXPR@[38; 40)
39 LITERAL@[39; 40) 39 MINUS@[38; 39) "-"
40 INT_NUMBER@[39; 40) "1" 40 LITERAL@[39; 40)
41 SEMI@[40; 41) ";" 41 INT_NUMBER@[39; 40) "1"
42 WHITESPACE@[41; 42) "\n" 42 SEMI@[40; 41) ";"
43 R_CURLY@[42; 43) "}" 43 WHITESPACE@[41; 42) "\n"
44 R_CURLY@[42; 43) "}"
44 WHITESPACE@[43; 44) "\n" 45 WHITESPACE@[43; 44) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.txt b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.txt
index a893833e1..0768f0518 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.txt
@@ -54,9 +54,10 @@ SOURCE_FILE@[0; 89)
54 L_PAREN@[60; 61) "(" 54 L_PAREN@[60; 61) "("
55 R_PAREN@[61; 62) ")" 55 R_PAREN@[61; 62) ")"
56 WHITESPACE@[62; 63) " " 56 WHITESPACE@[62; 63) " "
57 BLOCK@[63; 65) 57 BLOCK_EXPR@[63; 65)
58 L_CURLY@[63; 64) "{" 58 BLOCK@[63; 65)
59 R_CURLY@[64; 65) "}" 59 L_CURLY@[63; 64) "{"
60 R_CURLY@[64; 65) "}"
60 WHITESPACE@[65; 70) "\n " 61 WHITESPACE@[65; 70) "\n "
61 FN_DEF@[70; 86) 62 FN_DEF@[70; 86)
62 FN_KW@[70; 72) "fn" 63 FN_KW@[70; 72) "fn"
@@ -70,9 +71,10 @@ SOURCE_FILE@[0; 89)
70 SELF_KW@[78; 82) "self" 71 SELF_KW@[78; 82) "self"
71 R_PAREN@[82; 83) ")" 72 R_PAREN@[82; 83) ")"
72 WHITESPACE@[83; 84) " " 73 WHITESPACE@[83; 84) " "
73 BLOCK@[84; 86) 74 BLOCK_EXPR@[84; 86)
74 L_CURLY@[84; 85) "{" 75 BLOCK@[84; 86)
75 R_CURLY@[85; 86) "}" 76 L_CURLY@[84; 85) "{"
77 R_CURLY@[85; 86) "}"
76 WHITESPACE@[86; 87) "\n" 78 WHITESPACE@[86; 87) "\n"
77 R_CURLY@[87; 88) "}" 79 R_CURLY@[87; 88) "}"
78 WHITESPACE@[88; 89) "\n" 80 WHITESPACE@[88; 89) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.txt b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.txt
index 40ddbfbf6..c1d669e54 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.txt
@@ -8,33 +8,34 @@ SOURCE_FILE@[0; 39)
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; 38) 11 BLOCK_EXPR@[10; 38)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 38)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 LET_STMT@[16; 36) 14 WHITESPACE@[11; 16) "\n "
15 LET_KW@[16; 19) "let" 15 LET_STMT@[16; 36)
16 WHITESPACE@[19; 20) " " 16 LET_KW@[16; 19) "let"
17 SLICE_PAT@[20; 30) 17 WHITESPACE@[19; 20) " "
18 L_BRACK@[20; 21) "[" 18 SLICE_PAT@[20; 30)
19 BIND_PAT@[21; 22) 19 L_BRACK@[20; 21) "["
20 NAME@[21; 22) 20 BIND_PAT@[21; 22)
21 IDENT@[21; 22) "a" 21 NAME@[21; 22)
22 COMMA@[22; 23) "," 22 IDENT@[21; 22) "a"
23 WHITESPACE@[23; 24) " " 23 COMMA@[22; 23) ","
24 BIND_PAT@[24; 25) 24 WHITESPACE@[23; 24) " "
25 NAME@[24; 25) 25 BIND_PAT@[24; 25)
26 IDENT@[24; 25) "b" 26 NAME@[24; 25)
27 COMMA@[25; 26) "," 27 IDENT@[24; 25) "b"
28 WHITESPACE@[26; 27) " " 28 COMMA@[25; 26) ","
29 DOTDOT@[27; 29) ".." 29 WHITESPACE@[26; 27) " "
30 R_BRACK@[29; 30) "]" 30 DOTDOT@[27; 29) ".."
31 WHITESPACE@[30; 31) " " 31 R_BRACK@[29; 30) "]"
32 EQ@[31; 32) "=" 32 WHITESPACE@[30; 31) " "
33 WHITESPACE@[32; 33) " " 33 EQ@[31; 32) "="
34 ARRAY_EXPR@[33; 35) 34 WHITESPACE@[32; 33) " "
35 L_BRACK@[33; 34) "[" 35 ARRAY_EXPR@[33; 35)
36 R_BRACK@[34; 35) "]" 36 L_BRACK@[33; 34) "["
37 SEMI@[35; 36) ";" 37 R_BRACK@[34; 35) "]"
38 WHITESPACE@[36; 37) "\n" 38 SEMI@[35; 36) ";"
39 R_CURLY@[37; 38) "}" 39 WHITESPACE@[36; 37) "\n"
40 R_CURLY@[37; 38) "}"
40 WHITESPACE@[38; 39) "\n" 41 WHITESPACE@[38; 39) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.txt b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.txt
index 0ff936471..adc8931e2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.txt
@@ -8,96 +8,97 @@ SOURCE_FILE@[0; 97)
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; 96) 11 BLOCK_EXPR@[9; 96)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 96)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 28) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 28)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 TUPLE_STRUCT_PAT@[19; 22) 17 WHITESPACE@[18; 19) " "
18 PATH@[19; 20) 18 TUPLE_STRUCT_PAT@[19; 22)
19 PATH_SEGMENT@[19; 20) 19 PATH@[19; 20)
20 NAME_REF@[19; 20) 20 PATH_SEGMENT@[19; 20)
21 IDENT@[19; 20) "S" 21 NAME_REF@[19; 20)
22 L_PAREN@[20; 21) "(" 22 IDENT@[19; 20) "S"
23 R_PAREN@[21; 22) ")" 23 L_PAREN@[20; 21) "("
24 WHITESPACE@[22; 23) " " 24 R_PAREN@[21; 22) ")"
25 EQ@[23; 24) "=" 25 WHITESPACE@[22; 23) " "
26 WHITESPACE@[24; 25) " " 26 EQ@[23; 24) "="
27 TUPLE_EXPR@[25; 27) 27 WHITESPACE@[24; 25) " "
28 L_PAREN@[25; 26) "(" 28 TUPLE_EXPR@[25; 27)
29 R_PAREN@[26; 27) ")" 29 L_PAREN@[25; 26) "("
30 SEMI@[27; 28) ";" 30 R_PAREN@[26; 27) ")"
31 WHITESPACE@[28; 33) "\n " 31 SEMI@[27; 28) ";"
32 LET_STMT@[33; 47) 32 WHITESPACE@[28; 33) "\n "
33 LET_KW@[33; 36) "let" 33 LET_STMT@[33; 47)
34 WHITESPACE@[36; 37) " " 34 LET_KW@[33; 36) "let"
35 TUPLE_STRUCT_PAT@[37; 41) 35 WHITESPACE@[36; 37) " "
36 PATH@[37; 38) 36 TUPLE_STRUCT_PAT@[37; 41)
37 PATH_SEGMENT@[37; 38) 37 PATH@[37; 38)
38 NAME_REF@[37; 38) 38 PATH_SEGMENT@[37; 38)
39 IDENT@[37; 38) "S" 39 NAME_REF@[37; 38)
40 L_PAREN@[38; 39) "(" 40 IDENT@[37; 38) "S"
41 PLACEHOLDER_PAT@[39; 40) 41 L_PAREN@[38; 39) "("
42 UNDERSCORE@[39; 40) "_" 42 PLACEHOLDER_PAT@[39; 40)
43 R_PAREN@[40; 41) ")" 43 UNDERSCORE@[39; 40) "_"
44 WHITESPACE@[41; 42) " " 44 R_PAREN@[40; 41) ")"
45 EQ@[42; 43) "=" 45 WHITESPACE@[41; 42) " "
46 WHITESPACE@[43; 44) " " 46 EQ@[42; 43) "="
47 TUPLE_EXPR@[44; 46) 47 WHITESPACE@[43; 44) " "
48 L_PAREN@[44; 45) "(" 48 TUPLE_EXPR@[44; 46)
49 R_PAREN@[45; 46) ")" 49 L_PAREN@[44; 45) "("
50 SEMI@[46; 47) ";" 50 R_PAREN@[45; 46) ")"
51 WHITESPACE@[47; 52) "\n " 51 SEMI@[46; 47) ";"
52 LET_STMT@[52; 67) 52 WHITESPACE@[47; 52) "\n "
53 LET_KW@[52; 55) "let" 53 LET_STMT@[52; 67)
54 WHITESPACE@[55; 56) " " 54 LET_KW@[52; 55) "let"
55 TUPLE_STRUCT_PAT@[56; 61) 55 WHITESPACE@[55; 56) " "
56 PATH@[56; 57) 56 TUPLE_STRUCT_PAT@[56; 61)
57 PATH_SEGMENT@[56; 57) 57 PATH@[56; 57)
58 NAME_REF@[56; 57) 58 PATH_SEGMENT@[56; 57)
59 IDENT@[56; 57) "S" 59 NAME_REF@[56; 57)
60 L_PAREN@[57; 58) "(" 60 IDENT@[56; 57) "S"
61 PLACEHOLDER_PAT@[58; 59) 61 L_PAREN@[57; 58) "("
62 UNDERSCORE@[58; 59) "_" 62 PLACEHOLDER_PAT@[58; 59)
63 COMMA@[59; 60) "," 63 UNDERSCORE@[58; 59) "_"
64 R_PAREN@[60; 61) ")" 64 COMMA@[59; 60) ","
65 WHITESPACE@[61; 62) " " 65 R_PAREN@[60; 61) ")"
66 EQ@[62; 63) "=" 66 WHITESPACE@[61; 62) " "
67 WHITESPACE@[63; 64) " " 67 EQ@[62; 63) "="
68 TUPLE_EXPR@[64; 66) 68 WHITESPACE@[63; 64) " "
69 L_PAREN@[64; 65) "(" 69 TUPLE_EXPR@[64; 66)
70 R_PAREN@[65; 66) ")" 70 L_PAREN@[64; 65) "("
71 SEMI@[66; 67) ";" 71 R_PAREN@[65; 66) ")"
72 WHITESPACE@[67; 72) "\n " 72 SEMI@[66; 67) ";"
73 LET_STMT@[72; 94) 73 WHITESPACE@[67; 72) "\n "
74 LET_KW@[72; 75) "let" 74 LET_STMT@[72; 94)
75 WHITESPACE@[75; 76) " " 75 LET_KW@[72; 75) "let"
76 TUPLE_STRUCT_PAT@[76; 88) 76 WHITESPACE@[75; 76) " "
77 PATH@[76; 77) 77 TUPLE_STRUCT_PAT@[76; 88)
78 PATH_SEGMENT@[76; 77) 78 PATH@[76; 77)
79 NAME_REF@[76; 77) 79 PATH_SEGMENT@[76; 77)
80 IDENT@[76; 77) "S" 80 NAME_REF@[76; 77)
81 L_PAREN@[77; 78) "(" 81 IDENT@[76; 77) "S"
82 PLACEHOLDER_PAT@[78; 79) 82 L_PAREN@[77; 78) "("
83 UNDERSCORE@[78; 79) "_" 83 PLACEHOLDER_PAT@[78; 79)
84 COMMA@[79; 80) "," 84 UNDERSCORE@[78; 79) "_"
85 WHITESPACE@[80; 81) " " 85 COMMA@[79; 80) ","
86 DOTDOT@[81; 83) ".." 86 WHITESPACE@[80; 81) " "
87 WHITESPACE@[83; 84) " " 87 DOTDOT@[81; 83) ".."
88 COMMA@[84; 85) "," 88 WHITESPACE@[83; 84) " "
89 WHITESPACE@[85; 86) " " 89 COMMA@[84; 85) ","
90 BIND_PAT@[86; 87) 90 WHITESPACE@[85; 86) " "
91 NAME@[86; 87) 91 BIND_PAT@[86; 87)
92 IDENT@[86; 87) "x" 92 NAME@[86; 87)
93 R_PAREN@[87; 88) ")" 93 IDENT@[86; 87) "x"
94 WHITESPACE@[88; 89) " " 94 R_PAREN@[87; 88) ")"
95 EQ@[89; 90) "=" 95 WHITESPACE@[88; 89) " "
96 WHITESPACE@[90; 91) " " 96 EQ@[89; 90) "="
97 TUPLE_EXPR@[91; 93) 97 WHITESPACE@[90; 91) " "
98 L_PAREN@[91; 92) "(" 98 TUPLE_EXPR@[91; 93)
99 R_PAREN@[92; 93) ")" 99 L_PAREN@[91; 92) "("
100 SEMI@[93; 94) ";" 100 R_PAREN@[92; 93) ")"
101 WHITESPACE@[94; 95) "\n" 101 SEMI@[93; 94) ";"
102 R_CURLY@[95; 96) "}" 102 WHITESPACE@[94; 95) "\n"
103 R_CURLY@[95; 96) "}"
103 WHITESPACE@[96; 97) "\n" 104 WHITESPACE@[96; 97) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.txt b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.txt
index a833b1b96..0f1a367f7 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.txt
@@ -8,42 +8,43 @@ SOURCE_FILE@[0; 52)
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; 51) 11 BLOCK_EXPR@[10; 51)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 51)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 LET_STMT@[16; 28) 14 WHITESPACE@[11; 16) "\n "
15 LET_KW@[16; 19) "let" 15 LET_STMT@[16; 28)
16 WHITESPACE@[19; 20) " " 16 LET_KW@[16; 19) "let"
17 REF_PAT@[20; 22) 17 WHITESPACE@[19; 20) " "
18 AMP@[20; 21) "&" 18 REF_PAT@[20; 22)
19 BIND_PAT@[21; 22) 19 AMP@[20; 21) "&"
20 NAME@[21; 22) 20 BIND_PAT@[21; 22)
21 IDENT@[21; 22) "a" 21 NAME@[21; 22)
22 WHITESPACE@[22; 23) " " 22 IDENT@[21; 22) "a"
23 EQ@[23; 24) "=" 23 WHITESPACE@[22; 23) " "
24 WHITESPACE@[24; 25) " " 24 EQ@[23; 24) "="
25 TUPLE_EXPR@[25; 27) 25 WHITESPACE@[24; 25) " "
26 L_PAREN@[25; 26) "(" 26 TUPLE_EXPR@[25; 27)
27 R_PAREN@[26; 27) ")" 27 L_PAREN@[25; 26) "("
28 SEMI@[27; 28) ";" 28 R_PAREN@[26; 27) ")"
29 WHITESPACE@[28; 33) "\n " 29 SEMI@[27; 28) ";"
30 LET_STMT@[33; 49) 30 WHITESPACE@[28; 33) "\n "
31 LET_KW@[33; 36) "let" 31 LET_STMT@[33; 49)
32 WHITESPACE@[36; 37) " " 32 LET_KW@[33; 36) "let"
33 REF_PAT@[37; 43) 33 WHITESPACE@[36; 37) " "
34 AMP@[37; 38) "&" 34 REF_PAT@[37; 43)
35 MUT_KW@[38; 41) "mut" 35 AMP@[37; 38) "&"
36 WHITESPACE@[41; 42) " " 36 MUT_KW@[38; 41) "mut"
37 BIND_PAT@[42; 43) 37 WHITESPACE@[41; 42) " "
38 NAME@[42; 43) 38 BIND_PAT@[42; 43)
39 IDENT@[42; 43) "b" 39 NAME@[42; 43)
40 WHITESPACE@[43; 44) " " 40 IDENT@[42; 43) "b"
41 EQ@[44; 45) "=" 41 WHITESPACE@[43; 44) " "
42 WHITESPACE@[45; 46) " " 42 EQ@[44; 45) "="
43 TUPLE_EXPR@[46; 48) 43 WHITESPACE@[45; 46) " "
44 L_PAREN@[46; 47) "(" 44 TUPLE_EXPR@[46; 48)
45 R_PAREN@[47; 48) ")" 45 L_PAREN@[46; 47) "("
46 SEMI@[48; 49) ";" 46 R_PAREN@[47; 48) ")"
47 WHITESPACE@[49; 50) "\n" 47 SEMI@[48; 49) ";"
48 R_CURLY@[50; 51) "}" 48 WHITESPACE@[49; 50) "\n"
49 R_CURLY@[50; 51) "}"
49 WHITESPACE@[51; 52) "\n" 50 WHITESPACE@[51; 52) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.txt
index 11c14e3b4..b17a2c257 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.txt
@@ -8,82 +8,83 @@ 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 EXPR_STMT@[15; 25) 14 WHITESPACE@[10; 15) "\n "
15 CAST_EXPR@[15; 24) 15 EXPR_STMT@[15; 25)
16 LITERAL@[15; 17) 16 CAST_EXPR@[15; 24)
17 INT_NUMBER@[15; 17) "82" 17 LITERAL@[15; 17)
18 WHITESPACE@[17; 18) " " 18 INT_NUMBER@[15; 17) "82"
19 AS_KW@[18; 20) "as" 19 WHITESPACE@[17; 18) " "
20 WHITESPACE@[20; 21) " " 20 AS_KW@[18; 20) "as"
21 PATH_TYPE@[21; 24) 21 WHITESPACE@[20; 21) " "
22 PATH@[21; 24) 22 PATH_TYPE@[21; 24)
23 PATH_SEGMENT@[21; 24) 23 PATH@[21; 24)
24 NAME_REF@[21; 24) 24 PATH_SEGMENT@[21; 24)
25 IDENT@[21; 24) "i32" 25 NAME_REF@[21; 24)
26 SEMI@[24; 25) ";" 26 IDENT@[21; 24) "i32"
27 WHITESPACE@[25; 30) "\n " 27 SEMI@[24; 25) ";"
28 EXPR_STMT@[30; 43) 28 WHITESPACE@[25; 30) "\n "
29 BIN_EXPR@[30; 42) 29 EXPR_STMT@[30; 43)
30 CAST_EXPR@[30; 38) 30 BIN_EXPR@[30; 42)
31 LITERAL@[30; 32) 31 CAST_EXPR@[30; 38)
32 INT_NUMBER@[30; 32) "81" 32 LITERAL@[30; 32)
33 WHITESPACE@[32; 33) " " 33 INT_NUMBER@[30; 32) "81"
34 AS_KW@[33; 35) "as" 34 WHITESPACE@[32; 33) " "
35 WHITESPACE@[35; 36) " " 35 AS_KW@[33; 35) "as"
36 PATH_TYPE@[36; 38) 36 WHITESPACE@[35; 36) " "
37 PATH@[36; 38) 37 PATH_TYPE@[36; 38)
38 PATH_SEGMENT@[36; 38) 38 PATH@[36; 38)
39 NAME_REF@[36; 38) 39 PATH_SEGMENT@[36; 38)
40 IDENT@[36; 38) "i8" 40 NAME_REF@[36; 38)
41 WHITESPACE@[38; 39) " " 41 IDENT@[36; 38) "i8"
42 PLUS@[39; 40) "+" 42 WHITESPACE@[38; 39) " "
43 WHITESPACE@[40; 41) " " 43 PLUS@[39; 40) "+"
44 LITERAL@[41; 42) 44 WHITESPACE@[40; 41) " "
45 INT_NUMBER@[41; 42) "1" 45 LITERAL@[41; 42)
46 SEMI@[42; 43) ";" 46 INT_NUMBER@[41; 42) "1"
47 WHITESPACE@[43; 48) "\n " 47 SEMI@[42; 43) ";"
48 EXPR_STMT@[48; 62) 48 WHITESPACE@[43; 48) "\n "
49 BIN_EXPR@[48; 61) 49 EXPR_STMT@[48; 62)
50 CAST_EXPR@[48; 57) 50 BIN_EXPR@[48; 61)
51 LITERAL@[48; 50) 51 CAST_EXPR@[48; 57)
52 INT_NUMBER@[48; 50) "79" 52 LITERAL@[48; 50)
53 WHITESPACE@[50; 51) " " 53 INT_NUMBER@[48; 50) "79"
54 AS_KW@[51; 53) "as" 54 WHITESPACE@[50; 51) " "
55 WHITESPACE@[53; 54) " " 55 AS_KW@[51; 53) "as"
56 PATH_TYPE@[54; 57) 56 WHITESPACE@[53; 54) " "
57 PATH@[54; 57) 57 PATH_TYPE@[54; 57)
58 PATH_SEGMENT@[54; 57) 58 PATH@[54; 57)
59 NAME_REF@[54; 57) 59 PATH_SEGMENT@[54; 57)
60 IDENT@[54; 57) "i16" 60 NAME_REF@[54; 57)
61 WHITESPACE@[57; 58) " " 61 IDENT@[54; 57) "i16"
62 MINUS@[58; 59) "-" 62 WHITESPACE@[57; 58) " "
63 WHITESPACE@[59; 60) " " 63 MINUS@[58; 59) "-"
64 LITERAL@[60; 61) 64 WHITESPACE@[59; 60) " "
65 INT_NUMBER@[60; 61) "1" 65 LITERAL@[60; 61)
66 SEMI@[61; 62) ";" 66 INT_NUMBER@[60; 61) "1"
67 WHITESPACE@[62; 67) "\n " 67 SEMI@[61; 62) ";"
68 EXPR_STMT@[67; 86) 68 WHITESPACE@[62; 67) "\n "
69 BIN_EXPR@[67; 85) 69 EXPR_STMT@[67; 86)
70 CAST_EXPR@[67; 77) 70 BIN_EXPR@[67; 85)
71 LITERAL@[67; 71) 71 CAST_EXPR@[67; 77)
72 INT_NUMBER@[67; 71) "0x36" 72 LITERAL@[67; 71)
73 WHITESPACE@[71; 72) " " 73 INT_NUMBER@[67; 71) "0x36"
74 AS_KW@[72; 74) "as" 74 WHITESPACE@[71; 72) " "
75 WHITESPACE@[74; 75) " " 75 AS_KW@[72; 74) "as"
76 PATH_TYPE@[75; 77) 76 WHITESPACE@[74; 75) " "
77 PATH@[75; 77) 77 PATH_TYPE@[75; 77)
78 PATH_SEGMENT@[75; 77) 78 PATH@[75; 77)
79 NAME_REF@[75; 77) 79 PATH_SEGMENT@[75; 77)
80 IDENT@[75; 77) "u8" 80 NAME_REF@[75; 77)
81 WHITESPACE@[77; 78) " " 81 IDENT@[75; 77) "u8"
82 LTEQ@[78; 80) "<=" 82 WHITESPACE@[77; 78) " "
83 WHITESPACE@[80; 81) " " 83 LTEQ@[78; 80) "<="
84 LITERAL@[81; 85) 84 WHITESPACE@[80; 81) " "
85 INT_NUMBER@[81; 85) "0x37" 85 LITERAL@[81; 85)
86 SEMI@[85; 86) ";" 86 INT_NUMBER@[81; 85) "0x37"
87 WHITESPACE@[86; 87) "\n" 87 SEMI@[85; 86) ";"
88 R_CURLY@[87; 88) "}" 88 WHITESPACE@[86; 87) "\n"
89 R_CURLY@[87; 88) "}"
89 WHITESPACE@[88; 89) "\n" 90 WHITESPACE@[88; 89) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.txt b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.txt
index 1c9414b21..4028ca243 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.txt
@@ -8,38 +8,40 @@ SOURCE_FILE@[0; 197)
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; 37) 11 BLOCK_EXPR@[9; 37)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 37)
13 WHITESPACE@[10; 11) " " 13 L_CURLY@[9; 10) "{"
14 IF_EXPR@[11; 35) 14 WHITESPACE@[10; 11) " "
15 IF_KW@[11; 13) "if" 15 IF_EXPR@[11; 35)
16 WHITESPACE@[13; 14) " " 16 IF_KW@[11; 13) "if"
17 CONDITION@[14; 32) 17 WHITESPACE@[13; 14) " "
18 LET_KW@[14; 17) "let" 18 CONDITION@[14; 32)
19 WHITESPACE@[17; 18) " " 19 LET_KW@[14; 17) "let"
20 TUPLE_STRUCT_PAT@[18; 25) 20 WHITESPACE@[17; 18) " "
21 PATH@[18; 22) 21 TUPLE_STRUCT_PAT@[18; 25)
22 PATH_SEGMENT@[18; 22) 22 PATH@[18; 22)
23 NAME_REF@[18; 22) 23 PATH_SEGMENT@[18; 22)
24 IDENT@[18; 22) "Some" 24 NAME_REF@[18; 22)
25 L_PAREN@[22; 23) "(" 25 IDENT@[18; 22) "Some"
26 PLACEHOLDER_PAT@[23; 24) 26 L_PAREN@[22; 23) "("
27 UNDERSCORE@[23; 24) "_" 27 PLACEHOLDER_PAT@[23; 24)
28 R_PAREN@[24; 25) ")" 28 UNDERSCORE@[23; 24) "_"
29 WHITESPACE@[25; 26) " " 29 R_PAREN@[24; 25) ")"
30 EQ@[26; 27) "=" 30 WHITESPACE@[25; 26) " "
31 WHITESPACE@[27; 28) " " 31 EQ@[26; 27) "="
32 PATH_EXPR@[28; 32) 32 WHITESPACE@[27; 28) " "
33 PATH@[28; 32) 33 PATH_EXPR@[28; 32)
34 PATH_SEGMENT@[28; 32) 34 PATH@[28; 32)
35 NAME_REF@[28; 32) 35 PATH_SEGMENT@[28; 32)
36 IDENT@[28; 32) "None" 36 NAME_REF@[28; 32)
37 WHITESPACE@[32; 33) " " 37 IDENT@[28; 32) "None"
38 BLOCK@[33; 35) 38 WHITESPACE@[32; 33) " "
39 L_CURLY@[33; 34) "{" 39 BLOCK_EXPR@[33; 35)
40 R_CURLY@[34; 35) "}" 40 BLOCK@[33; 35)
41 WHITESPACE@[35; 36) " " 41 L_CURLY@[33; 34) "{"
42 R_CURLY@[36; 37) "}" 42 R_CURLY@[34; 35) "}"
43 WHITESPACE@[35; 36) " "
44 R_CURLY@[36; 37) "}"
43 WHITESPACE@[37; 38) "\n" 45 WHITESPACE@[37; 38) "\n"
44 FN_DEF@[38; 196) 46 FN_DEF@[38; 196)
45 FN_KW@[38; 40) "fn" 47 FN_KW@[38; 40) "fn"
@@ -50,151 +52,156 @@ SOURCE_FILE@[0; 197)
50 L_PAREN@[44; 45) "(" 52 L_PAREN@[44; 45) "("
51 R_PAREN@[45; 46) ")" 53 R_PAREN@[45; 46) ")"
52 WHITESPACE@[46; 47) " " 54 WHITESPACE@[46; 47) " "
53 BLOCK@[47; 196) 55 BLOCK_EXPR@[47; 196)
54 L_CURLY@[47; 48) "{" 56 BLOCK@[47; 196)
55 WHITESPACE@[48; 53) "\n " 57 L_CURLY@[47; 48) "{"
56 EXPR_STMT@[53; 87) 58 WHITESPACE@[48; 53) "\n "
57 IF_EXPR@[53; 87) 59 EXPR_STMT@[53; 87)
58 IF_KW@[53; 55) "if" 60 IF_EXPR@[53; 87)
59 WHITESPACE@[55; 56) " " 61 IF_KW@[53; 55) "if"
60 CONDITION@[56; 84) 62 WHITESPACE@[55; 56) " "
61 LET_KW@[56; 59) "let" 63 CONDITION@[56; 84)
62 WHITESPACE@[59; 60) " " 64 LET_KW@[56; 59) "let"
63 TUPLE_STRUCT_PAT@[60; 67) 65 WHITESPACE@[59; 60) " "
64 PATH@[60; 64) 66 TUPLE_STRUCT_PAT@[60; 67)
65 PATH_SEGMENT@[60; 64) 67 PATH@[60; 64)
66 NAME_REF@[60; 64) 68 PATH_SEGMENT@[60; 64)
67 IDENT@[60; 64) "Some" 69 NAME_REF@[60; 64)
68 L_PAREN@[64; 65) "(" 70 IDENT@[60; 64) "Some"
69 PLACEHOLDER_PAT@[65; 66) 71 L_PAREN@[64; 65) "("
70 UNDERSCORE@[65; 66) "_" 72 PLACEHOLDER_PAT@[65; 66)
71 R_PAREN@[66; 67) ")" 73 UNDERSCORE@[65; 66) "_"
72 WHITESPACE@[67; 68) " " 74 R_PAREN@[66; 67) ")"
73 PIPE@[68; 69) "|" 75 WHITESPACE@[67; 68) " "
74 WHITESPACE@[69; 70) " " 76 PIPE@[68; 69) "|"
75 TUPLE_STRUCT_PAT@[70; 77) 77 WHITESPACE@[69; 70) " "
76 PATH@[70; 74) 78 TUPLE_STRUCT_PAT@[70; 77)
77 PATH_SEGMENT@[70; 74) 79 PATH@[70; 74)
78 NAME_REF@[70; 74) 80 PATH_SEGMENT@[70; 74)
79 IDENT@[70; 74) "Some" 81 NAME_REF@[70; 74)
80 L_PAREN@[74; 75) "(" 82 IDENT@[70; 74) "Some"
81 PLACEHOLDER_PAT@[75; 76) 83 L_PAREN@[74; 75) "("
82 UNDERSCORE@[75; 76) "_" 84 PLACEHOLDER_PAT@[75; 76)
83 R_PAREN@[76; 77) ")" 85 UNDERSCORE@[75; 76) "_"
84 WHITESPACE@[77; 78) " " 86 R_PAREN@[76; 77) ")"
85 EQ@[78; 79) "=" 87 WHITESPACE@[77; 78) " "
86 WHITESPACE@[79; 80) " " 88 EQ@[78; 79) "="
87 PATH_EXPR@[80; 84) 89 WHITESPACE@[79; 80) " "
88 PATH@[80; 84) 90 PATH_EXPR@[80; 84)
89 PATH_SEGMENT@[80; 84) 91 PATH@[80; 84)
90 NAME_REF@[80; 84) 92 PATH_SEGMENT@[80; 84)
91 IDENT@[80; 84) "None" 93 NAME_REF@[80; 84)
92 WHITESPACE@[84; 85) " " 94 IDENT@[80; 84) "None"
93 BLOCK@[85; 87) 95 WHITESPACE@[84; 85) " "
94 L_CURLY@[85; 86) "{" 96 BLOCK_EXPR@[85; 87)
95 R_CURLY@[86; 87) "}" 97 BLOCK@[85; 87)
96 WHITESPACE@[87; 92) "\n " 98 L_CURLY@[85; 86) "{"
97 EXPR_STMT@[92; 118) 99 R_CURLY@[86; 87) "}"
98 IF_EXPR@[92; 118) 100 WHITESPACE@[87; 92) "\n "
99 IF_KW@[92; 94) "if" 101 EXPR_STMT@[92; 118)
100 WHITESPACE@[94; 95) " " 102 IF_EXPR@[92; 118)
101 CONDITION@[95; 115) 103 IF_KW@[92; 94) "if"
102 LET_KW@[95; 98) "let" 104 WHITESPACE@[94; 95) " "
103 WHITESPACE@[98; 99) " " 105 CONDITION@[95; 115)
104 PIPE@[99; 100) "|" 106 LET_KW@[95; 98) "let"
105 WHITESPACE@[100; 101) " " 107 WHITESPACE@[98; 99) " "
106 TUPLE_STRUCT_PAT@[101; 108) 108 PIPE@[99; 100) "|"
107 PATH@[101; 105) 109 WHITESPACE@[100; 101) " "
108 PATH_SEGMENT@[101; 105) 110 TUPLE_STRUCT_PAT@[101; 108)
109 NAME_REF@[101; 105) 111 PATH@[101; 105)
110 IDENT@[101; 105) "Some" 112 PATH_SEGMENT@[101; 105)
111 L_PAREN@[105; 106) "(" 113 NAME_REF@[101; 105)
112 PLACEHOLDER_PAT@[106; 107) 114 IDENT@[101; 105) "Some"
113 UNDERSCORE@[106; 107) "_" 115 L_PAREN@[105; 106) "("
114 R_PAREN@[107; 108) ")" 116 PLACEHOLDER_PAT@[106; 107)
115 WHITESPACE@[108; 109) " " 117 UNDERSCORE@[106; 107) "_"
116 EQ@[109; 110) "=" 118 R_PAREN@[107; 108) ")"
117 WHITESPACE@[110; 111) " " 119 WHITESPACE@[108; 109) " "
118 PATH_EXPR@[111; 115) 120 EQ@[109; 110) "="
119 PATH@[111; 115) 121 WHITESPACE@[110; 111) " "
120 PATH_SEGMENT@[111; 115) 122 PATH_EXPR@[111; 115)
121 NAME_REF@[111; 115) 123 PATH@[111; 115)
122 IDENT@[111; 115) "None" 124 PATH_SEGMENT@[111; 115)
123 WHITESPACE@[115; 116) " " 125 NAME_REF@[111; 115)
124 BLOCK@[116; 118) 126 IDENT@[111; 115) "None"
125 L_CURLY@[116; 117) "{" 127 WHITESPACE@[115; 116) " "
126 R_CURLY@[117; 118) "}" 128 BLOCK_EXPR@[116; 118)
127 WHITESPACE@[118; 123) "\n " 129 BLOCK@[116; 118)
128 EXPR_STMT@[123; 160) 130 L_CURLY@[116; 117) "{"
129 WHILE_EXPR@[123; 160) 131 R_CURLY@[117; 118) "}"
130 WHILE_KW@[123; 128) "while" 132 WHITESPACE@[118; 123) "\n "
131 WHITESPACE@[128; 129) " " 133 EXPR_STMT@[123; 160)
132 CONDITION@[129; 157) 134 WHILE_EXPR@[123; 160)
133 LET_KW@[129; 132) "let" 135 WHILE_KW@[123; 128) "while"
134 WHITESPACE@[132; 133) " " 136 WHITESPACE@[128; 129) " "
135 TUPLE_STRUCT_PAT@[133; 140) 137 CONDITION@[129; 157)
136 PATH@[133; 137) 138 LET_KW@[129; 132) "let"
137 PATH_SEGMENT@[133; 137) 139 WHITESPACE@[132; 133) " "
138 NAME_REF@[133; 137) 140 TUPLE_STRUCT_PAT@[133; 140)
139 IDENT@[133; 137) "Some" 141 PATH@[133; 137)
140 L_PAREN@[137; 138) "(" 142 PATH_SEGMENT@[133; 137)
141 PLACEHOLDER_PAT@[138; 139) 143 NAME_REF@[133; 137)
142 UNDERSCORE@[138; 139) "_" 144 IDENT@[133; 137) "Some"
143 R_PAREN@[139; 140) ")" 145 L_PAREN@[137; 138) "("
144 WHITESPACE@[140; 141) " " 146 PLACEHOLDER_PAT@[138; 139)
145 PIPE@[141; 142) "|" 147 UNDERSCORE@[138; 139) "_"
146 WHITESPACE@[142; 143) " " 148 R_PAREN@[139; 140) ")"
147 TUPLE_STRUCT_PAT@[143; 150) 149 WHITESPACE@[140; 141) " "
148 PATH@[143; 147) 150 PIPE@[141; 142) "|"
149 PATH_SEGMENT@[143; 147) 151 WHITESPACE@[142; 143) " "
150 NAME_REF@[143; 147) 152 TUPLE_STRUCT_PAT@[143; 150)
151 IDENT@[143; 147) "Some" 153 PATH@[143; 147)
152 L_PAREN@[147; 148) "(" 154 PATH_SEGMENT@[143; 147)
153 PLACEHOLDER_PAT@[148; 149) 155 NAME_REF@[143; 147)
154 UNDERSCORE@[148; 149) "_" 156 IDENT@[143; 147) "Some"
155 R_PAREN@[149; 150) ")" 157 L_PAREN@[147; 148) "("
156 WHITESPACE@[150; 151) " " 158 PLACEHOLDER_PAT@[148; 149)
157 EQ@[151; 152) "=" 159 UNDERSCORE@[148; 149) "_"
158 WHITESPACE@[152; 153) " " 160 R_PAREN@[149; 150) ")"
159 PATH_EXPR@[153; 157) 161 WHITESPACE@[150; 151) " "
160 PATH@[153; 157) 162 EQ@[151; 152) "="
161 PATH_SEGMENT@[153; 157) 163 WHITESPACE@[152; 153) " "
162 NAME_REF@[153; 157) 164 PATH_EXPR@[153; 157)
163 IDENT@[153; 157) "None" 165 PATH@[153; 157)
164 WHITESPACE@[157; 158) " " 166 PATH_SEGMENT@[153; 157)
165 BLOCK@[158; 160) 167 NAME_REF@[153; 157)
166 L_CURLY@[158; 159) "{" 168 IDENT@[153; 157) "None"
167 R_CURLY@[159; 160) "}" 169 WHITESPACE@[157; 158) " "
168 WHITESPACE@[160; 165) "\n " 170 BLOCK_EXPR@[158; 160)
169 WHILE_EXPR@[165; 194) 171 BLOCK@[158; 160)
170 WHILE_KW@[165; 170) "while" 172 L_CURLY@[158; 159) "{"
171 WHITESPACE@[170; 171) " " 173 R_CURLY@[159; 160) "}"
172 CONDITION@[171; 191) 174 WHITESPACE@[160; 165) "\n "
173 LET_KW@[171; 174) "let" 175 WHILE_EXPR@[165; 194)
174 WHITESPACE@[174; 175) " " 176 WHILE_KW@[165; 170) "while"
175 PIPE@[175; 176) "|" 177 WHITESPACE@[170; 171) " "
176 WHITESPACE@[176; 177) " " 178 CONDITION@[171; 191)
177 TUPLE_STRUCT_PAT@[177; 184) 179 LET_KW@[171; 174) "let"
178 PATH@[177; 181) 180 WHITESPACE@[174; 175) " "
179 PATH_SEGMENT@[177; 181) 181 PIPE@[175; 176) "|"
180 NAME_REF@[177; 181) 182 WHITESPACE@[176; 177) " "
181 IDENT@[177; 181) "Some" 183 TUPLE_STRUCT_PAT@[177; 184)
182 L_PAREN@[181; 182) "(" 184 PATH@[177; 181)
183 PLACEHOLDER_PAT@[182; 183) 185 PATH_SEGMENT@[177; 181)
184 UNDERSCORE@[182; 183) "_" 186 NAME_REF@[177; 181)
185 R_PAREN@[183; 184) ")" 187 IDENT@[177; 181) "Some"
186 WHITESPACE@[184; 185) " " 188 L_PAREN@[181; 182) "("
187 EQ@[185; 186) "=" 189 PLACEHOLDER_PAT@[182; 183)
188 WHITESPACE@[186; 187) " " 190 UNDERSCORE@[182; 183) "_"
189 PATH_EXPR@[187; 191) 191 R_PAREN@[183; 184) ")"
190 PATH@[187; 191) 192 WHITESPACE@[184; 185) " "
191 PATH_SEGMENT@[187; 191) 193 EQ@[185; 186) "="
192 NAME_REF@[187; 191) 194 WHITESPACE@[186; 187) " "
193 IDENT@[187; 191) "None" 195 PATH_EXPR@[187; 191)
194 WHITESPACE@[191; 192) " " 196 PATH@[187; 191)
195 BLOCK@[192; 194) 197 PATH_SEGMENT@[187; 191)
196 L_CURLY@[192; 193) "{" 198 NAME_REF@[187; 191)
197 R_CURLY@[193; 194) "}" 199 IDENT@[187; 191) "None"
198 WHITESPACE@[194; 195) "\n" 200 WHITESPACE@[191; 192) " "
199 R_CURLY@[195; 196) "}" 201 BLOCK_EXPR@[192; 194)
202 BLOCK@[192; 194)
203 L_CURLY@[192; 193) "{"
204 R_CURLY@[193; 194) "}"
205 WHITESPACE@[194; 195) "\n"
206 R_CURLY@[195; 196) "}"
200 WHITESPACE@[196; 197) "\n" 207 WHITESPACE@[196; 197) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.txt
index a772117a1..9b43d624c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.txt
@@ -8,59 +8,62 @@ SOURCE_FILE@[0; 70)
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; 69) 11 BLOCK_EXPR@[9; 69)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 69)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 29) 14 WHITESPACE@[10; 15) "\n "
15 WHILE_EXPR@[15; 28) 15 EXPR_STMT@[15; 29)
16 WHILE_KW@[15; 20) "while" 16 WHILE_EXPR@[15; 28)
17 WHITESPACE@[20; 21) " " 17 WHILE_KW@[15; 20) "while"
18 CONDITION@[21; 25) 18 WHITESPACE@[20; 21) " "
19 LITERAL@[21; 25) 19 CONDITION@[21; 25)
20 TRUE_KW@[21; 25) "true" 20 LITERAL@[21; 25)
21 WHITESPACE@[25; 26) " " 21 TRUE_KW@[21; 25) "true"
22 BLOCK@[26; 28) 22 WHITESPACE@[25; 26) " "
23 L_CURLY@[26; 27) "{" 23 BLOCK_EXPR@[26; 28)
24 R_CURLY@[27; 28) "}" 24 BLOCK@[26; 28)
25 SEMI@[28; 29) ";" 25 L_CURLY@[26; 27) "{"
26 WHITESPACE@[29; 34) "\n " 26 R_CURLY@[27; 28) "}"
27 EXPR_STMT@[34; 67) 27 SEMI@[28; 29) ";"
28 WHILE_EXPR@[34; 66) 28 WHITESPACE@[29; 34) "\n "
29 WHILE_KW@[34; 39) "while" 29 EXPR_STMT@[34; 67)
30 WHITESPACE@[39; 40) " " 30 WHILE_EXPR@[34; 66)
31 CONDITION@[40; 63) 31 WHILE_KW@[34; 39) "while"
32 LET_KW@[40; 43) "let" 32 WHITESPACE@[39; 40) " "
33 WHITESPACE@[43; 44) " " 33 CONDITION@[40; 63)
34 TUPLE_STRUCT_PAT@[44; 51) 34 LET_KW@[40; 43) "let"
35 PATH@[44; 48) 35 WHITESPACE@[43; 44) " "
36 PATH_SEGMENT@[44; 48) 36 TUPLE_STRUCT_PAT@[44; 51)
37 NAME_REF@[44; 48) 37 PATH@[44; 48)
38 IDENT@[44; 48) "Some" 38 PATH_SEGMENT@[44; 48)
39 L_PAREN@[48; 49) "(" 39 NAME_REF@[44; 48)
40 BIND_PAT@[49; 50) 40 IDENT@[44; 48) "Some"
41 NAME@[49; 50) 41 L_PAREN@[48; 49) "("
42 IDENT@[49; 50) "x" 42 BIND_PAT@[49; 50)
43 R_PAREN@[50; 51) ")" 43 NAME@[49; 50)
44 WHITESPACE@[51; 52) " " 44 IDENT@[49; 50) "x"
45 EQ@[52; 53) "=" 45 R_PAREN@[50; 51) ")"
46 WHITESPACE@[53; 54) " " 46 WHITESPACE@[51; 52) " "
47 METHOD_CALL_EXPR@[54; 63) 47 EQ@[52; 53) "="
48 PATH_EXPR@[54; 56) 48 WHITESPACE@[53; 54) " "
49 PATH@[54; 56) 49 METHOD_CALL_EXPR@[54; 63)
50 PATH_SEGMENT@[54; 56) 50 PATH_EXPR@[54; 56)
51 NAME_REF@[54; 56) 51 PATH@[54; 56)
52 IDENT@[54; 56) "it" 52 PATH_SEGMENT@[54; 56)
53 DOT@[56; 57) "." 53 NAME_REF@[54; 56)
54 NAME_REF@[57; 61) 54 IDENT@[54; 56) "it"
55 IDENT@[57; 61) "next" 55 DOT@[56; 57) "."
56 ARG_LIST@[61; 63) 56 NAME_REF@[57; 61)
57 L_PAREN@[61; 62) "(" 57 IDENT@[57; 61) "next"
58 R_PAREN@[62; 63) ")" 58 ARG_LIST@[61; 63)
59 WHITESPACE@[63; 64) " " 59 L_PAREN@[61; 62) "("
60 BLOCK@[64; 66) 60 R_PAREN@[62; 63) ")"
61 L_CURLY@[64; 65) "{" 61 WHITESPACE@[63; 64) " "
62 R_CURLY@[65; 66) "}" 62 BLOCK_EXPR@[64; 66)
63 SEMI@[66; 67) ";" 63 BLOCK@[64; 66)
64 WHITESPACE@[67; 68) "\n" 64 L_CURLY@[64; 65) "{"
65 R_CURLY@[68; 69) "}" 65 R_CURLY@[65; 66) "}"
66 SEMI@[66; 67) ";"
67 WHITESPACE@[67; 68) "\n"
68 R_CURLY@[68; 69) "}"
66 WHITESPACE@[69; 70) "\n" 69 WHITESPACE@[69; 70) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.txt
index 4ece7cd7e..67ffdfd67 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.txt
@@ -8,46 +8,48 @@ SOURCE_FILE@[0; 102)
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; 101) 11 BLOCK_EXPR@[9; 101)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 101)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LOOP_EXPR@[15; 99) 14 WHITESPACE@[10; 15) "\n "
15 LOOP_KW@[15; 19) "loop" 15 LOOP_EXPR@[15; 99)
16 WHITESPACE@[19; 20) " " 16 LOOP_KW@[15; 19) "loop"
17 BLOCK@[20; 99) 17 WHITESPACE@[19; 20) " "
18 L_CURLY@[20; 21) "{" 18 BLOCK_EXPR@[20; 99)
19 WHITESPACE@[21; 30) "\n " 19 BLOCK@[20; 99)
20 EXPR_STMT@[30; 36) 20 L_CURLY@[20; 21) "{"
21 BREAK_EXPR@[30; 35) 21 WHITESPACE@[21; 30) "\n "
22 BREAK_KW@[30; 35) "break" 22 EXPR_STMT@[30; 36)
23 SEMI@[35; 36) ";" 23 BREAK_EXPR@[30; 35)
24 WHITESPACE@[36; 45) "\n " 24 BREAK_KW@[30; 35) "break"
25 EXPR_STMT@[45; 54) 25 SEMI@[35; 36) ";"
26 BREAK_EXPR@[45; 53) 26 WHITESPACE@[36; 45) "\n "
27 BREAK_KW@[45; 50) "break" 27 EXPR_STMT@[45; 54)
28 WHITESPACE@[50; 51) " " 28 BREAK_EXPR@[45; 53)
29 LIFETIME@[51; 53) "\'l" 29 BREAK_KW@[45; 50) "break"
30 SEMI@[53; 54) ";" 30 WHITESPACE@[50; 51) " "
31 WHITESPACE@[54; 63) "\n " 31 LIFETIME@[51; 53) "\'l"
32 EXPR_STMT@[63; 72) 32 SEMI@[53; 54) ";"
33 BREAK_EXPR@[63; 71) 33 WHITESPACE@[54; 63) "\n "
34 BREAK_KW@[63; 68) "break" 34 EXPR_STMT@[63; 72)
35 WHITESPACE@[68; 69) " " 35 BREAK_EXPR@[63; 71)
36 LITERAL@[69; 71) 36 BREAK_KW@[63; 68) "break"
37 INT_NUMBER@[69; 71) "92" 37 WHITESPACE@[68; 69) " "
38 SEMI@[71; 72) ";" 38 LITERAL@[69; 71)
39 WHITESPACE@[72; 81) "\n " 39 INT_NUMBER@[69; 71) "92"
40 EXPR_STMT@[81; 93) 40 SEMI@[71; 72) ";"
41 BREAK_EXPR@[81; 92) 41 WHITESPACE@[72; 81) "\n "
42 BREAK_KW@[81; 86) "break" 42 EXPR_STMT@[81; 93)
43 WHITESPACE@[86; 87) " " 43 BREAK_EXPR@[81; 92)
44 LIFETIME@[87; 89) "\'l" 44 BREAK_KW@[81; 86) "break"
45 WHITESPACE@[89; 90) " " 45 WHITESPACE@[86; 87) " "
46 LITERAL@[90; 92) 46 LIFETIME@[87; 89) "\'l"
47 INT_NUMBER@[90; 92) "92" 47 WHITESPACE@[89; 90) " "
48 SEMI@[92; 93) ";" 48 LITERAL@[90; 92)
49 WHITESPACE@[93; 98) "\n " 49 INT_NUMBER@[90; 92) "92"
50 R_CURLY@[98; 99) "}" 50 SEMI@[92; 93) ";"
51 WHITESPACE@[99; 100) "\n" 51 WHITESPACE@[93; 98) "\n "
52 R_CURLY@[100; 101) "}" 52 R_CURLY@[98; 99) "}"
53 WHITESPACE@[99; 100) "\n"
54 R_CURLY@[100; 101) "}"
53 WHITESPACE@[101; 102) "\n" 55 WHITESPACE@[101; 102) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.txt b/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.txt
index b5b09b2e5..a7dfe167c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.txt
@@ -15,7 +15,8 @@ SOURCE_FILE@[0; 30)
15 L_PAREN@[24; 25) "(" 15 L_PAREN@[24; 25) "("
16 R_PAREN@[25; 26) ")" 16 R_PAREN@[25; 26) ")"
17 WHITESPACE@[26; 27) " " 17 WHITESPACE@[26; 27) " "
18 BLOCK@[27; 29) 18 BLOCK_EXPR@[27; 29)
19 L_CURLY@[27; 28) "{" 19 BLOCK@[27; 29)
20 R_CURLY@[28; 29) "}" 20 L_CURLY@[27; 28) "{"
21 R_CURLY@[28; 29) "}"
21 WHITESPACE@[29; 30) "\n" 22 WHITESPACE@[29; 30) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.txt b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.txt
index 9bfddf5d2..6e226de4b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.txt
@@ -41,38 +41,39 @@ SOURCE_FILE@[0; 71)
41 L_PAREN@[33; 34) "(" 41 L_PAREN@[33; 34) "("
42 R_PAREN@[34; 35) ")" 42 R_PAREN@[34; 35) ")"
43 WHITESPACE@[35; 36) " " 43 WHITESPACE@[35; 36) " "
44 BLOCK@[36; 70) 44 BLOCK_EXPR@[36; 70)
45 L_CURLY@[36; 37) "{" 45 BLOCK@[36; 70)
46 WHITESPACE@[37; 38) " " 46 L_CURLY@[36; 37) "{"
47 EXPR_STMT@[38; 68) 47 WHITESPACE@[37; 38) " "
48 CALL_EXPR@[38; 67) 48 EXPR_STMT@[38; 68)
49 PATH_EXPR@[38; 65) 49 CALL_EXPR@[38; 67)
50 PATH@[38; 65) 50 PATH_EXPR@[38; 65)
51 PATH@[38; 56) 51 PATH@[38; 65)
52 PATH_SEGMENT@[38; 56) 52 PATH@[38; 56)
53 L_ANGLE@[38; 39) "<" 53 PATH_SEGMENT@[38; 56)
54 PATH_TYPE@[39; 44) 54 L_ANGLE@[38; 39) "<"
55 PATH@[39; 44) 55 PATH_TYPE@[39; 44)
56 PATH_SEGMENT@[39; 44) 56 PATH@[39; 44)
57 NAME_REF@[39; 44) 57 PATH_SEGMENT@[39; 44)
58 IDENT@[39; 44) "usize" 58 NAME_REF@[39; 44)
59 WHITESPACE@[44; 45) " " 59 IDENT@[39; 44) "usize"
60 AS_KW@[45; 47) "as" 60 WHITESPACE@[44; 45) " "
61 WHITESPACE@[47; 48) " " 61 AS_KW@[45; 47) "as"
62 PATH_TYPE@[48; 55) 62 WHITESPACE@[47; 48) " "
63 PATH@[48; 55) 63 PATH_TYPE@[48; 55)
64 PATH_SEGMENT@[48; 55) 64 PATH@[48; 55)
65 NAME_REF@[48; 55) 65 PATH_SEGMENT@[48; 55)
66 IDENT@[48; 55) "Default" 66 NAME_REF@[48; 55)
67 R_ANGLE@[55; 56) ">" 67 IDENT@[48; 55) "Default"
68 COLONCOLON@[56; 58) "::" 68 R_ANGLE@[55; 56) ">"
69 PATH_SEGMENT@[58; 65) 69 COLONCOLON@[56; 58) "::"
70 NAME_REF@[58; 65) 70 PATH_SEGMENT@[58; 65)
71 IDENT@[58; 65) "default" 71 NAME_REF@[58; 65)
72 ARG_LIST@[65; 67) 72 IDENT@[58; 65) "default"
73 L_PAREN@[65; 66) "(" 73 ARG_LIST@[65; 67)
74 R_PAREN@[66; 67) ")" 74 L_PAREN@[65; 66) "("
75 SEMI@[67; 68) ";" 75 R_PAREN@[66; 67) ")"
76 WHITESPACE@[68; 69) " " 76 SEMI@[67; 68) ";"
77 R_CURLY@[69; 70) "}" 77 WHITESPACE@[68; 69) " "
78 R_CURLY@[69; 70) "}"
78 WHITESPACE@[70; 71) "\n" 79 WHITESPACE@[70; 71) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.txt
index 477c645d1..042cee879 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.txt
@@ -8,21 +8,22 @@ SOURCE_FILE@[0; 21)
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; 20) 11 BLOCK_EXPR@[9; 20)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 20)
13 WHITESPACE@[10; 11) " " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[11; 18) 14 WHITESPACE@[10; 11) " "
15 INDEX_EXPR@[11; 17) 15 EXPR_STMT@[11; 18)
16 PATH_EXPR@[11; 13) 16 INDEX_EXPR@[11; 17)
17 PATH@[11; 13) 17 PATH_EXPR@[11; 13)
18 PATH_SEGMENT@[11; 13) 18 PATH@[11; 13)
19 NAME_REF@[11; 13) 19 PATH_SEGMENT@[11; 13)
20 IDENT@[11; 13) "xs" 20 NAME_REF@[11; 13)
21 L_BRACK@[13; 14) "[" 21 IDENT@[11; 13) "xs"
22 RANGE_EXPR@[14; 16) 22 L_BRACK@[13; 14) "["
23 DOTDOT@[14; 16) ".." 23 RANGE_EXPR@[14; 16)
24 R_BRACK@[16; 17) "]" 24 DOTDOT@[14; 16) ".."
25 SEMI@[17; 18) ";" 25 R_BRACK@[16; 17) "]"
26 WHITESPACE@[18; 19) " " 26 SEMI@[17; 18) ";"
27 R_CURLY@[19; 20) "}" 27 WHITESPACE@[18; 19) " "
28 R_CURLY@[19; 20) "}"
28 WHITESPACE@[20; 21) "\n" 29 WHITESPACE@[20; 21) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.txt b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.txt
index 882e4a9ae..d180fcf20 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.txt
@@ -11,10 +11,11 @@ SOURCE_FILE@[0; 71)
11 L_PAREN@[13; 14) "(" 11 L_PAREN@[13; 14) "("
12 R_PAREN@[14; 15) ")" 12 R_PAREN@[14; 15) ")"
13 WHITESPACE@[15; 16) " " 13 WHITESPACE@[15; 16) " "
14 BLOCK@[16; 19) 14 BLOCK_EXPR@[16; 19)
15 L_CURLY@[16; 17) "{" 15 BLOCK@[16; 19)
16 WHITESPACE@[17; 18) " " 16 L_CURLY@[16; 17) "{"
17 R_CURLY@[18; 19) "}" 17 WHITESPACE@[17; 18) " "
18 R_CURLY@[18; 19) "}"
18 WHITESPACE@[19; 20) "\n" 19 WHITESPACE@[19; 20) "\n"
19 STRUCT_DEF@[20; 49) 20 STRUCT_DEF@[20; 49)
20 STRUCT_KW@[20; 26) "struct" 21 STRUCT_KW@[20; 26) "struct"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.txt
index dd8946ad2..e8003bf91 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.txt
@@ -8,140 +8,141 @@ SOURCE_FILE@[0; 118)
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; 117) 11 BLOCK_EXPR@[9; 117)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 117)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 27) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 27)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 PLACEHOLDER_PAT@[19; 20) 17 WHITESPACE@[18; 19) " "
18 UNDERSCORE@[19; 20) "_" 18 PLACEHOLDER_PAT@[19; 20)
19 WHITESPACE@[20; 21) " " 19 UNDERSCORE@[19; 20) "_"
20 EQ@[21; 22) "=" 20 WHITESPACE@[20; 21) " "
21 WHITESPACE@[22; 23) " " 21 EQ@[21; 22) "="
22 CALL_EXPR@[23; 26) 22 WHITESPACE@[22; 23) " "
23 PATH_EXPR@[23; 24) 23 CALL_EXPR@[23; 26)
24 PATH@[23; 24) 24 PATH_EXPR@[23; 24)
25 PATH_SEGMENT@[23; 24) 25 PATH@[23; 24)
26 NAME_REF@[23; 24) 26 PATH_SEGMENT@[23; 24)
27 IDENT@[23; 24) "f" 27 NAME_REF@[23; 24)
28 ARG_LIST@[24; 26) 28 IDENT@[23; 24) "f"
29 L_PAREN@[24; 25) "(" 29 ARG_LIST@[24; 26)
30 R_PAREN@[25; 26) ")" 30 L_PAREN@[24; 25) "("
31 SEMI@[26; 27) ";" 31 R_PAREN@[25; 26) ")"
32 WHITESPACE@[27; 32) "\n " 32 SEMI@[26; 27) ";"
33 LET_STMT@[32; 54) 33 WHITESPACE@[27; 32) "\n "
34 LET_KW@[32; 35) "let" 34 LET_STMT@[32; 54)
35 WHITESPACE@[35; 36) " " 35 LET_KW@[32; 35) "let"
36 PLACEHOLDER_PAT@[36; 37) 36 WHITESPACE@[35; 36) " "
37 UNDERSCORE@[36; 37) "_" 37 PLACEHOLDER_PAT@[36; 37)
38 WHITESPACE@[37; 38) " " 38 UNDERSCORE@[36; 37) "_"
39 EQ@[38; 39) "=" 39 WHITESPACE@[37; 38) " "
40 WHITESPACE@[39; 40) " " 40 EQ@[38; 39) "="
41 CALL_EXPR@[40; 53) 41 WHITESPACE@[39; 40) " "
42 CALL_EXPR@[40; 46) 42 CALL_EXPR@[40; 53)
43 CALL_EXPR@[40; 43) 43 CALL_EXPR@[40; 46)
44 PATH_EXPR@[40; 41) 44 CALL_EXPR@[40; 43)
45 PATH@[40; 41) 45 PATH_EXPR@[40; 41)
46 PATH_SEGMENT@[40; 41) 46 PATH@[40; 41)
47 NAME_REF@[40; 41) 47 PATH_SEGMENT@[40; 41)
48 IDENT@[40; 41) "f" 48 NAME_REF@[40; 41)
49 ARG_LIST@[41; 43) 49 IDENT@[40; 41) "f"
50 L_PAREN@[41; 42) "(" 50 ARG_LIST@[41; 43)
51 R_PAREN@[42; 43) ")" 51 L_PAREN@[41; 42) "("
52 ARG_LIST@[43; 46) 52 R_PAREN@[42; 43) ")"
53 L_PAREN@[43; 44) "(" 53 ARG_LIST@[43; 46)
54 LITERAL@[44; 45) 54 L_PAREN@[43; 44) "("
55 INT_NUMBER@[44; 45) "1" 55 LITERAL@[44; 45)
56 R_PAREN@[45; 46) ")" 56 INT_NUMBER@[44; 45) "1"
57 ARG_LIST@[46; 53) 57 R_PAREN@[45; 46) ")"
58 L_PAREN@[46; 47) "(" 58 ARG_LIST@[46; 53)
59 LITERAL@[47; 48) 59 L_PAREN@[46; 47) "("
60 INT_NUMBER@[47; 48) "1" 60 LITERAL@[47; 48)
61 COMMA@[48; 49) "," 61 INT_NUMBER@[47; 48) "1"
62 WHITESPACE@[49; 50) " " 62 COMMA@[48; 49) ","
63 LITERAL@[50; 51) 63 WHITESPACE@[49; 50) " "
64 INT_NUMBER@[50; 51) "2" 64 LITERAL@[50; 51)
65 COMMA@[51; 52) "," 65 INT_NUMBER@[50; 51) "2"
66 R_PAREN@[52; 53) ")" 66 COMMA@[51; 52) ","
67 SEMI@[53; 54) ";" 67 R_PAREN@[52; 53) ")"
68 WHITESPACE@[54; 59) "\n " 68 SEMI@[53; 54) ";"
69 LET_STMT@[59; 84) 69 WHITESPACE@[54; 59) "\n "
70 LET_KW@[59; 62) "let" 70 LET_STMT@[59; 84)
71 WHITESPACE@[62; 63) " " 71 LET_KW@[59; 62) "let"
72 PLACEHOLDER_PAT@[63; 64) 72 WHITESPACE@[62; 63) " "
73 UNDERSCORE@[63; 64) "_" 73 PLACEHOLDER_PAT@[63; 64)
74 WHITESPACE@[64; 65) " " 74 UNDERSCORE@[63; 64) "_"
75 EQ@[65; 66) "=" 75 WHITESPACE@[64; 65) " "
76 WHITESPACE@[66; 67) " " 76 EQ@[65; 66) "="
77 CALL_EXPR@[67; 83) 77 WHITESPACE@[66; 67) " "
78 PATH_EXPR@[67; 68) 78 CALL_EXPR@[67; 83)
79 PATH@[67; 68) 79 PATH_EXPR@[67; 68)
80 PATH_SEGMENT@[67; 68) 80 PATH@[67; 68)
81 NAME_REF@[67; 68) 81 PATH_SEGMENT@[67; 68)
82 IDENT@[67; 68) "f" 82 NAME_REF@[67; 68)
83 ARG_LIST@[68; 83) 83 IDENT@[67; 68) "f"
84 L_PAREN@[68; 69) "(" 84 ARG_LIST@[68; 83)
85 CALL_EXPR@[69; 82) 85 L_PAREN@[68; 69) "("
86 PATH_EXPR@[69; 80) 86 CALL_EXPR@[69; 82)
87 PATH@[69; 80) 87 PATH_EXPR@[69; 80)
88 PATH@[69; 74) 88 PATH@[69; 80)
89 PATH_SEGMENT@[69; 74) 89 PATH@[69; 74)
90 L_ANGLE@[69; 70) "<" 90 PATH_SEGMENT@[69; 74)
91 PATH_TYPE@[70; 73) 91 L_ANGLE@[69; 70) "<"
92 PATH@[70; 73) 92 PATH_TYPE@[70; 73)
93 PATH_SEGMENT@[70; 73) 93 PATH@[70; 73)
94 NAME_REF@[70; 73) 94 PATH_SEGMENT@[70; 73)
95 IDENT@[70; 73) "Foo" 95 NAME_REF@[70; 73)
96 R_ANGLE@[73; 74) ">" 96 IDENT@[70; 73) "Foo"
97 COLONCOLON@[74; 76) "::" 97 R_ANGLE@[73; 74) ">"
98 PATH_SEGMENT@[76; 80) 98 COLONCOLON@[74; 76) "::"
99 NAME_REF@[76; 80) 99 PATH_SEGMENT@[76; 80)
100 IDENT@[76; 80) "func" 100 NAME_REF@[76; 80)
101 ARG_LIST@[80; 82) 101 IDENT@[76; 80) "func"
102 L_PAREN@[80; 81) "(" 102 ARG_LIST@[80; 82)
103 R_PAREN@[81; 82) ")" 103 L_PAREN@[80; 81) "("
104 R_PAREN@[82; 83) ")" 104 R_PAREN@[81; 82) ")"
105 SEMI@[83; 84) ";" 105 R_PAREN@[82; 83) ")"
106 WHITESPACE@[84; 89) "\n " 106 SEMI@[83; 84) ";"
107 EXPR_STMT@[89; 115) 107 WHITESPACE@[84; 89) "\n "
108 CALL_EXPR@[89; 114) 108 EXPR_STMT@[89; 115)
109 PATH_EXPR@[89; 90) 109 CALL_EXPR@[89; 114)
110 PATH@[89; 90) 110 PATH_EXPR@[89; 90)
111 PATH_SEGMENT@[89; 90) 111 PATH@[89; 90)
112 NAME_REF@[89; 90) 112 PATH_SEGMENT@[89; 90)
113 IDENT@[89; 90) "f" 113 NAME_REF@[89; 90)
114 ARG_LIST@[90; 114) 114 IDENT@[89; 90) "f"
115 L_PAREN@[90; 91) "(" 115 ARG_LIST@[90; 114)
116 CALL_EXPR@[91; 113) 116 L_PAREN@[90; 91) "("
117 PATH_EXPR@[91; 111) 117 CALL_EXPR@[91; 113)
118 PATH@[91; 111) 118 PATH_EXPR@[91; 111)
119 PATH@[91; 105) 119 PATH@[91; 111)
120 PATH_SEGMENT@[91; 105) 120 PATH@[91; 105)
121 L_ANGLE@[91; 92) "<" 121 PATH_SEGMENT@[91; 105)
122 PATH_TYPE@[92; 95) 122 L_ANGLE@[91; 92) "<"
123 PATH@[92; 95) 123 PATH_TYPE@[92; 95)
124 PATH_SEGMENT@[92; 95) 124 PATH@[92; 95)
125 NAME_REF@[92; 95) 125 PATH_SEGMENT@[92; 95)
126 IDENT@[92; 95) "Foo" 126 NAME_REF@[92; 95)
127 WHITESPACE@[95; 96) " " 127 IDENT@[92; 95) "Foo"
128 AS_KW@[96; 98) "as" 128 WHITESPACE@[95; 96) " "
129 WHITESPACE@[98; 99) " " 129 AS_KW@[96; 98) "as"
130 PATH_TYPE@[99; 104) 130 WHITESPACE@[98; 99) " "
131 PATH@[99; 104) 131 PATH_TYPE@[99; 104)
132 PATH_SEGMENT@[99; 104) 132 PATH@[99; 104)
133 NAME_REF@[99; 104) 133 PATH_SEGMENT@[99; 104)
134 IDENT@[99; 104) "Trait" 134 NAME_REF@[99; 104)
135 R_ANGLE@[104; 105) ">" 135 IDENT@[99; 104) "Trait"
136 COLONCOLON@[105; 107) "::" 136 R_ANGLE@[104; 105) ">"
137 PATH_SEGMENT@[107; 111) 137 COLONCOLON@[105; 107) "::"
138 NAME_REF@[107; 111) 138 PATH_SEGMENT@[107; 111)
139 IDENT@[107; 111) "func" 139 NAME_REF@[107; 111)
140 ARG_LIST@[111; 113) 140 IDENT@[107; 111) "func"
141 L_PAREN@[111; 112) "(" 141 ARG_LIST@[111; 113)
142 R_PAREN@[112; 113) ")" 142 L_PAREN@[111; 112) "("
143 R_PAREN@[113; 114) ")" 143 R_PAREN@[112; 113) ")"
144 SEMI@[114; 115) ";" 144 R_PAREN@[113; 114) ")"
145 WHITESPACE@[115; 116) "\n" 145 SEMI@[114; 115) ";"
146 R_CURLY@[116; 117) "}" 146 WHITESPACE@[115; 116) "\n"
147 R_CURLY@[116; 117) "}"
147 WHITESPACE@[117; 118) "\n" 148 WHITESPACE@[117; 118) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.txt b/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.txt
index d1a8c560a..e75d569f0 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.txt
@@ -8,21 +8,23 @@ SOURCE_FILE@[0; 21)
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; 20) 11 BLOCK_EXPR@[7; 20)
12 L_CURLY@[7; 8) "{" 12 BLOCK@[7; 20)
13 WHITESPACE@[8; 9) " " 13 L_CURLY@[7; 8) "{"
14 FN_DEF@[9; 18) 14 WHITESPACE@[8; 9) " "
15 FN_KW@[9; 11) "fn" 15 FN_DEF@[9; 18)
16 WHITESPACE@[11; 12) " " 16 FN_KW@[9; 11) "fn"
17 NAME@[12; 13) 17 WHITESPACE@[11; 12) " "
18 IDENT@[12; 13) "b" 18 NAME@[12; 13)
19 PARAM_LIST@[13; 15) 19 IDENT@[12; 13) "b"
20 L_PAREN@[13; 14) "(" 20 PARAM_LIST@[13; 15)
21 R_PAREN@[14; 15) ")" 21 L_PAREN@[13; 14) "("
22 WHITESPACE@[15; 16) " " 22 R_PAREN@[14; 15) ")"
23 BLOCK@[16; 18) 23 WHITESPACE@[15; 16) " "
24 L_CURLY@[16; 17) "{" 24 BLOCK_EXPR@[16; 18)
25 R_CURLY@[17; 18) "}" 25 BLOCK@[16; 18)
26 WHITESPACE@[18; 19) " " 26 L_CURLY@[16; 17) "{"
27 R_CURLY@[19; 20) "}" 27 R_CURLY@[17; 18) "}"
28 WHITESPACE@[18; 19) " "
29 R_CURLY@[19; 20) "}"
28 WHITESPACE@[20; 21) "\n" 30 WHITESPACE@[20; 21) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt
index f85d6a4bc..33886154d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.txt
@@ -40,7 +40,8 @@ SOURCE_FILE@[0; 35)
40 PARAM_LIST@[30; 32) 40 PARAM_LIST@[30; 32)
41 L_PAREN@[30; 31) "(" 41 L_PAREN@[30; 31) "("
42 R_PAREN@[31; 32) ")" 42 R_PAREN@[31; 32) ")"
43 BLOCK@[32; 34) 43 BLOCK_EXPR@[32; 34)
44 L_CURLY@[32; 33) "{" 44 BLOCK@[32; 34)
45 R_CURLY@[33; 34) "}" 45 L_CURLY@[32; 33) "{"
46 R_CURLY@[33; 34) "}"
46 WHITESPACE@[34; 35) "\n" 47 WHITESPACE@[34; 35) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.txt b/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.txt
index bb948c8d8..02f2a9db6 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.txt
@@ -34,9 +34,10 @@ SOURCE_FILE@[0; 58)
34 LIFETIME@[20; 22) "\'f" 34 LIFETIME@[20; 22) "\'f"
35 R_ANGLE@[22; 23) ">" 35 R_ANGLE@[22; 23) ">"
36 WHITESPACE@[23; 24) " " 36 WHITESPACE@[23; 24) " "
37 BLOCK@[24; 26) 37 BLOCK_EXPR@[24; 26)
38 L_CURLY@[24; 25) "{" 38 BLOCK@[24; 26)
39 R_CURLY@[25; 26) "}" 39 L_CURLY@[24; 25) "{"
40 R_CURLY@[25; 26) "}"
40 WHITESPACE@[26; 27) "\n" 41 WHITESPACE@[26; 27) "\n"
41 FN_DEF@[27; 57) 42 FN_DEF@[27; 57)
42 FN_KW@[27; 29) "fn" 43 FN_KW@[27; 29) "fn"
@@ -75,7 +76,8 @@ SOURCE_FILE@[0; 58)
75 LIFETIME@[51; 53) "\'f" 76 LIFETIME@[51; 53) "\'f"
76 R_ANGLE@[53; 54) ">" 77 R_ANGLE@[53; 54) ">"
77 WHITESPACE@[54; 55) " " 78 WHITESPACE@[54; 55) " "
78 BLOCK@[55; 57) 79 BLOCK_EXPR@[55; 57)
79 L_CURLY@[55; 56) "{" 80 BLOCK@[55; 57)
80 R_CURLY@[56; 57) "}" 81 L_CURLY@[55; 56) "{"
82 R_CURLY@[56; 57) "}"
81 WHITESPACE@[57; 58) "\n" 83 WHITESPACE@[57; 58) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.txt
index bc4b97c9f..f1018fcab 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.txt
@@ -8,88 +8,89 @@ SOURCE_FILE@[0; 91)
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; 90) 11 BLOCK_EXPR@[9; 90)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 90)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 25) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 25)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 PLACEHOLDER_PAT@[19; 20) 17 WHITESPACE@[18; 19) " "
18 UNDERSCORE@[19; 20) "_" 18 PLACEHOLDER_PAT@[19; 20)
19 WHITESPACE@[20; 21) " " 19 UNDERSCORE@[19; 20) "_"
20 EQ@[21; 22) "=" 20 WHITESPACE@[20; 21) " "
21 WHITESPACE@[22; 23) " " 21 EQ@[21; 22) "="
22 PATH_EXPR@[23; 24) 22 WHITESPACE@[22; 23) " "
23 PATH@[23; 24) 23 PATH_EXPR@[23; 24)
24 PATH_SEGMENT@[23; 24) 24 PATH@[23; 24)
25 NAME_REF@[23; 24) 25 PATH_SEGMENT@[23; 24)
26 IDENT@[23; 24) "a" 26 NAME_REF@[23; 24)
27 SEMI@[24; 25) ";" 27 IDENT@[23; 24) "a"
28 WHITESPACE@[25; 30) "\n " 28 SEMI@[24; 25) ";"
29 LET_STMT@[30; 43) 29 WHITESPACE@[25; 30) "\n "
30 LET_KW@[30; 33) "let" 30 LET_STMT@[30; 43)
31 WHITESPACE@[33; 34) " " 31 LET_KW@[30; 33) "let"
32 PLACEHOLDER_PAT@[34; 35) 32 WHITESPACE@[33; 34) " "
33 UNDERSCORE@[34; 35) "_" 33 PLACEHOLDER_PAT@[34; 35)
34 WHITESPACE@[35; 36) " " 34 UNDERSCORE@[34; 35) "_"
35 EQ@[36; 37) "=" 35 WHITESPACE@[35; 36) " "
36 WHITESPACE@[37; 38) " " 36 EQ@[36; 37) "="
37 PATH_EXPR@[38; 42) 37 WHITESPACE@[37; 38) " "
38 PATH@[38; 42) 38 PATH_EXPR@[38; 42)
39 PATH@[38; 39) 39 PATH@[38; 42)
40 PATH_SEGMENT@[38; 39) 40 PATH@[38; 39)
41 NAME_REF@[38; 39) 41 PATH_SEGMENT@[38; 39)
42 IDENT@[38; 39) "a" 42 NAME_REF@[38; 39)
43 COLONCOLON@[39; 41) "::" 43 IDENT@[38; 39) "a"
44 PATH_SEGMENT@[41; 42) 44 COLONCOLON@[39; 41) "::"
45 NAME_REF@[41; 42) 45 PATH_SEGMENT@[41; 42)
46 IDENT@[41; 42) "b" 46 NAME_REF@[41; 42)
47 SEMI@[42; 43) ";" 47 IDENT@[41; 42) "b"
48 WHITESPACE@[43; 48) "\n " 48 SEMI@[42; 43) ";"
49 LET_STMT@[48; 65) 49 WHITESPACE@[43; 48) "\n "
50 LET_KW@[48; 51) "let" 50 LET_STMT@[48; 65)
51 WHITESPACE@[51; 52) " " 51 LET_KW@[48; 51) "let"
52 PLACEHOLDER_PAT@[52; 53) 52 WHITESPACE@[51; 52) " "
53 UNDERSCORE@[52; 53) "_" 53 PLACEHOLDER_PAT@[52; 53)
54 WHITESPACE@[53; 54) " " 54 UNDERSCORE@[52; 53) "_"
55 EQ@[54; 55) "=" 55 WHITESPACE@[53; 54) " "
56 WHITESPACE@[55; 56) " " 56 EQ@[54; 55) "="
57 PATH_EXPR@[56; 64) 57 WHITESPACE@[55; 56) " "
58 PATH@[56; 64) 58 PATH_EXPR@[56; 64)
59 PATH_SEGMENT@[56; 64) 59 PATH@[56; 64)
60 COLONCOLON@[56; 58) "::" 60 PATH_SEGMENT@[56; 64)
61 NAME_REF@[58; 59) 61 COLONCOLON@[56; 58) "::"
62 IDENT@[58; 59) "a" 62 NAME_REF@[58; 59)
63 TYPE_ARG_LIST@[59; 64) 63 IDENT@[58; 59) "a"
64 COLONCOLON@[59; 61) "::" 64 TYPE_ARG_LIST@[59; 64)
65 L_ANGLE@[61; 62) "<" 65 COLONCOLON@[59; 61) "::"
66 TYPE_ARG@[62; 63) 66 L_ANGLE@[61; 62) "<"
67 PATH_TYPE@[62; 63) 67 TYPE_ARG@[62; 63)
68 PATH@[62; 63) 68 PATH_TYPE@[62; 63)
69 PATH_SEGMENT@[62; 63) 69 PATH@[62; 63)
70 NAME_REF@[62; 63) 70 PATH_SEGMENT@[62; 63)
71 IDENT@[62; 63) "b" 71 NAME_REF@[62; 63)
72 R_ANGLE@[63; 64) ">" 72 IDENT@[62; 63) "b"
73 SEMI@[64; 65) ";" 73 R_ANGLE@[63; 64) ">"
74 WHITESPACE@[65; 70) "\n " 74 SEMI@[64; 65) ";"
75 LET_STMT@[70; 88) 75 WHITESPACE@[65; 70) "\n "
76 LET_KW@[70; 73) "let" 76 LET_STMT@[70; 88)
77 WHITESPACE@[73; 74) " " 77 LET_KW@[70; 73) "let"
78 PLACEHOLDER_PAT@[74; 75) 78 WHITESPACE@[73; 74) " "
79 UNDERSCORE@[74; 75) "_" 79 PLACEHOLDER_PAT@[74; 75)
80 WHITESPACE@[75; 76) " " 80 UNDERSCORE@[74; 75) "_"
81 EQ@[76; 77) "=" 81 WHITESPACE@[75; 76) " "
82 WHITESPACE@[77; 78) " " 82 EQ@[76; 77) "="
83 MACRO_CALL@[78; 87) 83 WHITESPACE@[77; 78) " "
84 PATH@[78; 84) 84 MACRO_CALL@[78; 87)
85 PATH_SEGMENT@[78; 84) 85 PATH@[78; 84)
86 NAME_REF@[78; 84) 86 PATH_SEGMENT@[78; 84)
87 IDENT@[78; 84) "format" 87 NAME_REF@[78; 84)
88 EXCL@[84; 85) "!" 88 IDENT@[78; 84) "format"
89 TOKEN_TREE@[85; 87) 89 EXCL@[84; 85) "!"
90 L_PAREN@[85; 86) "(" 90 TOKEN_TREE@[85; 87)
91 R_PAREN@[86; 87) ")" 91 L_PAREN@[85; 86) "("
92 SEMI@[87; 88) ";" 92 R_PAREN@[86; 87) ")"
93 WHITESPACE@[88; 89) "\n" 93 SEMI@[87; 88) ";"
94 R_CURLY@[89; 90) "}" 94 WHITESPACE@[88; 89) "\n"
95 R_CURLY@[89; 90) "}"
95 WHITESPACE@[90; 91) "\n" 96 WHITESPACE@[90; 91) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.txt b/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.txt
index ab5dad438..2b28cec67 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.txt
@@ -8,69 +8,70 @@ SOURCE_FILE@[0; 113)
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; 112) 11 BLOCK_EXPR@[10; 112)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 112)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 MATCH_EXPR@[16; 110) 14 WHITESPACE@[11; 16) "\n "
15 MATCH_KW@[16; 21) "match" 15 MATCH_EXPR@[16; 110)
16 WHITESPACE@[21; 22) " " 16 MATCH_KW@[16; 21) "match"
17 TUPLE_EXPR@[22; 24) 17 WHITESPACE@[21; 22) " "
18 L_PAREN@[22; 23) "(" 18 TUPLE_EXPR@[22; 24)
19 R_PAREN@[23; 24) ")" 19 L_PAREN@[22; 23) "("
20 WHITESPACE@[24; 25) " " 20 R_PAREN@[23; 24) ")"
21 MATCH_ARM_LIST@[25; 110) 21 WHITESPACE@[24; 25) " "
22 L_CURLY@[25; 26) "{" 22 MATCH_ARM_LIST@[25; 110)
23 WHITESPACE@[26; 35) "\n " 23 L_CURLY@[25; 26) "{"
24 MATCH_ARM@[35; 43) 24 WHITESPACE@[26; 35) "\n "
25 LITERAL_PAT@[35; 37) 25 MATCH_ARM@[35; 43)
26 MINUS@[35; 36) "-" 26 LITERAL_PAT@[35; 37)
27 LITERAL@[36; 37) 27 MINUS@[35; 36) "-"
28 INT_NUMBER@[36; 37) "1" 28 LITERAL@[36; 37)
29 WHITESPACE@[37; 38) " " 29 INT_NUMBER@[36; 37) "1"
30 FAT_ARROW@[38; 40) "=>" 30 WHITESPACE@[37; 38) " "
31 WHITESPACE@[40; 41) " " 31 FAT_ARROW@[38; 40) "=>"
32 TUPLE_EXPR@[41; 43) 32 WHITESPACE@[40; 41) " "
33 L_PAREN@[41; 42) "(" 33 TUPLE_EXPR@[41; 43)
34 R_PAREN@[42; 43) ")" 34 L_PAREN@[41; 42) "("
35 COMMA@[43; 44) "," 35 R_PAREN@[42; 43) ")"
36 WHITESPACE@[44; 53) "\n " 36 COMMA@[43; 44) ","
37 MATCH_ARM@[53; 61) 37 WHITESPACE@[44; 53) "\n "
38 LITERAL_PAT@[53; 55) 38 MATCH_ARM@[53; 61)
39 LITERAL@[53; 55) 39 LITERAL_PAT@[53; 55)
40 INT_NUMBER@[53; 55) "92" 40 LITERAL@[53; 55)
41 WHITESPACE@[55; 56) " " 41 INT_NUMBER@[53; 55) "92"
42 FAT_ARROW@[56; 58) "=>" 42 WHITESPACE@[55; 56) " "
43 WHITESPACE@[58; 59) " " 43 FAT_ARROW@[56; 58) "=>"
44 TUPLE_EXPR@[59; 61) 44 WHITESPACE@[58; 59) " "
45 L_PAREN@[59; 60) "(" 45 TUPLE_EXPR@[59; 61)
46 R_PAREN@[60; 61) ")" 46 L_PAREN@[59; 60) "("
47 COMMA@[61; 62) "," 47 R_PAREN@[60; 61) ")"
48 WHITESPACE@[62; 71) "\n " 48 COMMA@[61; 62) ","
49 MATCH_ARM@[71; 80) 49 WHITESPACE@[62; 71) "\n "
50 LITERAL_PAT@[71; 74) 50 MATCH_ARM@[71; 80)
51 LITERAL@[71; 74) 51 LITERAL_PAT@[71; 74)
52 CHAR@[71; 74) "\'c\'" 52 LITERAL@[71; 74)
53 WHITESPACE@[74; 75) " " 53 CHAR@[71; 74) "\'c\'"
54 FAT_ARROW@[75; 77) "=>" 54 WHITESPACE@[74; 75) " "
55 WHITESPACE@[77; 78) " " 55 FAT_ARROW@[75; 77) "=>"
56 TUPLE_EXPR@[78; 80) 56 WHITESPACE@[77; 78) " "
57 L_PAREN@[78; 79) "(" 57 TUPLE_EXPR@[78; 80)
58 R_PAREN@[79; 80) ")" 58 L_PAREN@[78; 79) "("
59 COMMA@[80; 81) "," 59 R_PAREN@[79; 80) ")"
60 WHITESPACE@[81; 90) "\n " 60 COMMA@[80; 81) ","
61 MATCH_ARM@[90; 103) 61 WHITESPACE@[81; 90) "\n "
62 LITERAL_PAT@[90; 97) 62 MATCH_ARM@[90; 103)
63 LITERAL@[90; 97) 63 LITERAL_PAT@[90; 97)
64 STRING@[90; 97) "\"hello\"" 64 LITERAL@[90; 97)
65 WHITESPACE@[97; 98) " " 65 STRING@[90; 97) "\"hello\""
66 FAT_ARROW@[98; 100) "=>" 66 WHITESPACE@[97; 98) " "
67 WHITESPACE@[100; 101) " " 67 FAT_ARROW@[98; 100) "=>"
68 TUPLE_EXPR@[101; 103) 68 WHITESPACE@[100; 101) " "
69 L_PAREN@[101; 102) "(" 69 TUPLE_EXPR@[101; 103)
70 R_PAREN@[102; 103) ")" 70 L_PAREN@[101; 102) "("
71 COMMA@[103; 104) "," 71 R_PAREN@[102; 103) ")"
72 WHITESPACE@[104; 109) "\n " 72 COMMA@[103; 104) ","
73 R_CURLY@[109; 110) "}" 73 WHITESPACE@[104; 109) "\n "
74 WHITESPACE@[110; 111) "\n" 74 R_CURLY@[109; 110) "}"
75 R_CURLY@[111; 112) "}" 75 WHITESPACE@[110; 111) "\n"
76 R_CURLY@[111; 112) "}"
76 WHITESPACE@[112; 113) "\n" 77 WHITESPACE@[112; 113) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.txt b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.txt
index c86a0db3f..9a9a13370 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.txt
@@ -104,7 +104,8 @@ SOURCE_FILE@[0; 116)
104 TYPE_BOUND@[110; 112) 104 TYPE_BOUND@[110; 112)
105 LIFETIME@[110; 112) "\'a" 105 LIFETIME@[110; 112) "\'a"
106 WHITESPACE@[112; 113) "\n" 106 WHITESPACE@[112; 113) "\n"
107 BLOCK@[113; 115) 107 BLOCK_EXPR@[113; 115)
108 L_CURLY@[113; 114) "{" 108 BLOCK@[113; 115)
109 R_CURLY@[114; 115) "}" 109 L_CURLY@[113; 114) "{"
110 R_CURLY@[114; 115) "}"
110 WHITESPACE@[115; 116) "\n" 111 WHITESPACE@[115; 116) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.txt b/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.txt
index 7a8b81983..9788197be 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.txt
@@ -10,7 +10,8 @@ SOURCE_FILE@[0; 18)
10 L_PAREN@[12; 13) "(" 10 L_PAREN@[12; 13) "("
11 R_PAREN@[13; 14) ")" 11 R_PAREN@[13; 14) ")"
12 WHITESPACE@[14; 15) " " 12 WHITESPACE@[14; 15) " "
13 BLOCK@[15; 17) 13 BLOCK_EXPR@[15; 17)
14 L_CURLY@[15; 16) "{" 14 BLOCK@[15; 17)
15 R_CURLY@[16; 17) "}" 15 L_CURLY@[15; 16) "{"
16 R_CURLY@[16; 17) "}"
16 WHITESPACE@[17; 18) "\n" 17 WHITESPACE@[17; 18) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.txt b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.txt
index 1b7e9b905..3d659ce10 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.txt
@@ -8,75 +8,76 @@ SOURCE_FILE@[0; 112)
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; 111) 11 BLOCK_EXPR@[10; 111)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 111)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 MATCH_EXPR@[16; 109) 14 WHITESPACE@[11; 16) "\n "
15 MATCH_KW@[16; 21) "match" 15 MATCH_EXPR@[16; 109)
16 WHITESPACE@[21; 22) " " 16 MATCH_KW@[16; 21) "match"
17 LITERAL@[22; 24) 17 WHITESPACE@[21; 22) " "
18 INT_NUMBER@[22; 24) "92" 18 LITERAL@[22; 24)
19 WHITESPACE@[24; 25) " " 19 INT_NUMBER@[22; 24) "92"
20 MATCH_ARM_LIST@[25; 109) 20 WHITESPACE@[24; 25) " "
21 L_CURLY@[25; 26) "{" 21 MATCH_ARM_LIST@[25; 109)
22 WHITESPACE@[26; 35) "\n " 22 L_CURLY@[25; 26) "{"
23 MATCH_ARM@[35; 50) 23 WHITESPACE@[26; 35) "\n "
24 RANGE_PAT@[35; 44) 24 MATCH_ARM@[35; 50)
25 LITERAL_PAT@[35; 36) 25 RANGE_PAT@[35; 44)
26 LITERAL@[35; 36) 26 LITERAL_PAT@[35; 36)
27 INT_NUMBER@[35; 36) "0" 27 LITERAL@[35; 36)
28 WHITESPACE@[36; 37) " " 28 INT_NUMBER@[35; 36) "0"
29 DOTDOTDOT@[37; 40) "..." 29 WHITESPACE@[36; 37) " "
30 WHITESPACE@[40; 41) " " 30 DOTDOTDOT@[37; 40) "..."
31 LITERAL_PAT@[41; 44) 31 WHITESPACE@[40; 41) " "
32 LITERAL@[41; 44) 32 LITERAL_PAT@[41; 44)
33 INT_NUMBER@[41; 44) "100" 33 LITERAL@[41; 44)
34 WHITESPACE@[44; 45) " " 34 INT_NUMBER@[41; 44) "100"
35 FAT_ARROW@[45; 47) "=>" 35 WHITESPACE@[44; 45) " "
36 WHITESPACE@[47; 48) " " 36 FAT_ARROW@[45; 47) "=>"
37 TUPLE_EXPR@[48; 50) 37 WHITESPACE@[47; 48) " "
38 L_PAREN@[48; 49) "(" 38 TUPLE_EXPR@[48; 50)
39 R_PAREN@[49; 50) ")" 39 L_PAREN@[48; 49) "("
40 COMMA@[50; 51) "," 40 R_PAREN@[49; 50) ")"
41 WHITESPACE@[51; 60) "\n " 41 COMMA@[50; 51) ","
42 MATCH_ARM@[60; 77) 42 WHITESPACE@[51; 60) "\n "
43 RANGE_PAT@[60; 71) 43 MATCH_ARM@[60; 77)
44 LITERAL_PAT@[60; 63) 44 RANGE_PAT@[60; 71)
45 LITERAL@[60; 63) 45 LITERAL_PAT@[60; 63)
46 INT_NUMBER@[60; 63) "101" 46 LITERAL@[60; 63)
47 WHITESPACE@[63; 64) " " 47 INT_NUMBER@[60; 63) "101"
48 DOTDOTEQ@[64; 67) "..=" 48 WHITESPACE@[63; 64) " "
49 WHITESPACE@[67; 68) " " 49 DOTDOTEQ@[64; 67) "..="
50 LITERAL_PAT@[68; 71) 50 WHITESPACE@[67; 68) " "
51 LITERAL@[68; 71) 51 LITERAL_PAT@[68; 71)
52 INT_NUMBER@[68; 71) "200" 52 LITERAL@[68; 71)
53 WHITESPACE@[71; 72) " " 53 INT_NUMBER@[68; 71) "200"
54 FAT_ARROW@[72; 74) "=>" 54 WHITESPACE@[71; 72) " "
55 WHITESPACE@[74; 75) " " 55 FAT_ARROW@[72; 74) "=>"
56 TUPLE_EXPR@[75; 77) 56 WHITESPACE@[74; 75) " "
57 L_PAREN@[75; 76) "(" 57 TUPLE_EXPR@[75; 77)
58 R_PAREN@[76; 77) ")" 58 L_PAREN@[75; 76) "("
59 COMMA@[77; 78) "," 59 R_PAREN@[76; 77) ")"
60 WHITESPACE@[78; 87) "\n " 60 COMMA@[77; 78) ","
61 MATCH_ARM@[87; 102) 61 WHITESPACE@[78; 87) "\n "
62 RANGE_PAT@[87; 97) 62 MATCH_ARM@[87; 102)
63 LITERAL_PAT@[87; 90) 63 RANGE_PAT@[87; 97)
64 LITERAL@[87; 90) 64 LITERAL_PAT@[87; 90)
65 INT_NUMBER@[87; 90) "200" 65 LITERAL@[87; 90)
66 WHITESPACE@[90; 91) " " 66 INT_NUMBER@[87; 90) "200"
67 DOTDOT@[91; 93) ".." 67 WHITESPACE@[90; 91) " "
68 WHITESPACE@[93; 94) " " 68 DOTDOT@[91; 93) ".."
69 LITERAL_PAT@[94; 97) 69 WHITESPACE@[93; 94) " "
70 LITERAL@[94; 97) 70 LITERAL_PAT@[94; 97)
71 INT_NUMBER@[94; 97) "301" 71 LITERAL@[94; 97)
72 FAT_ARROW@[97; 99) "=>" 72 INT_NUMBER@[94; 97) "301"
73 WHITESPACE@[99; 100) " " 73 FAT_ARROW@[97; 99) "=>"
74 TUPLE_EXPR@[100; 102) 74 WHITESPACE@[99; 100) " "
75 L_PAREN@[100; 101) "(" 75 TUPLE_EXPR@[100; 102)
76 R_PAREN@[101; 102) ")" 76 L_PAREN@[100; 101) "("
77 COMMA@[102; 103) "," 77 R_PAREN@[101; 102) ")"
78 WHITESPACE@[103; 108) "\n " 78 COMMA@[102; 103) ","
79 R_CURLY@[108; 109) "}" 79 WHITESPACE@[103; 108) "\n "
80 WHITESPACE@[109; 110) "\n" 80 R_CURLY@[108; 109) "}"
81 R_CURLY@[110; 111) "}" 81 WHITESPACE@[109; 110) "\n"
82 R_CURLY@[110; 111) "}"
82 WHITESPACE@[111; 112) "\n" 83 WHITESPACE@[111; 112) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.txt b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.txt
index 949117134..efcd89c4c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.txt
@@ -8,52 +8,53 @@ SOURCE_FILE@[0; 83)
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; 82) 11 BLOCK_EXPR@[9; 82)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 82)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 MATCH_EXPR@[15; 80) 14 WHITESPACE@[10; 15) "\n "
15 MATCH_KW@[15; 20) "match" 15 MATCH_EXPR@[15; 80)
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; 80) 21 WHITESPACE@[23; 24) " "
22 L_CURLY@[24; 25) "{" 22 MATCH_ARM_LIST@[24; 80)
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 BLOCK_EXPR@[56; 58) 41 WHITESPACE@[55; 56) " "
42 BLOCK@[56; 58) 42 BLOCK_EXPR@[56; 58)
43 L_CURLY@[56; 57) "{" 43 BLOCK@[56; 58)
44 R_CURLY@[57; 58) "}" 44 L_CURLY@[56; 57) "{"
45 WHITESPACE@[58; 67) "\n " 45 R_CURLY@[57; 58) "}"
46 MATCH_ARM@[67; 74) 46 WHITESPACE@[58; 67) "\n "
47 PLACEHOLDER_PAT@[67; 68) 47 MATCH_ARM@[67; 74)
48 UNDERSCORE@[67; 68) "_" 48 PLACEHOLDER_PAT@[67; 68)
49 WHITESPACE@[68; 69) " " 49 UNDERSCORE@[67; 68) "_"
50 FAT_ARROW@[69; 71) "=>" 50 WHITESPACE@[68; 69) " "
51 WHITESPACE@[71; 72) " " 51 FAT_ARROW@[69; 71) "=>"
52 TUPLE_EXPR@[72; 74) 52 WHITESPACE@[71; 72) " "
53 L_PAREN@[72; 73) "(" 53 TUPLE_EXPR@[72; 74)
54 R_PAREN@[73; 74) ")" 54 L_PAREN@[72; 73) "("
55 WHITESPACE@[74; 79) "\n " 55 R_PAREN@[73; 74) ")"
56 R_CURLY@[79; 80) "}" 56 WHITESPACE@[74; 79) "\n "
57 WHITESPACE@[80; 81) "\n" 57 R_CURLY@[79; 80) "}"
58 R_CURLY@[81; 82) "}" 58 WHITESPACE@[80; 81) "\n"
59 R_CURLY@[81; 82) "}"
59 WHITESPACE@[82; 83) "\n" 60 WHITESPACE@[82; 83) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.txt b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.txt
index 1c915ea0c..dcf527639 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.txt
@@ -8,111 +8,112 @@ SOURCE_FILE@[0; 112)
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; 111) 11 BLOCK_EXPR@[9; 111)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 111)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 20) 14 WHITESPACE@[10; 15) "\n "
15 RECORD_LIT@[15; 19) 15 EXPR_STMT@[15; 20)
16 PATH@[15; 16) 16 RECORD_LIT@[15; 19)
17 PATH_SEGMENT@[15; 16) 17 PATH@[15; 16)
18 NAME_REF@[15; 16) 18 PATH_SEGMENT@[15; 16)
19 IDENT@[15; 16) "S" 19 NAME_REF@[15; 16)
20 WHITESPACE@[16; 17) " " 20 IDENT@[15; 16) "S"
21 RECORD_FIELD_LIST@[17; 19) 21 WHITESPACE@[16; 17) " "
22 L_CURLY@[17; 18) "{" 22 RECORD_FIELD_LIST@[17; 19)
23 R_CURLY@[18; 19) "}" 23 L_CURLY@[17; 18) "{"
24 SEMI@[19; 20) ";" 24 R_CURLY@[18; 19) "}"
25 WHITESPACE@[20; 25) "\n " 25 SEMI@[19; 20) ";"
26 EXPR_STMT@[25; 41) 26 WHITESPACE@[20; 25) "\n "
27 RECORD_LIT@[25; 40) 27 EXPR_STMT@[25; 41)
28 PATH@[25; 26) 28 RECORD_LIT@[25; 40)
29 PATH_SEGMENT@[25; 26) 29 PATH@[25; 26)
30 NAME_REF@[25; 26) 30 PATH_SEGMENT@[25; 26)
31 IDENT@[25; 26) "S" 31 NAME_REF@[25; 26)
32 WHITESPACE@[26; 27) " " 32 IDENT@[25; 26) "S"
33 RECORD_FIELD_LIST@[27; 40) 33 WHITESPACE@[26; 27) " "
34 L_CURLY@[27; 28) "{" 34 RECORD_FIELD_LIST@[27; 40)
35 WHITESPACE@[28; 29) " " 35 L_CURLY@[27; 28) "{"
36 RECORD_FIELD@[29; 30) 36 WHITESPACE@[28; 29) " "
37 NAME_REF@[29; 30) 37 RECORD_FIELD@[29; 30)
38 IDENT@[29; 30) "x" 38 NAME_REF@[29; 30)
39 COMMA@[30; 31) "," 39 IDENT@[29; 30) "x"
40 WHITESPACE@[31; 32) " " 40 COMMA@[30; 31) ","
41 RECORD_FIELD@[32; 37) 41 WHITESPACE@[31; 32) " "
42 NAME_REF@[32; 33) 42 RECORD_FIELD@[32; 37)
43 IDENT@[32; 33) "y" 43 NAME_REF@[32; 33)
44 COLON@[33; 34) ":" 44 IDENT@[32; 33) "y"
45 WHITESPACE@[34; 35) " " 45 COLON@[33; 34) ":"
46 LITERAL@[35; 37) 46 WHITESPACE@[34; 35) " "
47 INT_NUMBER@[35; 37) "32" 47 LITERAL@[35; 37)
48 COMMA@[37; 38) "," 48 INT_NUMBER@[35; 37) "32"
49 WHITESPACE@[38; 39) " " 49 COMMA@[37; 38) ","
50 R_CURLY@[39; 40) "}" 50 WHITESPACE@[38; 39) " "
51 SEMI@[40; 41) ";" 51 R_CURLY@[39; 40) "}"
52 WHITESPACE@[41; 46) "\n " 52 SEMI@[40; 41) ";"
53 EXPR_STMT@[46; 83) 53 WHITESPACE@[41; 46) "\n "
54 RECORD_LIT@[46; 82) 54 EXPR_STMT@[46; 83)
55 PATH@[46; 47) 55 RECORD_LIT@[46; 82)
56 PATH_SEGMENT@[46; 47) 56 PATH@[46; 47)
57 NAME_REF@[46; 47) 57 PATH_SEGMENT@[46; 47)
58 IDENT@[46; 47) "S" 58 NAME_REF@[46; 47)
59 WHITESPACE@[47; 48) " " 59 IDENT@[46; 47) "S"
60 RECORD_FIELD_LIST@[48; 82) 60 WHITESPACE@[47; 48) " "
61 L_CURLY@[48; 49) "{" 61 RECORD_FIELD_LIST@[48; 82)
62 WHITESPACE@[49; 50) " " 62 L_CURLY@[48; 49) "{"
63 RECORD_FIELD@[50; 51) 63 WHITESPACE@[49; 50) " "
64 NAME_REF@[50; 51) 64 RECORD_FIELD@[50; 51)
65 IDENT@[50; 51) "x" 65 NAME_REF@[50; 51)
66 COMMA@[51; 52) "," 66 IDENT@[50; 51) "x"
67 WHITESPACE@[52; 53) " " 67 COMMA@[51; 52) ","
68 RECORD_FIELD@[53; 58) 68 WHITESPACE@[52; 53) " "
69 NAME_REF@[53; 54) 69 RECORD_FIELD@[53; 58)
70 IDENT@[53; 54) "y" 70 NAME_REF@[53; 54)
71 COLON@[54; 55) ":" 71 IDENT@[53; 54) "y"
72 WHITESPACE@[55; 56) " " 72 COLON@[54; 55) ":"
73 LITERAL@[56; 58) 73 WHITESPACE@[55; 56) " "
74 INT_NUMBER@[56; 58) "32" 74 LITERAL@[56; 58)
75 COMMA@[58; 59) "," 75 INT_NUMBER@[56; 58) "32"
76 WHITESPACE@[59; 60) " " 76 COMMA@[58; 59) ","
77 DOTDOT@[60; 62) ".." 77 WHITESPACE@[59; 60) " "
78 CALL_EXPR@[62; 80) 78 DOTDOT@[60; 62) ".."
79 PATH_EXPR@[62; 78) 79 CALL_EXPR@[62; 80)
80 PATH@[62; 78) 80 PATH_EXPR@[62; 78)
81 PATH@[62; 69) 81 PATH@[62; 78)
82 PATH_SEGMENT@[62; 69) 82 PATH@[62; 69)
83 NAME_REF@[62; 69) 83 PATH_SEGMENT@[62; 69)
84 IDENT@[62; 69) "Default" 84 NAME_REF@[62; 69)
85 COLONCOLON@[69; 71) "::" 85 IDENT@[62; 69) "Default"
86 PATH_SEGMENT@[71; 78) 86 COLONCOLON@[69; 71) "::"
87 NAME_REF@[71; 78) 87 PATH_SEGMENT@[71; 78)
88 IDENT@[71; 78) "default" 88 NAME_REF@[71; 78)
89 ARG_LIST@[78; 80) 89 IDENT@[71; 78) "default"
90 L_PAREN@[78; 79) "(" 90 ARG_LIST@[78; 80)
91 R_PAREN@[79; 80) ")" 91 L_PAREN@[78; 79) "("
92 WHITESPACE@[80; 81) " " 92 R_PAREN@[79; 80) ")"
93 R_CURLY@[81; 82) "}" 93 WHITESPACE@[80; 81) " "
94 SEMI@[82; 83) ";" 94 R_CURLY@[81; 82) "}"
95 WHITESPACE@[83; 88) "\n " 95 SEMI@[82; 83) ";"
96 EXPR_STMT@[88; 109) 96 WHITESPACE@[83; 88) "\n "
97 RECORD_LIT@[88; 108) 97 EXPR_STMT@[88; 109)
98 PATH@[88; 99) 98 RECORD_LIT@[88; 108)
99 PATH_SEGMENT@[88; 99) 99 PATH@[88; 99)
100 NAME_REF@[88; 99) 100 PATH_SEGMENT@[88; 99)
101 IDENT@[88; 99) "TupleStruct" 101 NAME_REF@[88; 99)
102 WHITESPACE@[99; 100) " " 102 IDENT@[88; 99) "TupleStruct"
103 RECORD_FIELD_LIST@[100; 108) 103 WHITESPACE@[99; 100) " "
104 L_CURLY@[100; 101) "{" 104 RECORD_FIELD_LIST@[100; 108)
105 WHITESPACE@[101; 102) " " 105 L_CURLY@[100; 101) "{"
106 RECORD_FIELD@[102; 106) 106 WHITESPACE@[101; 102) " "
107 NAME_REF@[102; 103) 107 RECORD_FIELD@[102; 106)
108 INT_NUMBER@[102; 103) "0" 108 NAME_REF@[102; 103)
109 COLON@[103; 104) ":" 109 INT_NUMBER@[102; 103) "0"
110 WHITESPACE@[104; 105) " " 110 COLON@[103; 104) ":"
111 LITERAL@[105; 106) 111 WHITESPACE@[104; 105) " "
112 INT_NUMBER@[105; 106) "1" 112 LITERAL@[105; 106)
113 WHITESPACE@[106; 107) " " 113 INT_NUMBER@[105; 106) "1"
114 R_CURLY@[107; 108) "}" 114 WHITESPACE@[106; 107) " "
115 SEMI@[108; 109) ";" 115 R_CURLY@[107; 108) "}"
116 WHITESPACE@[109; 110) "\n" 116 SEMI@[108; 109) ";"
117 R_CURLY@[110; 111) "}" 117 WHITESPACE@[109; 110) "\n"
118 R_CURLY@[110; 111) "}"
118 WHITESPACE@[111; 112) "\n" 119 WHITESPACE@[111; 112) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.txt b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.txt
index db2b9a582..6b528c252 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.txt
@@ -8,9 +8,10 @@ SOURCE_FILE@[0; 70)
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; 11) 11 BLOCK_EXPR@[9; 11)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 11)
13 R_CURLY@[10; 11) "}" 13 L_CURLY@[9; 10) "{"
14 R_CURLY@[10; 11) "}"
14 WHITESPACE@[11; 12) "\n" 15 WHITESPACE@[11; 12) "\n"
15 MACRO_CALL@[12; 31) 16 MACRO_CALL@[12; 31)
16 PATH@[12; 23) 17 PATH@[12; 23)
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.txt
index 554bda6fb..14ea91fd2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.txt
@@ -8,88 +8,96 @@ SOURCE_FILE@[0; 107)
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; 106) 11 BLOCK_EXPR@[9; 106)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 106)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 26) 14 WHITESPACE@[10; 15) "\n "
15 IF_EXPR@[15; 25) 15 EXPR_STMT@[15; 26)
16 IF_KW@[15; 17) "if" 16 IF_EXPR@[15; 25)
17 WHITESPACE@[17; 18) " " 17 IF_KW@[15; 17) "if"
18 CONDITION@[18; 22) 18 WHITESPACE@[17; 18) " "
19 LITERAL@[18; 22) 19 CONDITION@[18; 22)
20 TRUE_KW@[18; 22) "true" 20 LITERAL@[18; 22)
21 WHITESPACE@[22; 23) " " 21 TRUE_KW@[18; 22) "true"
22 BLOCK@[23; 25) 22 WHITESPACE@[22; 23) " "
23 L_CURLY@[23; 24) "{" 23 BLOCK_EXPR@[23; 25)
24 R_CURLY@[24; 25) "}" 24 BLOCK@[23; 25)
25 SEMI@[25; 26) ";" 25 L_CURLY@[23; 24) "{"
26 WHITESPACE@[26; 31) "\n " 26 R_CURLY@[24; 25) "}"
27 EXPR_STMT@[31; 50) 27 SEMI@[25; 26) ";"
28 IF_EXPR@[31; 49) 28 WHITESPACE@[26; 31) "\n "
29 IF_KW@[31; 33) "if" 29 EXPR_STMT@[31; 50)
30 WHITESPACE@[33; 34) " " 30 IF_EXPR@[31; 49)
31 CONDITION@[34; 38) 31 IF_KW@[31; 33) "if"
32 LITERAL@[34; 38) 32 WHITESPACE@[33; 34) " "
33 TRUE_KW@[34; 38) "true" 33 CONDITION@[34; 38)
34 WHITESPACE@[38; 39) " " 34 LITERAL@[34; 38)
35 BLOCK@[39; 41) 35 TRUE_KW@[34; 38) "true"
36 L_CURLY@[39; 40) "{" 36 WHITESPACE@[38; 39) " "
37 R_CURLY@[40; 41) "}" 37 BLOCK_EXPR@[39; 41)
38 WHITESPACE@[41; 42) " " 38 BLOCK@[39; 41)
39 ELSE_KW@[42; 46) "else" 39 L_CURLY@[39; 40) "{"
40 WHITESPACE@[46; 47) " " 40 R_CURLY@[40; 41) "}"
41 BLOCK@[47; 49) 41 WHITESPACE@[41; 42) " "
42 L_CURLY@[47; 48) "{" 42 ELSE_KW@[42; 46) "else"
43 R_CURLY@[48; 49) "}" 43 WHITESPACE@[46; 47) " "
44 SEMI@[49; 50) ";" 44 BLOCK_EXPR@[47; 49)
45 WHITESPACE@[50; 55) "\n " 45 BLOCK@[47; 49)
46 EXPR_STMT@[55; 91) 46 L_CURLY@[47; 48) "{"
47 IF_EXPR@[55; 90) 47 R_CURLY@[48; 49) "}"
48 IF_KW@[55; 57) "if" 48 SEMI@[49; 50) ";"
49 WHITESPACE@[57; 58) " " 49 WHITESPACE@[50; 55) "\n "
50 CONDITION@[58; 62) 50 EXPR_STMT@[55; 91)
51 LITERAL@[58; 62) 51 IF_EXPR@[55; 90)
52 TRUE_KW@[58; 62) "true" 52 IF_KW@[55; 57) "if"
53 WHITESPACE@[62; 63) " " 53 WHITESPACE@[57; 58) " "
54 BLOCK@[63; 65) 54 CONDITION@[58; 62)
55 L_CURLY@[63; 64) "{" 55 LITERAL@[58; 62)
56 R_CURLY@[64; 65) "}" 56 TRUE_KW@[58; 62) "true"
57 WHITESPACE@[65; 66) " " 57 WHITESPACE@[62; 63) " "
58 ELSE_KW@[66; 70) "else" 58 BLOCK_EXPR@[63; 65)
59 WHITESPACE@[70; 71) " " 59 BLOCK@[63; 65)
60 IF_EXPR@[71; 90) 60 L_CURLY@[63; 64) "{"
61 IF_KW@[71; 73) "if" 61 R_CURLY@[64; 65) "}"
62 WHITESPACE@[73; 74) " " 62 WHITESPACE@[65; 66) " "
63 CONDITION@[74; 79) 63 ELSE_KW@[66; 70) "else"
64 LITERAL@[74; 79) 64 WHITESPACE@[70; 71) " "
65 FALSE_KW@[74; 79) "false" 65 IF_EXPR@[71; 90)
66 WHITESPACE@[79; 80) " " 66 IF_KW@[71; 73) "if"
67 BLOCK@[80; 82) 67 WHITESPACE@[73; 74) " "
68 L_CURLY@[80; 81) "{" 68 CONDITION@[74; 79)
69 R_CURLY@[81; 82) "}" 69 LITERAL@[74; 79)
70 WHITESPACE@[82; 83) " " 70 FALSE_KW@[74; 79) "false"
71 ELSE_KW@[83; 87) "else" 71 WHITESPACE@[79; 80) " "
72 WHITESPACE@[87; 88) " " 72 BLOCK_EXPR@[80; 82)
73 BLOCK@[88; 90) 73 BLOCK@[80; 82)
74 L_CURLY@[88; 89) "{" 74 L_CURLY@[80; 81) "{"
75 R_CURLY@[89; 90) "}" 75 R_CURLY@[81; 82) "}"
76 SEMI@[90; 91) ";" 76 WHITESPACE@[82; 83) " "
77 WHITESPACE@[91; 96) "\n " 77 ELSE_KW@[83; 87) "else"
78 EXPR_STMT@[96; 104) 78 WHITESPACE@[87; 88) " "
79 IF_EXPR@[96; 103) 79 BLOCK_EXPR@[88; 90)
80 IF_KW@[96; 98) "if" 80 BLOCK@[88; 90)
81 WHITESPACE@[98; 99) " " 81 L_CURLY@[88; 89) "{"
82 CONDITION@[99; 100) 82 R_CURLY@[89; 90) "}"
83 PATH_EXPR@[99; 100) 83 SEMI@[90; 91) ";"
84 PATH@[99; 100) 84 WHITESPACE@[91; 96) "\n "
85 PATH_SEGMENT@[99; 100) 85 EXPR_STMT@[96; 104)
86 NAME_REF@[99; 100) 86 IF_EXPR@[96; 103)
87 IDENT@[99; 100) "S" 87 IF_KW@[96; 98) "if"
88 WHITESPACE@[100; 101) " " 88 WHITESPACE@[98; 99) " "
89 BLOCK@[101; 103) 89 CONDITION@[99; 100)
90 L_CURLY@[101; 102) "{" 90 PATH_EXPR@[99; 100)
91 R_CURLY@[102; 103) "}" 91 PATH@[99; 100)
92 SEMI@[103; 104) ";" 92 PATH_SEGMENT@[99; 100)
93 WHITESPACE@[104; 105) "\n" 93 NAME_REF@[99; 100)
94 R_CURLY@[105; 106) "}" 94 IDENT@[99; 100) "S"
95 WHITESPACE@[100; 101) " "
96 BLOCK_EXPR@[101; 103)
97 BLOCK@[101; 103)
98 L_CURLY@[101; 102) "{"
99 R_CURLY@[102; 103) "}"
100 SEMI@[103; 104) ";"
101 WHITESPACE@[104; 105) "\n"
102 R_CURLY@[105; 106) "}"
95 WHITESPACE@[106; 107) "\n" 103 WHITESPACE@[106; 107) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.txt b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.txt
index c2f256ac3..87272917b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.txt
@@ -8,142 +8,143 @@ SOURCE_FILE@[0; 167)
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; 166) 11 BLOCK_EXPR@[9; 166)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 166)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 164) 14 WHITESPACE@[10; 15) "\n "
15 MATCH_EXPR@[15; 163) 15 EXPR_STMT@[15; 164)
16 MATCH_KW@[15; 20) "match" 16 MATCH_EXPR@[15; 163)
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; 163) 22 WHITESPACE@[23; 24) " "
23 L_CURLY@[24; 25) "{" 23 MATCH_ARM_LIST@[24; 163)
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; 83) 36 WHITESPACE@[42; 51) "\n "
37 PLACEHOLDER_PAT@[51; 52) 37 MATCH_ARM@[51; 83)
38 UNDERSCORE@[51; 52) "_" 38 PLACEHOLDER_PAT@[51; 52)
39 WHITESPACE@[52; 53) " " 39 UNDERSCORE@[51; 52) "_"
40 MATCH_GUARD@[53; 77) 40 WHITESPACE@[52; 53) " "
41 IF_KW@[53; 55) "if" 41 MATCH_GUARD@[53; 77)
42 WHITESPACE@[55; 56) " " 42 IF_KW@[53; 55) "if"
43 BIN_EXPR@[56; 77) 43 WHITESPACE@[55; 56) " "
44 PATH_EXPR@[56; 60) 44 BIN_EXPR@[56; 77)
45 PATH@[56; 60) 45 PATH_EXPR@[56; 60)
46 PATH_SEGMENT@[56; 60) 46 PATH@[56; 60)
47 NAME_REF@[56; 60) 47 PATH_SEGMENT@[56; 60)
48 IDENT@[56; 60) "Test" 48 NAME_REF@[56; 60)
49 WHITESPACE@[60; 61) " " 49 IDENT@[56; 60) "Test"
50 R_ANGLE@[61; 62) ">" 50 WHITESPACE@[60; 61) " "
51 WHITESPACE@[62; 63) " " 51 R_ANGLE@[61; 62) ">"
52 RECORD_LIT@[63; 77) 52 WHITESPACE@[62; 63) " "
53 PATH@[63; 67) 53 RECORD_LIT@[63; 77)
54 PATH_SEGMENT@[63; 67) 54 PATH@[63; 67)
55 NAME_REF@[63; 67) 55 PATH_SEGMENT@[63; 67)
56 IDENT@[63; 67) "Test" 56 NAME_REF@[63; 67)
57 RECORD_FIELD_LIST@[67; 77) 57 IDENT@[63; 67) "Test"
58 L_CURLY@[67; 68) "{" 58 RECORD_FIELD_LIST@[67; 77)
59 RECORD_FIELD@[68; 76) 59 L_CURLY@[67; 68) "{"
60 NAME_REF@[68; 73) 60 RECORD_FIELD@[68; 76)
61 IDENT@[68; 73) "field" 61 NAME_REF@[68; 73)
62 COLON@[73; 74) ":" 62 IDENT@[68; 73) "field"
63 WHITESPACE@[74; 75) " " 63 COLON@[73; 74) ":"
64 LITERAL@[75; 76) 64 WHITESPACE@[74; 75) " "
65 INT_NUMBER@[75; 76) "0" 65 LITERAL@[75; 76)
66 R_CURLY@[76; 77) "}" 66 INT_NUMBER@[75; 76) "0"
67 WHITESPACE@[77; 78) " " 67 R_CURLY@[76; 77) "}"
68 FAT_ARROW@[78; 80) "=>" 68 WHITESPACE@[77; 78) " "
69 WHITESPACE@[80; 81) " " 69 FAT_ARROW@[78; 80) "=>"
70 TUPLE_EXPR@[81; 83) 70 WHITESPACE@[80; 81) " "
71 L_PAREN@[81; 82) "(" 71 TUPLE_EXPR@[81; 83)
72 R_PAREN@[82; 83) ")" 72 L_PAREN@[81; 82) "("
73 COMMA@[83; 84) "," 73 R_PAREN@[82; 83) ")"
74 WHITESPACE@[84; 93) "\n " 74 COMMA@[83; 84) ","
75 MATCH_ARM@[93; 109) 75 WHITESPACE@[84; 93) "\n "
76 BIND_PAT@[93; 94) 76 MATCH_ARM@[93; 109)
77 NAME@[93; 94) 77 BIND_PAT@[93; 94)
78 IDENT@[93; 94) "X" 78 NAME@[93; 94)
79 WHITESPACE@[94; 95) " " 79 IDENT@[93; 94) "X"
80 PIPE@[95; 96) "|" 80 WHITESPACE@[94; 95) " "
81 WHITESPACE@[96; 97) " " 81 PIPE@[95; 96) "|"
82 BIND_PAT@[97; 98) 82 WHITESPACE@[96; 97) " "
83 NAME@[97; 98) 83 BIND_PAT@[97; 98)
84 IDENT@[97; 98) "Y" 84 NAME@[97; 98)
85 WHITESPACE@[98; 99) " " 85 IDENT@[97; 98) "Y"
86 MATCH_GUARD@[99; 103) 86 WHITESPACE@[98; 99) " "
87 IF_KW@[99; 101) "if" 87 MATCH_GUARD@[99; 103)
88 WHITESPACE@[101; 102) " " 88 IF_KW@[99; 101) "if"
89 PATH_EXPR@[102; 103) 89 WHITESPACE@[101; 102) " "
90 PATH@[102; 103) 90 PATH_EXPR@[102; 103)
91 PATH_SEGMENT@[102; 103) 91 PATH@[102; 103)
92 NAME_REF@[102; 103) 92 PATH_SEGMENT@[102; 103)
93 IDENT@[102; 103) "Z" 93 NAME_REF@[102; 103)
94 WHITESPACE@[103; 104) " " 94 IDENT@[102; 103) "Z"
95 FAT_ARROW@[104; 106) "=>" 95 WHITESPACE@[103; 104) " "
96 WHITESPACE@[106; 107) " " 96 FAT_ARROW@[104; 106) "=>"
97 TUPLE_EXPR@[107; 109) 97 WHITESPACE@[106; 107) " "
98 L_PAREN@[107; 108) "(" 98 TUPLE_EXPR@[107; 109)
99 R_PAREN@[108; 109) ")" 99 L_PAREN@[107; 108) "("
100 COMMA@[109; 110) "," 100 R_PAREN@[108; 109) ")"
101 WHITESPACE@[110; 119) "\n " 101 COMMA@[109; 110) ","
102 MATCH_ARM@[119; 137) 102 WHITESPACE@[110; 119) "\n "
103 PIPE@[119; 120) "|" 103 MATCH_ARM@[119; 137)
104 WHITESPACE@[120; 121) " " 104 PIPE@[119; 120) "|"
105 BIND_PAT@[121; 122) 105 WHITESPACE@[120; 121) " "
106 NAME@[121; 122) 106 BIND_PAT@[121; 122)
107 IDENT@[121; 122) "X" 107 NAME@[121; 122)
108 WHITESPACE@[122; 123) " " 108 IDENT@[121; 122) "X"
109 PIPE@[123; 124) "|" 109 WHITESPACE@[122; 123) " "
110 WHITESPACE@[124; 125) " " 110 PIPE@[123; 124) "|"
111 BIND_PAT@[125; 126) 111 WHITESPACE@[124; 125) " "
112 NAME@[125; 126) 112 BIND_PAT@[125; 126)
113 IDENT@[125; 126) "Y" 113 NAME@[125; 126)
114 WHITESPACE@[126; 127) " " 114 IDENT@[125; 126) "Y"
115 MATCH_GUARD@[127; 131) 115 WHITESPACE@[126; 127) " "
116 IF_KW@[127; 129) "if" 116 MATCH_GUARD@[127; 131)
117 WHITESPACE@[129; 130) " " 117 IF_KW@[127; 129) "if"
118 PATH_EXPR@[130; 131) 118 WHITESPACE@[129; 130) " "
119 PATH@[130; 131) 119 PATH_EXPR@[130; 131)
120 PATH_SEGMENT@[130; 131) 120 PATH@[130; 131)
121 NAME_REF@[130; 131) 121 PATH_SEGMENT@[130; 131)
122 IDENT@[130; 131) "Z" 122 NAME_REF@[130; 131)
123 WHITESPACE@[131; 132) " " 123 IDENT@[130; 131) "Z"
124 FAT_ARROW@[132; 134) "=>" 124 WHITESPACE@[131; 132) " "
125 WHITESPACE@[134; 135) " " 125 FAT_ARROW@[132; 134) "=>"
126 TUPLE_EXPR@[135; 137) 126 WHITESPACE@[134; 135) " "
127 L_PAREN@[135; 136) "(" 127 TUPLE_EXPR@[135; 137)
128 R_PAREN@[136; 137) ")" 128 L_PAREN@[135; 136) "("
129 COMMA@[137; 138) "," 129 R_PAREN@[136; 137) ")"
130 WHITESPACE@[138; 147) "\n " 130 COMMA@[137; 138) ","
131 MATCH_ARM@[147; 156) 131 WHITESPACE@[138; 147) "\n "
132 PIPE@[147; 148) "|" 132 MATCH_ARM@[147; 156)
133 WHITESPACE@[148; 149) " " 133 PIPE@[147; 148) "|"
134 BIND_PAT@[149; 150) 134 WHITESPACE@[148; 149) " "
135 NAME@[149; 150) 135 BIND_PAT@[149; 150)
136 IDENT@[149; 150) "X" 136 NAME@[149; 150)
137 WHITESPACE@[150; 151) " " 137 IDENT@[149; 150) "X"
138 FAT_ARROW@[151; 153) "=>" 138 WHITESPACE@[150; 151) " "
139 WHITESPACE@[153; 154) " " 139 FAT_ARROW@[151; 153) "=>"
140 TUPLE_EXPR@[154; 156) 140 WHITESPACE@[153; 154) " "
141 L_PAREN@[154; 155) "(" 141 TUPLE_EXPR@[154; 156)
142 R_PAREN@[155; 156) ")" 142 L_PAREN@[154; 155) "("
143 COMMA@[156; 157) "," 143 R_PAREN@[155; 156) ")"
144 WHITESPACE@[157; 162) "\n " 144 COMMA@[156; 157) ","
145 R_CURLY@[162; 163) "}" 145 WHITESPACE@[157; 162) "\n "
146 SEMI@[163; 164) ";" 146 R_CURLY@[162; 163) "}"
147 WHITESPACE@[164; 165) "\n" 147 SEMI@[163; 164) ";"
148 R_CURLY@[165; 166) "}" 148 WHITESPACE@[164; 165) "\n"
149 R_CURLY@[165; 166) "}"
149 WHITESPACE@[166; 167) "\n" 150 WHITESPACE@[166; 167) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt
index 40333d565..cd63d10f7 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.txt
@@ -8,45 +8,46 @@ SOURCE_FILE@[0; 46)
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; 45) 11 BLOCK_EXPR@[9; 45)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 45)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 31) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 31)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 PLACEHOLDER_PAT@[19; 20) 17 WHITESPACE@[18; 19) " "
18 UNDERSCORE@[19; 20) "_" 18 PLACEHOLDER_PAT@[19; 20)
19 WHITESPACE@[20; 21) " " 19 UNDERSCORE@[19; 20) "_"
20 EQ@[21; 22) "=" 20 WHITESPACE@[20; 21) " "
21 WHITESPACE@[22; 23) " " 21 EQ@[21; 22) "="
22 BIN_EXPR@[23; 30) 22 WHITESPACE@[22; 23) " "
23 BLOCK_EXPR@[23; 26) 23 BIN_EXPR@[23; 30)
24 BLOCK@[23; 26) 24 BLOCK_EXPR@[23; 26)
25 L_CURLY@[23; 24) "{" 25 BLOCK@[23; 26)
26 LITERAL@[24; 25) 26 L_CURLY@[23; 24) "{"
27 INT_NUMBER@[24; 25) "1" 27 LITERAL@[24; 25)
28 R_CURLY@[25; 26) "}" 28 INT_NUMBER@[24; 25) "1"
29 WHITESPACE@[26; 27) " " 29 R_CURLY@[25; 26) "}"
30 AMP@[27; 28) "&" 30 WHITESPACE@[26; 27) " "
31 WHITESPACE@[28; 29) " " 31 AMP@[27; 28) "&"
32 LITERAL@[29; 30) 32 WHITESPACE@[28; 29) " "
33 INT_NUMBER@[29; 30) "2" 33 LITERAL@[29; 30)
34 SEMI@[30; 31) ";" 34 INT_NUMBER@[29; 30) "2"
35 WHITESPACE@[31; 36) "\n " 35 SEMI@[30; 31) ";"
36 EXPR_STMT@[36; 39) 36 WHITESPACE@[31; 36) "\n "
37 BLOCK_EXPR@[36; 39) 37 EXPR_STMT@[36; 39)
38 BLOCK@[36; 39) 38 BLOCK_EXPR@[36; 39)
39 L_CURLY@[36; 37) "{" 39 BLOCK@[36; 39)
40 LITERAL@[37; 38) 40 L_CURLY@[36; 37) "{"
41 INT_NUMBER@[37; 38) "1" 41 LITERAL@[37; 38)
42 R_CURLY@[38; 39) "}" 42 INT_NUMBER@[37; 38) "1"
43 WHITESPACE@[39; 40) " " 43 R_CURLY@[38; 39) "}"
44 EXPR_STMT@[40; 43) 44 WHITESPACE@[39; 40) " "
45 REF_EXPR@[40; 42) 45 EXPR_STMT@[40; 43)
46 AMP@[40; 41) "&" 46 REF_EXPR@[40; 42)
47 LITERAL@[41; 42) 47 AMP@[40; 41) "&"
48 INT_NUMBER@[41; 42) "2" 48 LITERAL@[41; 42)
49 SEMI@[42; 43) ";" 49 INT_NUMBER@[41; 42) "2"
50 WHITESPACE@[43; 44) "\n" 50 SEMI@[42; 43) ";"
51 R_CURLY@[44; 45) "}" 51 WHITESPACE@[43; 44) "\n"
52 R_CURLY@[44; 45) "}"
52 WHITESPACE@[45; 46) "\n" 53 WHITESPACE@[45; 46) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.txt
index 658948c66..f62b6c6d5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.txt
@@ -8,37 +8,38 @@ SOURCE_FILE@[0; 47)
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; 46) 11 BLOCK_EXPR@[9; 46)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 46)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 28) 14 WHITESPACE@[10; 15) "\n "
15 MATCH_EXPR@[15; 27) 15 EXPR_STMT@[15; 28)
16 MATCH_KW@[15; 20) "match" 16 MATCH_EXPR@[15; 27)
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; 27) 22 WHITESPACE@[23; 24) " "
23 L_CURLY@[24; 25) "{" 23 MATCH_ARM_LIST@[24; 27)
24 WHITESPACE@[25; 26) " " 24 L_CURLY@[24; 25) "{"
25 R_CURLY@[26; 27) "}" 25 WHITESPACE@[25; 26) " "
26 SEMI@[27; 28) ";" 26 R_CURLY@[26; 27) "}"
27 WHITESPACE@[28; 33) "\n " 27 SEMI@[27; 28) ";"
28 EXPR_STMT@[33; 44) 28 WHITESPACE@[28; 33) "\n "
29 MATCH_EXPR@[33; 43) 29 EXPR_STMT@[33; 44)
30 MATCH_KW@[33; 38) "match" 30 MATCH_EXPR@[33; 43)
31 WHITESPACE@[38; 39) " " 31 MATCH_KW@[33; 38) "match"
32 PATH_EXPR@[39; 40) 32 WHITESPACE@[38; 39) " "
33 PATH@[39; 40) 33 PATH_EXPR@[39; 40)
34 PATH_SEGMENT@[39; 40) 34 PATH@[39; 40)
35 NAME_REF@[39; 40) 35 PATH_SEGMENT@[39; 40)
36 IDENT@[39; 40) "S" 36 NAME_REF@[39; 40)
37 WHITESPACE@[40; 41) " " 37 IDENT@[39; 40) "S"
38 MATCH_ARM_LIST@[41; 43) 38 WHITESPACE@[40; 41) " "
39 L_CURLY@[41; 42) "{" 39 MATCH_ARM_LIST@[41; 43)
40 R_CURLY@[42; 43) "}" 40 L_CURLY@[41; 42) "{"
41 SEMI@[43; 44) ";" 41 R_CURLY@[42; 43) "}"
42 WHITESPACE@[44; 45) "\n" 42 SEMI@[43; 44) ";"
43 R_CURLY@[45; 46) "}" 43 WHITESPACE@[44; 45) "\n"
44 R_CURLY@[45; 46) "}"
44 WHITESPACE@[46; 47) "\n" 45 WHITESPACE@[46; 47) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.txt
index cd9e10bed..4a83a7200 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.txt
@@ -8,21 +8,22 @@ SOURCE_FILE@[0; 40)
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; 39) 11 BLOCK_EXPR@[9; 39)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 39)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 22) 14 WHITESPACE@[10; 15) "\n "
15 RETURN_EXPR@[15; 21) 15 EXPR_STMT@[15; 22)
16 RETURN_KW@[15; 21) "return" 16 RETURN_EXPR@[15; 21)
17 SEMI@[21; 22) ";" 17 RETURN_KW@[15; 21) "return"
18 WHITESPACE@[22; 27) "\n " 18 SEMI@[21; 22) ";"
19 EXPR_STMT@[27; 37) 19 WHITESPACE@[22; 27) "\n "
20 RETURN_EXPR@[27; 36) 20 EXPR_STMT@[27; 37)
21 RETURN_KW@[27; 33) "return" 21 RETURN_EXPR@[27; 36)
22 WHITESPACE@[33; 34) " " 22 RETURN_KW@[27; 33) "return"
23 LITERAL@[34; 36) 23 WHITESPACE@[33; 34) " "
24 INT_NUMBER@[34; 36) "92" 24 LITERAL@[34; 36)
25 SEMI@[36; 37) ";" 25 INT_NUMBER@[34; 36) "92"
26 WHITESPACE@[37; 38) "\n" 26 SEMI@[36; 37) ";"
27 R_CURLY@[38; 39) "}" 27 WHITESPACE@[37; 38) "\n"
28 R_CURLY@[38; 39) "}"
28 WHITESPACE@[39; 40) "\n" 29 WHITESPACE@[39; 40) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt
index 48af2f350..cbd2d5fbf 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.txt
@@ -8,55 +8,56 @@ SOURCE_FILE@[0; 84)
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; 83) 11 BLOCK_EXPR@[9; 83)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 83)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 MATCH_EXPR@[15; 81) 14 WHITESPACE@[10; 15) "\n "
15 MATCH_KW@[15; 20) "match" 15 MATCH_EXPR@[15; 81)
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; 81) 21 WHITESPACE@[23; 24) " "
22 L_CURLY@[24; 25) "{" 22 MATCH_ARM_LIST@[24; 81)
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 BLOCK_EXPR@[39; 41) 30 WHITESPACE@[38; 39) " "
31 BLOCK@[39; 41) 31 BLOCK_EXPR@[39; 41)
32 L_CURLY@[39; 40) "{" 32 BLOCK@[39; 41)
33 R_CURLY@[40; 41) "}" 33 L_CURLY@[39; 40) "{"
34 WHITESPACE@[41; 50) "\n " 34 R_CURLY@[40; 41) "}"
35 MATCH_ARM@[50; 58) 35 WHITESPACE@[41; 50) "\n "
36 TUPLE_PAT@[50; 52) 36 MATCH_ARM@[50; 58)
37 L_PAREN@[50; 51) "(" 37 TUPLE_PAT@[50; 52)
38 R_PAREN@[51; 52) ")" 38 L_PAREN@[50; 51) "("
39 WHITESPACE@[52; 53) " " 39 R_PAREN@[51; 52) ")"
40 FAT_ARROW@[53; 55) "=>" 40 WHITESPACE@[52; 53) " "
41 WHITESPACE@[55; 56) " " 41 FAT_ARROW@[53; 55) "=>"
42 BLOCK_EXPR@[56; 58) 42 WHITESPACE@[55; 56) " "
43 BLOCK@[56; 58) 43 BLOCK_EXPR@[56; 58)
44 L_CURLY@[56; 57) "{" 44 BLOCK@[56; 58)
45 R_CURLY@[57; 58) "}" 45 L_CURLY@[56; 57) "{"
46 WHITESPACE@[58; 67) "\n " 46 R_CURLY@[57; 58) "}"
47 MATCH_ARM@[67; 75) 47 WHITESPACE@[58; 67) "\n "
48 SLICE_PAT@[67; 69) 48 MATCH_ARM@[67; 75)
49 L_BRACK@[67; 68) "[" 49 SLICE_PAT@[67; 69)
50 R_BRACK@[68; 69) "]" 50 L_BRACK@[67; 68) "["
51 WHITESPACE@[69; 70) " " 51 R_BRACK@[68; 69) "]"
52 FAT_ARROW@[70; 72) "=>" 52 WHITESPACE@[69; 70) " "
53 WHITESPACE@[72; 73) " " 53 FAT_ARROW@[70; 72) "=>"
54 BLOCK_EXPR@[73; 75) 54 WHITESPACE@[72; 73) " "
55 BLOCK@[73; 75) 55 BLOCK_EXPR@[73; 75)
56 L_CURLY@[73; 74) "{" 56 BLOCK@[73; 75)
57 R_CURLY@[74; 75) "}" 57 L_CURLY@[73; 74) "{"
58 WHITESPACE@[75; 80) "\n " 58 R_CURLY@[74; 75) "}"
59 R_CURLY@[80; 81) "}" 59 WHITESPACE@[75; 80) "\n "
60 WHITESPACE@[81; 82) "\n" 60 R_CURLY@[80; 81) "}"
61 R_CURLY@[82; 83) "}" 61 WHITESPACE@[81; 82) "\n"
62 R_CURLY@[82; 83) "}"
62 WHITESPACE@[83; 84) "\n" 63 WHITESPACE@[83; 84) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.txt b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.txt
index 36983590f..28d1bad97 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.txt
@@ -8,9 +8,10 @@ SOURCE_FILE@[0; 65)
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; 9) 11 BLOCK_EXPR@[7; 9)
12 L_CURLY@[7; 8) "{" 12 BLOCK@[7; 9)
13 R_CURLY@[8; 9) "}" 13 L_CURLY@[7; 8) "{"
14 R_CURLY@[8; 9) "}"
14 WHITESPACE@[9; 10) "\n" 15 WHITESPACE@[9; 10) "\n"
15 FN_DEF@[10; 31) 16 FN_DEF@[10; 31)
16 FN_KW@[10; 12) "fn" 17 FN_KW@[10; 12) "fn"
@@ -21,22 +22,23 @@ SOURCE_FILE@[0; 65)
21 L_PAREN@[14; 15) "(" 22 L_PAREN@[14; 15) "("
22 R_PAREN@[15; 16) ")" 23 R_PAREN@[15; 16) ")"
23 WHITESPACE@[16; 17) " " 24 WHITESPACE@[16; 17) " "
24 BLOCK@[17; 31) 25 BLOCK_EXPR@[17; 31)
25 L_CURLY@[17; 18) "{" 26 BLOCK@[17; 31)
26 WHITESPACE@[18; 19) " " 27 L_CURLY@[17; 18) "{"
27 LET_STMT@[19; 29) 28 WHITESPACE@[18; 19) " "
28 LET_KW@[19; 22) "let" 29 LET_STMT@[19; 29)
29 WHITESPACE@[22; 23) " " 30 LET_KW@[19; 22) "let"
30 PLACEHOLDER_PAT@[23; 24) 31 WHITESPACE@[22; 23) " "
31 UNDERSCORE@[23; 24) "_" 32 PLACEHOLDER_PAT@[23; 24)
32 WHITESPACE@[24; 25) " " 33 UNDERSCORE@[23; 24) "_"
33 EQ@[25; 26) "=" 34 WHITESPACE@[24; 25) " "
34 WHITESPACE@[26; 27) " " 35 EQ@[25; 26) "="
35 LITERAL@[27; 28) 36 WHITESPACE@[26; 27) " "
36 INT_NUMBER@[27; 28) "1" 37 LITERAL@[27; 28)
37 SEMI@[28; 29) ";" 38 INT_NUMBER@[27; 28) "1"
38 WHITESPACE@[29; 30) " " 39 SEMI@[28; 29) ";"
39 R_CURLY@[30; 31) "}" 40 WHITESPACE@[29; 30) " "
41 R_CURLY@[30; 31) "}"
40 WHITESPACE@[31; 32) "\n" 42 WHITESPACE@[31; 32) "\n"
41 FN_DEF@[32; 48) 43 FN_DEF@[32; 48)
42 FN_KW@[32; 34) "fn" 44 FN_KW@[32; 34) "fn"
@@ -47,20 +49,21 @@ SOURCE_FILE@[0; 65)
47 L_PAREN@[36; 37) "(" 49 L_PAREN@[36; 37) "("
48 R_PAREN@[37; 38) ")" 50 R_PAREN@[37; 38) ")"
49 WHITESPACE@[38; 39) " " 51 WHITESPACE@[38; 39) " "
50 BLOCK@[39; 48) 52 BLOCK_EXPR@[39; 48)
51 L_CURLY@[39; 40) "{" 53 BLOCK@[39; 48)
52 WHITESPACE@[40; 41) " " 54 L_CURLY@[39; 40) "{"
53 EXPR_STMT@[41; 43) 55 WHITESPACE@[40; 41) " "
54 LITERAL@[41; 42) 56 EXPR_STMT@[41; 43)
55 INT_NUMBER@[41; 42) "1" 57 LITERAL@[41; 42)
56 SEMI@[42; 43) ";" 58 INT_NUMBER@[41; 42) "1"
57 WHITESPACE@[43; 44) " " 59 SEMI@[42; 43) ";"
58 EXPR_STMT@[44; 46) 60 WHITESPACE@[43; 44) " "
59 LITERAL@[44; 45) 61 EXPR_STMT@[44; 46)
60 INT_NUMBER@[44; 45) "2" 62 LITERAL@[44; 45)
61 SEMI@[45; 46) ";" 63 INT_NUMBER@[44; 45) "2"
62 WHITESPACE@[46; 47) " " 64 SEMI@[45; 46) ";"
63 R_CURLY@[47; 48) "}" 65 WHITESPACE@[46; 47) " "
66 R_CURLY@[47; 48) "}"
64 WHITESPACE@[48; 49) "\n" 67 WHITESPACE@[48; 49) "\n"
65 FN_DEF@[49; 64) 68 FN_DEF@[49; 64)
66 FN_KW@[49; 51) "fn" 69 FN_KW@[49; 51) "fn"
@@ -71,16 +74,17 @@ SOURCE_FILE@[0; 65)
71 L_PAREN@[53; 54) "(" 74 L_PAREN@[53; 54) "("
72 R_PAREN@[54; 55) ")" 75 R_PAREN@[54; 55) ")"
73 WHITESPACE@[55; 56) " " 76 WHITESPACE@[55; 56) " "
74 BLOCK@[56; 64) 77 BLOCK_EXPR@[56; 64)
75 L_CURLY@[56; 57) "{" 78 BLOCK@[56; 64)
76 WHITESPACE@[57; 58) " " 79 L_CURLY@[56; 57) "{"
77 EXPR_STMT@[58; 60) 80 WHITESPACE@[57; 58) " "
78 LITERAL@[58; 59) 81 EXPR_STMT@[58; 60)
79 INT_NUMBER@[58; 59) "1" 82 LITERAL@[58; 59)
80 SEMI@[59; 60) ";" 83 INT_NUMBER@[58; 59) "1"
81 WHITESPACE@[60; 61) " " 84 SEMI@[59; 60) ";"
82 LITERAL@[61; 62) 85 WHITESPACE@[60; 61) " "
83 INT_NUMBER@[61; 62) "2" 86 LITERAL@[61; 62)
84 WHITESPACE@[62; 63) " " 87 INT_NUMBER@[61; 62) "2"
85 R_CURLY@[63; 64) "}" 88 WHITESPACE@[62; 63) " "
89 R_CURLY@[63; 64) "}"
86 WHITESPACE@[64; 65) "\n" 90 WHITESPACE@[64; 65) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.txt b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.txt
index 32979c523..8e4b63f02 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.txt
@@ -33,7 +33,8 @@ SOURCE_FILE@[0; 29)
33 NAME_REF@[21; 25) 33 NAME_REF@[21; 25)
34 IDENT@[21; 25) "Copy" 34 IDENT@[21; 25) "Copy"
35 WHITESPACE@[25; 26) " " 35 WHITESPACE@[25; 26) " "
36 BLOCK@[26; 28) 36 BLOCK_EXPR@[26; 28)
37 L_CURLY@[26; 27) "{" 37 BLOCK@[26; 28)
38 R_CURLY@[27; 28) "}" 38 L_CURLY@[26; 27) "{"
39 R_CURLY@[27; 28) "}"
39 WHITESPACE@[28; 29) "\n" 40 WHITESPACE@[28; 29) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.txt
index 72de14b98..18ccfe9ef 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.txt
@@ -8,18 +8,19 @@ SOURCE_FILE@[0; 21)
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; 20) 11 BLOCK_EXPR@[9; 20)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 20)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 18) 14 WHITESPACE@[10; 15) "\n "
15 TRY_EXPR@[15; 17) 15 EXPR_STMT@[15; 18)
16 PATH_EXPR@[15; 16) 16 TRY_EXPR@[15; 17)
17 PATH@[15; 16) 17 PATH_EXPR@[15; 16)
18 PATH_SEGMENT@[15; 16) 18 PATH@[15; 16)
19 NAME_REF@[15; 16) 19 PATH_SEGMENT@[15; 16)
20 IDENT@[15; 16) "x" 20 NAME_REF@[15; 16)
21 QUESTION@[16; 17) "?" 21 IDENT@[15; 16) "x"
22 SEMI@[17; 18) ";" 22 QUESTION@[16; 17) "?"
23 WHITESPACE@[18; 19) "\n" 23 SEMI@[17; 18) ";"
24 R_CURLY@[19; 20) "}" 24 WHITESPACE@[18; 19) "\n"
25 R_CURLY@[19; 20) "}"
25 WHITESPACE@[20; 21) "\n" 26 WHITESPACE@[20; 21) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.txt b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.txt
index 541add812..f3c292f5e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.txt
@@ -8,23 +8,24 @@ SOURCE_FILE@[0; 26)
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; 25) 11 BLOCK_EXPR@[9; 25)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 25)
13 WHITESPACE@[10; 11) " " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[11; 23) 14 WHITESPACE@[10; 11) " "
15 LET_KW@[11; 14) "let" 15 LET_STMT@[11; 23)
16 WHITESPACE@[14; 15) " " 16 LET_KW@[11; 14) "let"
17 BIND_PAT@[15; 16) 17 WHITESPACE@[14; 15) " "
18 NAME@[15; 16) 18 BIND_PAT@[15; 16)
19 IDENT@[15; 16) "x" 19 NAME@[15; 16)
20 WHITESPACE@[16; 17) " " 20 IDENT@[15; 16) "x"
21 EQ@[17; 18) "=" 21 WHITESPACE@[16; 17) " "
22 WHITESPACE@[18; 19) " " 22 EQ@[17; 18) "="
23 RANGE_EXPR@[19; 22) 23 WHITESPACE@[18; 19) " "
24 LITERAL@[19; 20) 24 RANGE_EXPR@[19; 22)
25 INT_NUMBER@[19; 20) "1" 25 LITERAL@[19; 20)
26 DOTDOT@[20; 22) ".." 26 INT_NUMBER@[19; 20) "1"
27 SEMI@[22; 23) ";" 27 DOTDOT@[20; 22) ".."
28 WHITESPACE@[23; 24) " " 28 SEMI@[22; 23) ";"
29 R_CURLY@[24; 25) "}" 29 WHITESPACE@[23; 24) " "
30 R_CURLY@[24; 25) "}"
30 WHITESPACE@[25; 26) "\n" 31 WHITESPACE@[25; 26) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.txt b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.txt
index c12ce4ddb..b1353c2c6 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.txt
@@ -88,9 +88,10 @@ SOURCE_FILE@[0; 200)
88 NAME_REF@[68; 76) 88 NAME_REF@[68; 76)
89 IDENT@[68; 76) "Iterator" 89 IDENT@[68; 76) "Iterator"
90 WHITESPACE@[76; 77) " " 90 WHITESPACE@[76; 77) " "
91 BLOCK@[77; 79) 91 BLOCK_EXPR@[77; 79)
92 L_CURLY@[77; 78) "{" 92 BLOCK@[77; 79)
93 R_CURLY@[78; 79) "}" 93 L_CURLY@[77; 78) "{"
94 R_CURLY@[78; 79) "}"
94 WHITESPACE@[79; 80) "\n" 95 WHITESPACE@[79; 80) "\n"
95 FN_DEF@[80; 134) 96 FN_DEF@[80; 134)
96 FN_KW@[80; 82) "fn" 97 FN_KW@[80; 82) "fn"
@@ -153,9 +154,10 @@ SOURCE_FILE@[0; 200)
153 NAME_REF@[123; 131) 154 NAME_REF@[123; 131)
154 IDENT@[123; 131) "Iterator" 155 IDENT@[123; 131) "Iterator"
155 WHITESPACE@[131; 132) " " 156 WHITESPACE@[131; 132) " "
156 BLOCK@[132; 134) 157 BLOCK_EXPR@[132; 134)
157 L_CURLY@[132; 133) "{" 158 BLOCK@[132; 134)
158 R_CURLY@[133; 134) "}" 159 L_CURLY@[132; 133) "{"
160 R_CURLY@[133; 134) "}"
159 WHITESPACE@[134; 135) "\n" 161 WHITESPACE@[134; 135) "\n"
160 FN_DEF@[135; 199) 162 FN_DEF@[135; 199)
161 FN_KW@[135; 137) "fn" 163 FN_KW@[135; 137) "fn"
@@ -234,7 +236,8 @@ SOURCE_FILE@[0; 200)
234 NAME_REF@[188; 196) 236 NAME_REF@[188; 196)
235 IDENT@[188; 196) "Iterator" 237 IDENT@[188; 196) "Iterator"
236 WHITESPACE@[196; 197) " " 238 WHITESPACE@[196; 197) " "
237 BLOCK@[197; 199) 239 BLOCK_EXPR@[197; 199)
238 L_CURLY@[197; 198) "{" 240 BLOCK@[197; 199)
239 R_CURLY@[198; 199) "}" 241 L_CURLY@[197; 198) "{"
242 R_CURLY@[198; 199) "}"
240 WHITESPACE@[199; 200) "\n" 243 WHITESPACE@[199; 200) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.txt
index 87a56d8ce..8f34afe76 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.txt
@@ -8,47 +8,48 @@ SOURCE_FILE@[0; 52)
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; 51) 11 BLOCK_EXPR@[9; 51)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 51)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 26) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 26)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 PLACEHOLDER_PAT@[19; 20) 17 WHITESPACE@[18; 19) " "
18 UNDERSCORE@[19; 20) "_" 18 PLACEHOLDER_PAT@[19; 20)
19 WHITESPACE@[20; 21) " " 19 UNDERSCORE@[19; 20) "_"
20 EQ@[21; 22) "=" 20 WHITESPACE@[20; 21) " "
21 WHITESPACE@[22; 23) " " 21 EQ@[21; 22) "="
22 REF_EXPR@[23; 25) 22 WHITESPACE@[22; 23) " "
23 AMP@[23; 24) "&" 23 REF_EXPR@[23; 25)
24 LITERAL@[24; 25) 24 AMP@[23; 24) "&"
25 INT_NUMBER@[24; 25) "1" 25 LITERAL@[24; 25)
26 SEMI@[25; 26) ";" 26 INT_NUMBER@[24; 25) "1"
27 WHITESPACE@[26; 31) "\n " 27 SEMI@[25; 26) ";"
28 LET_STMT@[31; 49) 28 WHITESPACE@[26; 31) "\n "
29 LET_KW@[31; 34) "let" 29 LET_STMT@[31; 49)
30 WHITESPACE@[34; 35) " " 30 LET_KW@[31; 34) "let"
31 PLACEHOLDER_PAT@[35; 36) 31 WHITESPACE@[34; 35) " "
32 UNDERSCORE@[35; 36) "_" 32 PLACEHOLDER_PAT@[35; 36)
33 WHITESPACE@[36; 37) " " 33 UNDERSCORE@[35; 36) "_"
34 EQ@[37; 38) "=" 34 WHITESPACE@[36; 37) " "
35 WHITESPACE@[38; 39) " " 35 EQ@[37; 38) "="
36 REF_EXPR@[39; 48) 36 WHITESPACE@[38; 39) " "
37 AMP@[39; 40) "&" 37 REF_EXPR@[39; 48)
38 MUT_KW@[40; 43) "mut" 38 AMP@[39; 40) "&"
39 WHITESPACE@[43; 44) " " 39 MUT_KW@[40; 43) "mut"
40 REF_EXPR@[44; 48) 40 WHITESPACE@[43; 44) " "
41 AMP@[44; 45) "&" 41 REF_EXPR@[44; 48)
42 CALL_EXPR@[45; 48) 42 AMP@[44; 45) "&"
43 PATH_EXPR@[45; 46) 43 CALL_EXPR@[45; 48)
44 PATH@[45; 46) 44 PATH_EXPR@[45; 46)
45 PATH_SEGMENT@[45; 46) 45 PATH@[45; 46)
46 NAME_REF@[45; 46) 46 PATH_SEGMENT@[45; 46)
47 IDENT@[45; 46) "f" 47 NAME_REF@[45; 46)
48 ARG_LIST@[46; 48) 48 IDENT@[45; 46) "f"
49 L_PAREN@[46; 47) "(" 49 ARG_LIST@[46; 48)
50 R_PAREN@[47; 48) ")" 50 L_PAREN@[46; 47) "("
51 SEMI@[48; 49) ";" 51 R_PAREN@[47; 48) ")"
52 WHITESPACE@[49; 50) "\n" 52 SEMI@[48; 49) ";"
53 R_CURLY@[50; 51) "}" 53 WHITESPACE@[49; 50) "\n"
54 R_CURLY@[50; 51) "}"
54 WHITESPACE@[51; 52) "\n" 55 WHITESPACE@[51; 52) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.txt b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.txt
index 2f2be32b9..2903c6f9a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.txt
@@ -8,128 +8,129 @@ SOURCE_FILE@[0; 189)
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; 188) 11 BLOCK_EXPR@[9; 188)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 188)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 28) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 28)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 PLACEHOLDER_PAT@[19; 20) 17 WHITESPACE@[18; 19) " "
18 UNDERSCORE@[19; 20) "_" 18 PLACEHOLDER_PAT@[19; 20)
19 WHITESPACE@[20; 21) " " 19 UNDERSCORE@[19; 20) "_"
20 EQ@[21; 22) "=" 20 WHITESPACE@[20; 21) " "
21 WHITESPACE@[22; 23) " " 21 EQ@[21; 22) "="
22 LITERAL@[23; 27) 22 WHITESPACE@[22; 23) " "
23 TRUE_KW@[23; 27) "true" 23 LITERAL@[23; 27)
24 SEMI@[27; 28) ";" 24 TRUE_KW@[23; 27) "true"
25 WHITESPACE@[28; 33) "\n " 25 SEMI@[27; 28) ";"
26 LET_STMT@[33; 47) 26 WHITESPACE@[28; 33) "\n "
27 LET_KW@[33; 36) "let" 27 LET_STMT@[33; 47)
28 WHITESPACE@[36; 37) " " 28 LET_KW@[33; 36) "let"
29 PLACEHOLDER_PAT@[37; 38) 29 WHITESPACE@[36; 37) " "
30 UNDERSCORE@[37; 38) "_" 30 PLACEHOLDER_PAT@[37; 38)
31 WHITESPACE@[38; 39) " " 31 UNDERSCORE@[37; 38) "_"
32 EQ@[39; 40) "=" 32 WHITESPACE@[38; 39) " "
33 WHITESPACE@[40; 41) " " 33 EQ@[39; 40) "="
34 LITERAL@[41; 46) 34 WHITESPACE@[40; 41) " "
35 FALSE_KW@[41; 46) "false" 35 LITERAL@[41; 46)
36 SEMI@[46; 47) ";" 36 FALSE_KW@[41; 46) "false"
37 WHITESPACE@[47; 52) "\n " 37 SEMI@[46; 47) ";"
38 LET_STMT@[52; 62) 38 WHITESPACE@[47; 52) "\n "
39 LET_KW@[52; 55) "let" 39 LET_STMT@[52; 62)
40 WHITESPACE@[55; 56) " " 40 LET_KW@[52; 55) "let"
41 PLACEHOLDER_PAT@[56; 57) 41 WHITESPACE@[55; 56) " "
42 UNDERSCORE@[56; 57) "_" 42 PLACEHOLDER_PAT@[56; 57)
43 WHITESPACE@[57; 58) " " 43 UNDERSCORE@[56; 57) "_"
44 EQ@[58; 59) "=" 44 WHITESPACE@[57; 58) " "
45 WHITESPACE@[59; 60) " " 45 EQ@[58; 59) "="
46 LITERAL@[60; 61) 46 WHITESPACE@[59; 60) " "
47 INT_NUMBER@[60; 61) "1" 47 LITERAL@[60; 61)
48 SEMI@[61; 62) ";" 48 INT_NUMBER@[60; 61) "1"
49 WHITESPACE@[62; 67) "\n " 49 SEMI@[61; 62) ";"
50 LET_STMT@[67; 79) 50 WHITESPACE@[62; 67) "\n "
51 LET_KW@[67; 70) "let" 51 LET_STMT@[67; 79)
52 WHITESPACE@[70; 71) " " 52 LET_KW@[67; 70) "let"
53 PLACEHOLDER_PAT@[71; 72) 53 WHITESPACE@[70; 71) " "
54 UNDERSCORE@[71; 72) "_" 54 PLACEHOLDER_PAT@[71; 72)
55 WHITESPACE@[72; 73) " " 55 UNDERSCORE@[71; 72) "_"
56 EQ@[73; 74) "=" 56 WHITESPACE@[72; 73) " "
57 WHITESPACE@[74; 75) " " 57 EQ@[73; 74) "="
58 LITERAL@[75; 78) 58 WHITESPACE@[74; 75) " "
59 FLOAT_NUMBER@[75; 78) "2.0" 59 LITERAL@[75; 78)
60 SEMI@[78; 79) ";" 60 FLOAT_NUMBER@[75; 78) "2.0"
61 WHITESPACE@[79; 84) "\n " 61 SEMI@[78; 79) ";"
62 LET_STMT@[84; 97) 62 WHITESPACE@[79; 84) "\n "
63 LET_KW@[84; 87) "let" 63 LET_STMT@[84; 97)
64 WHITESPACE@[87; 88) " " 64 LET_KW@[84; 87) "let"
65 PLACEHOLDER_PAT@[88; 89) 65 WHITESPACE@[87; 88) " "
66 UNDERSCORE@[88; 89) "_" 66 PLACEHOLDER_PAT@[88; 89)
67 WHITESPACE@[89; 90) " " 67 UNDERSCORE@[88; 89) "_"
68 EQ@[90; 91) "=" 68 WHITESPACE@[89; 90) " "
69 WHITESPACE@[91; 92) " " 69 EQ@[90; 91) "="
70 LITERAL@[92; 96) 70 WHITESPACE@[91; 92) " "
71 BYTE@[92; 96) "b\'a\'" 71 LITERAL@[92; 96)
72 SEMI@[96; 97) ";" 72 BYTE@[92; 96) "b\'a\'"
73 WHITESPACE@[97; 102) "\n " 73 SEMI@[96; 97) ";"
74 LET_STMT@[102; 114) 74 WHITESPACE@[97; 102) "\n "
75 LET_KW@[102; 105) "let" 75 LET_STMT@[102; 114)
76 WHITESPACE@[105; 106) " " 76 LET_KW@[102; 105) "let"
77 PLACEHOLDER_PAT@[106; 107) 77 WHITESPACE@[105; 106) " "
78 UNDERSCORE@[106; 107) "_" 78 PLACEHOLDER_PAT@[106; 107)
79 WHITESPACE@[107; 108) " " 79 UNDERSCORE@[106; 107) "_"
80 EQ@[108; 109) "=" 80 WHITESPACE@[107; 108) " "
81 WHITESPACE@[109; 110) " " 81 EQ@[108; 109) "="
82 LITERAL@[110; 113) 82 WHITESPACE@[109; 110) " "
83 CHAR@[110; 113) "\'b\'" 83 LITERAL@[110; 113)
84 SEMI@[113; 114) ";" 84 CHAR@[110; 113) "\'b\'"
85 WHITESPACE@[114; 119) "\n " 85 SEMI@[113; 114) ";"
86 LET_STMT@[119; 131) 86 WHITESPACE@[114; 119) "\n "
87 LET_KW@[119; 122) "let" 87 LET_STMT@[119; 131)
88 WHITESPACE@[122; 123) " " 88 LET_KW@[119; 122) "let"
89 PLACEHOLDER_PAT@[123; 124) 89 WHITESPACE@[122; 123) " "
90 UNDERSCORE@[123; 124) "_" 90 PLACEHOLDER_PAT@[123; 124)
91 WHITESPACE@[124; 125) " " 91 UNDERSCORE@[123; 124) "_"
92 EQ@[125; 126) "=" 92 WHITESPACE@[124; 125) " "
93 WHITESPACE@[126; 127) " " 93 EQ@[125; 126) "="
94 LITERAL@[127; 130) 94 WHITESPACE@[126; 127) " "
95 STRING@[127; 130) "\"c\"" 95 LITERAL@[127; 130)
96 SEMI@[130; 131) ";" 96 STRING@[127; 130) "\"c\""
97 WHITESPACE@[131; 136) "\n " 97 SEMI@[130; 131) ";"
98 LET_STMT@[136; 149) 98 WHITESPACE@[131; 136) "\n "
99 LET_KW@[136; 139) "let" 99 LET_STMT@[136; 149)
100 WHITESPACE@[139; 140) " " 100 LET_KW@[136; 139) "let"
101 PLACEHOLDER_PAT@[140; 141) 101 WHITESPACE@[139; 140) " "
102 UNDERSCORE@[140; 141) "_" 102 PLACEHOLDER_PAT@[140; 141)
103 WHITESPACE@[141; 142) " " 103 UNDERSCORE@[140; 141) "_"
104 EQ@[142; 143) "=" 104 WHITESPACE@[141; 142) " "
105 WHITESPACE@[143; 144) " " 105 EQ@[142; 143) "="
106 LITERAL@[144; 148) 106 WHITESPACE@[143; 144) " "
107 RAW_STRING@[144; 148) "r\"d\"" 107 LITERAL@[144; 148)
108 SEMI@[148; 149) ";" 108 RAW_STRING@[144; 148) "r\"d\""
109 WHITESPACE@[149; 154) "\n " 109 SEMI@[148; 149) ";"
110 LET_STMT@[154; 167) 110 WHITESPACE@[149; 154) "\n "
111 LET_KW@[154; 157) "let" 111 LET_STMT@[154; 167)
112 WHITESPACE@[157; 158) " " 112 LET_KW@[154; 157) "let"
113 PLACEHOLDER_PAT@[158; 159) 113 WHITESPACE@[157; 158) " "
114 UNDERSCORE@[158; 159) "_" 114 PLACEHOLDER_PAT@[158; 159)
115 WHITESPACE@[159; 160) " " 115 UNDERSCORE@[158; 159) "_"
116 EQ@[160; 161) "=" 116 WHITESPACE@[159; 160) " "
117 WHITESPACE@[161; 162) " " 117 EQ@[160; 161) "="
118 LITERAL@[162; 166) 118 WHITESPACE@[161; 162) " "
119 BYTE_STRING@[162; 166) "b\"e\"" 119 LITERAL@[162; 166)
120 SEMI@[166; 167) ";" 120 BYTE_STRING@[162; 166) "b\"e\""
121 WHITESPACE@[167; 172) "\n " 121 SEMI@[166; 167) ";"
122 LET_STMT@[172; 186) 122 WHITESPACE@[167; 172) "\n "
123 LET_KW@[172; 175) "let" 123 LET_STMT@[172; 186)
124 WHITESPACE@[175; 176) " " 124 LET_KW@[172; 175) "let"
125 PLACEHOLDER_PAT@[176; 177) 125 WHITESPACE@[175; 176) " "
126 UNDERSCORE@[176; 177) "_" 126 PLACEHOLDER_PAT@[176; 177)
127 WHITESPACE@[177; 178) " " 127 UNDERSCORE@[176; 177) "_"
128 EQ@[178; 179) "=" 128 WHITESPACE@[177; 178) " "
129 WHITESPACE@[179; 180) " " 129 EQ@[178; 179) "="
130 LITERAL@[180; 185) 130 WHITESPACE@[179; 180) " "
131 RAW_BYTE_STRING@[180; 185) "br\"f\"" 131 LITERAL@[180; 185)
132 SEMI@[185; 186) ";" 132 RAW_BYTE_STRING@[180; 185) "br\"f\""
133 WHITESPACE@[186; 187) "\n" 133 SEMI@[185; 186) ";"
134 R_CURLY@[187; 188) "}" 134 WHITESPACE@[186; 187) "\n"
135 R_CURLY@[187; 188) "}"
135 WHITESPACE@[188; 189) "\n" 136 WHITESPACE@[188; 189) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.txt b/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.txt
index ac793c95c..ca1a97161 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.txt
@@ -8,9 +8,10 @@ SOURCE_FILE@[0; 30)
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; 11) 11 BLOCK_EXPR@[9; 11)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 11)
13 R_CURLY@[10; 11) "}" 13 L_CURLY@[9; 10) "{"
14 R_CURLY@[10; 11) "}"
14 WHITESPACE@[11; 12) "\n" 15 WHITESPACE@[11; 12) "\n"
15 FN_DEF@[12; 29) 16 FN_DEF@[12; 29)
16 FN_KW@[12; 14) "fn" 17 FN_KW@[12; 14) "fn"
@@ -28,7 +29,8 @@ SOURCE_FILE@[0; 30)
28 L_PAREN@[24; 25) "(" 29 L_PAREN@[24; 25) "("
29 R_PAREN@[25; 26) ")" 30 R_PAREN@[25; 26) ")"
30 WHITESPACE@[26; 27) " " 31 WHITESPACE@[26; 27) " "
31 BLOCK@[27; 29) 32 BLOCK_EXPR@[27; 29)
32 L_CURLY@[27; 28) "{" 33 BLOCK@[27; 29)
33 R_CURLY@[28; 29) "}" 34 L_CURLY@[27; 28) "{"
35 R_CURLY@[28; 29) "}"
34 WHITESPACE@[29; 30) "\n" 36 WHITESPACE@[29; 30) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.txt b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.txt
index b93a10c5b..b23f43b46 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.txt
@@ -7,59 +7,63 @@ SOURCE_FILE@[0; 88)
7 PARAM_LIST@[6; 8) 7 PARAM_LIST@[6; 8)
8 L_PAREN@[6; 7) "(" 8 L_PAREN@[6; 7) "("
9 R_PAREN@[7; 8) ")" 9 R_PAREN@[7; 8) ")"
10 BLOCK@[8; 87) 10 BLOCK_EXPR@[8; 87)
11 L_CURLY@[8; 9) "{" 11 BLOCK@[8; 87)
12 WHITESPACE@[9; 14) "\n " 12 L_CURLY@[8; 9) "{"
13 EXPR_STMT@[14; 25) 13 WHITESPACE@[9; 14) "\n "
14 IF_EXPR@[14; 25) 14 EXPR_STMT@[14; 25)
15 IF_KW@[14; 16) "if" 15 IF_EXPR@[14; 25)
16 WHITESPACE@[16; 17) " " 16 IF_KW@[14; 16) "if"
17 CONDITION@[17; 22) 17 WHITESPACE@[16; 17) " "
18 BREAK_EXPR@[17; 22) 18 CONDITION@[17; 22)
19 BREAK_KW@[17; 22) "break" 19 BREAK_EXPR@[17; 22)
20 WHITESPACE@[22; 23) " " 20 BREAK_KW@[17; 22) "break"
21 BLOCK@[23; 25) 21 WHITESPACE@[22; 23) " "
22 L_CURLY@[23; 24) "{" 22 BLOCK_EXPR@[23; 25)
23 R_CURLY@[24; 25) "}" 23 BLOCK@[23; 25)
24 WHITESPACE@[25; 30) "\n " 24 L_CURLY@[23; 24) "{"
25 EXPR_STMT@[30; 44) 25 R_CURLY@[24; 25) "}"
26 WHILE_EXPR@[30; 44) 26 WHITESPACE@[25; 30) "\n "
27 WHILE_KW@[30; 35) "while" 27 EXPR_STMT@[30; 44)
28 WHITESPACE@[35; 36) " " 28 WHILE_EXPR@[30; 44)
29 CONDITION@[36; 41) 29 WHILE_KW@[30; 35) "while"
30 BREAK_EXPR@[36; 41) 30 WHITESPACE@[35; 36) " "
31 BREAK_KW@[36; 41) "break" 31 CONDITION@[36; 41)
32 WHITESPACE@[41; 42) " " 32 BREAK_EXPR@[36; 41)
33 BLOCK@[42; 44) 33 BREAK_KW@[36; 41) "break"
34 L_CURLY@[42; 43) "{" 34 WHITESPACE@[41; 42) " "
35 R_CURLY@[43; 44) "}" 35 BLOCK_EXPR@[42; 44)
36 WHITESPACE@[44; 49) "\n " 36 BLOCK@[42; 44)
37 EXPR_STMT@[49; 66) 37 L_CURLY@[42; 43) "{"
38 FOR_EXPR@[49; 66) 38 R_CURLY@[43; 44) "}"
39 FOR_KW@[49; 52) "for" 39 WHITESPACE@[44; 49) "\n "
40 WHITESPACE@[52; 53) " " 40 EXPR_STMT@[49; 66)
41 BIND_PAT@[53; 54) 41 FOR_EXPR@[49; 66)
42 NAME@[53; 54) 42 FOR_KW@[49; 52) "for"
43 IDENT@[53; 54) "i" 43 WHITESPACE@[52; 53) " "
44 WHITESPACE@[54; 55) " " 44 BIND_PAT@[53; 54)
45 IN_KW@[55; 57) "in" 45 NAME@[53; 54)
46 WHITESPACE@[57; 58) " " 46 IDENT@[53; 54) "i"
47 BREAK_EXPR@[58; 63) 47 WHITESPACE@[54; 55) " "
48 BREAK_KW@[58; 63) "break" 48 IN_KW@[55; 57) "in"
49 WHITESPACE@[63; 64) " " 49 WHITESPACE@[57; 58) " "
50 BLOCK@[64; 66) 50 BREAK_EXPR@[58; 63)
51 L_CURLY@[64; 65) "{" 51 BREAK_KW@[58; 63) "break"
52 R_CURLY@[65; 66) "}" 52 WHITESPACE@[63; 64) " "
53 WHITESPACE@[66; 71) "\n " 53 BLOCK_EXPR@[64; 66)
54 MATCH_EXPR@[71; 85) 54 BLOCK@[64; 66)
55 MATCH_KW@[71; 76) "match" 55 L_CURLY@[64; 65) "{"
56 WHITESPACE@[76; 77) " " 56 R_CURLY@[65; 66) "}"
57 BREAK_EXPR@[77; 82) 57 WHITESPACE@[66; 71) "\n "
58 BREAK_KW@[77; 82) "break" 58 MATCH_EXPR@[71; 85)
59 WHITESPACE@[82; 83) " " 59 MATCH_KW@[71; 76) "match"
60 MATCH_ARM_LIST@[83; 85) 60 WHITESPACE@[76; 77) " "
61 L_CURLY@[83; 84) "{" 61 BREAK_EXPR@[77; 82)
62 R_CURLY@[84; 85) "}" 62 BREAK_KW@[77; 82) "break"
63 WHITESPACE@[85; 86) "\n" 63 WHITESPACE@[82; 83) " "
64 R_CURLY@[86; 87) "}" 64 MATCH_ARM_LIST@[83; 85)
65 L_CURLY@[83; 84) "{"
66 R_CURLY@[84; 85) "}"
67 WHITESPACE@[85; 86) "\n"
68 R_CURLY@[86; 87) "}"
65 WHITESPACE@[87; 88) "\n" 69 WHITESPACE@[87; 88) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.txt b/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.txt
index ed5339e64..b494f6c59 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.txt
@@ -11,7 +11,8 @@ SOURCE_FILE@[0; 19)
11 L_PAREN@[13; 14) "(" 11 L_PAREN@[13; 14) "("
12 R_PAREN@[14; 15) ")" 12 R_PAREN@[14; 15) ")"
13 WHITESPACE@[15; 16) " " 13 WHITESPACE@[15; 16) " "
14 BLOCK@[16; 18) 14 BLOCK_EXPR@[16; 18)
15 L_CURLY@[16; 17) "{" 15 BLOCK@[16; 18)
16 R_CURLY@[17; 18) "}" 16 L_CURLY@[16; 17) "{"
17 R_CURLY@[17; 18) "}"
17 WHITESPACE@[18; 19) "\n" 18 WHITESPACE@[18; 19) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.txt
index b4a71f925..1a979e597 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.txt
@@ -8,26 +8,27 @@ SOURCE_FILE@[0; 26)
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; 25) 11 BLOCK_EXPR@[9; 25)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 25)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 23) 14 WHITESPACE@[10; 15) "\n "
15 INDEX_EXPR@[15; 22) 15 EXPR_STMT@[15; 23)
16 INDEX_EXPR@[15; 19) 16 INDEX_EXPR@[15; 22)
17 PATH_EXPR@[15; 16) 17 INDEX_EXPR@[15; 19)
18 PATH@[15; 16) 18 PATH_EXPR@[15; 16)
19 PATH_SEGMENT@[15; 16) 19 PATH@[15; 16)
20 NAME_REF@[15; 16) 20 PATH_SEGMENT@[15; 16)
21 IDENT@[15; 16) "x" 21 NAME_REF@[15; 16)
22 L_BRACK@[16; 17) "[" 22 IDENT@[15; 16) "x"
23 LITERAL@[17; 18) 23 L_BRACK@[16; 17) "["
24 INT_NUMBER@[17; 18) "1" 24 LITERAL@[17; 18)
25 R_BRACK@[18; 19) "]" 25 INT_NUMBER@[17; 18) "1"
26 L_BRACK@[19; 20) "[" 26 R_BRACK@[18; 19) "]"
27 LITERAL@[20; 21) 27 L_BRACK@[19; 20) "["
28 INT_NUMBER@[20; 21) "2" 28 LITERAL@[20; 21)
29 R_BRACK@[21; 22) "]" 29 INT_NUMBER@[20; 21) "2"
30 SEMI@[22; 23) ";" 30 R_BRACK@[21; 22) "]"
31 WHITESPACE@[23; 24) "\n" 31 SEMI@[22; 23) ";"
32 R_CURLY@[24; 25) "}" 32 WHITESPACE@[23; 24) "\n"
33 R_CURLY@[24; 25) "}"
33 WHITESPACE@[25; 26) "\n" 34 WHITESPACE@[25; 26) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.txt b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.txt
index f11bc1fc8..fe86894a9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.txt
@@ -8,21 +8,22 @@ SOURCE_FILE@[0; 26)
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; 25) 11 BLOCK_EXPR@[10; 25)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 25)
13 WHITESPACE@[11; 12) " " 13 L_CURLY@[10; 11) "{"
14 LET_STMT@[12; 23) 14 WHITESPACE@[11; 12) " "
15 LET_KW@[12; 15) "let" 15 LET_STMT@[12; 23)
16 WHITESPACE@[15; 16) " " 16 LET_KW@[12; 15) "let"
17 PLACEHOLDER_PAT@[16; 17) 17 WHITESPACE@[15; 16) " "
18 UNDERSCORE@[16; 17) "_" 18 PLACEHOLDER_PAT@[16; 17)
19 WHITESPACE@[17; 18) " " 19 UNDERSCORE@[16; 17) "_"
20 EQ@[18; 19) "=" 20 WHITESPACE@[17; 18) " "
21 WHITESPACE@[19; 20) " " 21 EQ@[18; 19) "="
22 TUPLE_EXPR@[20; 22) 22 WHITESPACE@[19; 20) " "
23 L_PAREN@[20; 21) "(" 23 TUPLE_EXPR@[20; 22)
24 R_PAREN@[21; 22) ")" 24 L_PAREN@[20; 21) "("
25 SEMI@[22; 23) ";" 25 R_PAREN@[21; 22) ")"
26 WHITESPACE@[23; 24) " " 26 SEMI@[22; 23) ";"
27 R_CURLY@[24; 25) "}" 27 WHITESPACE@[23; 24) " "
28 R_CURLY@[24; 25) "}"
28 WHITESPACE@[25; 26) "\n" 29 WHITESPACE@[25; 26) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.txt b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.txt
index 6d24f214e..157aa29f5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.txt
@@ -8,118 +8,123 @@ SOURCE_FILE@[0; 167)
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; 166) 11 BLOCK_EXPR@[9; 166)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 166)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 25) 14 WHITESPACE@[10; 15) "\n "
15 IF_EXPR@[15; 25) 15 EXPR_STMT@[15; 25)
16 IF_KW@[15; 17) "if" 16 IF_EXPR@[15; 25)
17 WHITESPACE@[17; 18) " " 17 IF_KW@[15; 17) "if"
18 CONDITION@[18; 22) 18 WHITESPACE@[17; 18) " "
19 LITERAL@[18; 22) 19 CONDITION@[18; 22)
20 TRUE_KW@[18; 22) "true" 20 LITERAL@[18; 22)
21 WHITESPACE@[22; 23) " " 21 TRUE_KW@[18; 22) "true"
22 BLOCK@[23; 25) 22 WHITESPACE@[22; 23) " "
23 L_CURLY@[23; 24) "{" 23 BLOCK_EXPR@[23; 25)
24 R_CURLY@[24; 25) "}" 24 BLOCK@[23; 25)
25 WHITESPACE@[25; 30) "\n " 25 L_CURLY@[23; 24) "{"
26 EXPR_STMT@[30; 37) 26 R_CURLY@[24; 25) "}"
27 LOOP_EXPR@[30; 37) 27 WHITESPACE@[25; 30) "\n "
28 LOOP_KW@[30; 34) "loop" 28 EXPR_STMT@[30; 37)
29 WHITESPACE@[34; 35) " " 29 LOOP_EXPR@[30; 37)
30 BLOCK@[35; 37) 30 LOOP_KW@[30; 34) "loop"
31 L_CURLY@[35; 36) "{" 31 WHITESPACE@[34; 35) " "
32 R_CURLY@[36; 37) "}" 32 BLOCK_EXPR@[35; 37)
33 WHITESPACE@[37; 42) "\n " 33 BLOCK@[35; 37)
34 EXPR_STMT@[42; 53) 34 L_CURLY@[35; 36) "{"
35 MATCH_EXPR@[42; 53) 35 R_CURLY@[36; 37) "}"
36 MATCH_KW@[42; 47) "match" 36 WHITESPACE@[37; 42) "\n "
37 WHITESPACE@[47; 48) " " 37 EXPR_STMT@[42; 53)
38 TUPLE_EXPR@[48; 50) 38 MATCH_EXPR@[42; 53)
39 L_PAREN@[48; 49) "(" 39 MATCH_KW@[42; 47) "match"
40 R_PAREN@[49; 50) ")" 40 WHITESPACE@[47; 48) " "
41 WHITESPACE@[50; 51) " " 41 TUPLE_EXPR@[48; 50)
42 MATCH_ARM_LIST@[51; 53) 42 L_PAREN@[48; 49) "("
43 L_CURLY@[51; 52) "{" 43 R_PAREN@[49; 50) ")"
44 R_CURLY@[52; 53) "}" 44 WHITESPACE@[50; 51) " "
45 WHITESPACE@[53; 58) "\n " 45 MATCH_ARM_LIST@[51; 53)
46 EXPR_STMT@[58; 71) 46 L_CURLY@[51; 52) "{"
47 WHILE_EXPR@[58; 71) 47 R_CURLY@[52; 53) "}"
48 WHILE_KW@[58; 63) "while" 48 WHITESPACE@[53; 58) "\n "
49 WHITESPACE@[63; 64) " " 49 EXPR_STMT@[58; 71)
50 CONDITION@[64; 68) 50 WHILE_EXPR@[58; 71)
51 LITERAL@[64; 68) 51 WHILE_KW@[58; 63) "while"
52 TRUE_KW@[64; 68) "true" 52 WHITESPACE@[63; 64) " "
53 WHITESPACE@[68; 69) " " 53 CONDITION@[64; 68)
54 BLOCK@[69; 71) 54 LITERAL@[64; 68)
55 L_CURLY@[69; 70) "{" 55 TRUE_KW@[64; 68) "true"
56 R_CURLY@[70; 71) "}" 56 WHITESPACE@[68; 69) " "
57 WHITESPACE@[71; 76) "\n " 57 BLOCK_EXPR@[69; 71)
58 EXPR_STMT@[76; 90) 58 BLOCK@[69; 71)
59 FOR_EXPR@[76; 90) 59 L_CURLY@[69; 70) "{"
60 FOR_KW@[76; 79) "for" 60 R_CURLY@[70; 71) "}"
61 WHITESPACE@[79; 80) " " 61 WHITESPACE@[71; 76) "\n "
62 PLACEHOLDER_PAT@[80; 81) 62 EXPR_STMT@[76; 90)
63 UNDERSCORE@[80; 81) "_" 63 FOR_EXPR@[76; 90)
64 WHITESPACE@[81; 82) " " 64 FOR_KW@[76; 79) "for"
65 IN_KW@[82; 84) "in" 65 WHITESPACE@[79; 80) " "
66 WHITESPACE@[84; 85) " " 66 PLACEHOLDER_PAT@[80; 81)
67 TUPLE_EXPR@[85; 87) 67 UNDERSCORE@[80; 81) "_"
68 L_PAREN@[85; 86) "(" 68 WHITESPACE@[81; 82) " "
69 R_PAREN@[86; 87) ")" 69 IN_KW@[82; 84) "in"
70 WHITESPACE@[87; 88) " " 70 WHITESPACE@[84; 85) " "
71 BLOCK@[88; 90) 71 TUPLE_EXPR@[85; 87)
72 L_CURLY@[88; 89) "{" 72 L_PAREN@[85; 86) "("
73 R_CURLY@[89; 90) "}" 73 R_PAREN@[86; 87) ")"
74 WHITESPACE@[90; 95) "\n " 74 WHITESPACE@[87; 88) " "
75 EXPR_STMT@[95; 97) 75 BLOCK_EXPR@[88; 90)
76 BLOCK_EXPR@[95; 97) 76 BLOCK@[88; 90)
77 BLOCK@[95; 97) 77 L_CURLY@[88; 89) "{"
78 L_CURLY@[95; 96) "{" 78 R_CURLY@[89; 90) "}"
79 R_CURLY@[96; 97) "}" 79 WHITESPACE@[90; 95) "\n "
80 WHITESPACE@[97; 102) "\n " 80 EXPR_STMT@[95; 97)
81 EXPR_STMT@[102; 104) 81 BLOCK_EXPR@[95; 97)
82 BLOCK_EXPR@[102; 104) 82 BLOCK@[95; 97)
83 BLOCK@[102; 104) 83 L_CURLY@[95; 96) "{"
84 L_CURLY@[102; 103) "{" 84 R_CURLY@[96; 97) "}"
85 R_CURLY@[103; 104) "}" 85 WHITESPACE@[97; 102) "\n "
86 WHITESPACE@[104; 109) "\n " 86 EXPR_STMT@[102; 104)
87 EXPR_STMT@[109; 152) 87 BLOCK_EXPR@[102; 104)
88 MACRO_CALL@[109; 152) 88 BLOCK@[102; 104)
89 PATH@[109; 120) 89 L_CURLY@[102; 103) "{"
90 PATH_SEGMENT@[109; 120) 90 R_CURLY@[103; 104) "}"
91 NAME_REF@[109; 120) 91 WHITESPACE@[104; 109) "\n "
92 IDENT@[109; 120) "macro_rules" 92 EXPR_STMT@[109; 152)
93 EXCL@[120; 121) "!" 93 MACRO_CALL@[109; 152)
94 WHITESPACE@[121; 122) " " 94 PATH@[109; 120)
95 NAME@[122; 126) 95 PATH_SEGMENT@[109; 120)
96 IDENT@[122; 126) "test" 96 NAME_REF@[109; 120)
97 WHITESPACE@[126; 127) " " 97 IDENT@[109; 120) "macro_rules"
98 TOKEN_TREE@[127; 152) 98 EXCL@[120; 121) "!"
99 L_CURLY@[127; 128) "{" 99 WHITESPACE@[121; 122) " "
100 WHITESPACE@[128; 138) "\n " 100 NAME@[122; 126)
101 TOKEN_TREE@[138; 140) 101 IDENT@[122; 126) "test"
102 L_PAREN@[138; 139) "(" 102 WHITESPACE@[126; 127) " "
103 R_PAREN@[139; 140) ")" 103 TOKEN_TREE@[127; 152)
104 WHITESPACE@[140; 141) " " 104 L_CURLY@[127; 128) "{"
105 EQ@[141; 142) "=" 105 WHITESPACE@[128; 138) "\n "
106 R_ANGLE@[142; 143) ">" 106 TOKEN_TREE@[138; 140)
107 WHITESPACE@[143; 144) " " 107 L_PAREN@[138; 139) "("
108 TOKEN_TREE@[144; 146) 108 R_PAREN@[139; 140) ")"
109 L_CURLY@[144; 145) "{" 109 WHITESPACE@[140; 141) " "
110 R_CURLY@[145; 146) "}" 110 EQ@[141; 142) "="
111 WHITESPACE@[146; 151) "\n " 111 R_ANGLE@[142; 143) ">"
112 R_CURLY@[151; 152) "}" 112 WHITESPACE@[143; 144) " "
113 WHITESPACE@[152; 157) "\n " 113 TOKEN_TREE@[144; 146)
114 MACRO_CALL@[157; 164) 114 L_CURLY@[144; 145) "{"
115 PATH@[157; 161) 115 R_CURLY@[145; 146) "}"
116 PATH_SEGMENT@[157; 161) 116 WHITESPACE@[146; 151) "\n "
117 NAME_REF@[157; 161) 117 R_CURLY@[151; 152) "}"
118 IDENT@[157; 161) "test" 118 WHITESPACE@[152; 157) "\n "
119 EXCL@[161; 162) "!" 119 MACRO_CALL@[157; 164)
120 TOKEN_TREE@[162; 164) 120 PATH@[157; 161)
121 L_CURLY@[162; 163) "{" 121 PATH_SEGMENT@[157; 161)
122 R_CURLY@[163; 164) "}" 122 NAME_REF@[157; 161)
123 WHITESPACE@[164; 165) "\n" 123 IDENT@[157; 161) "test"
124 R_CURLY@[165; 166) "}" 124 EXCL@[161; 162) "!"
125 TOKEN_TREE@[162; 164)
126 L_CURLY@[162; 163) "{"
127 R_CURLY@[163; 164) "}"
128 WHITESPACE@[164; 165) "\n"
129 R_CURLY@[165; 166) "}"
125 WHITESPACE@[166; 167) "\n" 130 WHITESPACE@[166; 167) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.txt b/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.txt
index 0dd42ab8e..072dc9d16 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.txt
@@ -12,7 +12,8 @@ SOURCE_FILE@[0; 25)
12 L_PAREN@[19; 20) "(" 12 L_PAREN@[19; 20) "("
13 R_PAREN@[20; 21) ")" 13 R_PAREN@[20; 21) ")"
14 WHITESPACE@[21; 22) " " 14 WHITESPACE@[21; 22) " "
15 BLOCK@[22; 24) 15 BLOCK_EXPR@[22; 24)
16 L_CURLY@[22; 23) "{" 16 BLOCK@[22; 24)
17 R_CURLY@[23; 24) "}" 17 L_CURLY@[22; 23) "{"
18 R_CURLY@[23; 24) "}"
18 WHITESPACE@[24; 25) "\n" 19 WHITESPACE@[24; 25) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt
index 80d636819..ed57a9eea 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.txt
@@ -8,9 +8,10 @@ SOURCE_FILE@[0; 67)
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; 9) 11 BLOCK_EXPR@[7; 9)
12 L_CURLY@[7; 8) "{" 12 BLOCK@[7; 9)
13 R_CURLY@[8; 9) "}" 13 L_CURLY@[7; 8) "{"
14 R_CURLY@[8; 9) "}"
14 WHITESPACE@[9; 10) "\n" 15 WHITESPACE@[9; 10) "\n"
15 FN_DEF@[10; 25) 16 FN_DEF@[10; 25)
16 FN_KW@[10; 12) "fn" 17 FN_KW@[10; 12) "fn"
@@ -32,9 +33,10 @@ SOURCE_FILE@[0; 67)
32 IDENT@[18; 21) "i32" 33 IDENT@[18; 21) "i32"
33 R_PAREN@[21; 22) ")" 34 R_PAREN@[21; 22) ")"
34 WHITESPACE@[22; 23) " " 35 WHITESPACE@[22; 23) " "
35 BLOCK@[23; 25) 36 BLOCK_EXPR@[23; 25)
36 L_CURLY@[23; 24) "{" 37 BLOCK@[23; 25)
37 R_CURLY@[24; 25) "}" 38 L_CURLY@[23; 24) "{"
39 R_CURLY@[24; 25) "}"
38 WHITESPACE@[25; 26) "\n" 40 WHITESPACE@[25; 26) "\n"
39 FN_DEF@[26; 43) 41 FN_DEF@[26; 43)
40 FN_KW@[26; 28) "fn" 42 FN_KW@[26; 28) "fn"
@@ -58,9 +60,10 @@ SOURCE_FILE@[0; 67)
58 WHITESPACE@[38; 39) " " 60 WHITESPACE@[38; 39) " "
59 R_PAREN@[39; 40) ")" 61 R_PAREN@[39; 40) ")"
60 WHITESPACE@[40; 41) " " 62 WHITESPACE@[40; 41) " "
61 BLOCK@[41; 43) 63 BLOCK_EXPR@[41; 43)
62 L_CURLY@[41; 42) "{" 64 BLOCK@[41; 43)
63 R_CURLY@[42; 43) "}" 65 L_CURLY@[41; 42) "{"
66 R_CURLY@[42; 43) "}"
64 WHITESPACE@[43; 44) "\n" 67 WHITESPACE@[43; 44) "\n"
65 FN_DEF@[44; 66) 68 FN_DEF@[44; 66)
66 FN_KW@[44; 46) "fn" 69 FN_KW@[44; 46) "fn"
@@ -93,7 +96,8 @@ SOURCE_FILE@[0; 67)
93 R_PAREN@[61; 62) ")" 96 R_PAREN@[61; 62) ")"
94 R_PAREN@[62; 63) ")" 97 R_PAREN@[62; 63) ")"
95 WHITESPACE@[63; 64) " " 98 WHITESPACE@[63; 64) " "
96 BLOCK@[64; 66) 99 BLOCK_EXPR@[64; 66)
97 L_CURLY@[64; 65) "{" 100 BLOCK@[64; 66)
98 R_CURLY@[65; 66) "}" 101 L_CURLY@[64; 65) "{"
102 R_CURLY@[65; 66) "}"
99 WHITESPACE@[66; 67) "\n" 103 WHITESPACE@[66; 67) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.txt
index 09e108570..83c58d25f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.txt
@@ -8,27 +8,29 @@ SOURCE_FILE@[0; 33)
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; 32) 11 BLOCK_EXPR@[9; 32)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 32)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 30) 14 WHITESPACE@[10; 15) "\n "
15 FOR_EXPR@[15; 29) 15 EXPR_STMT@[15; 30)
16 FOR_KW@[15; 18) "for" 16 FOR_EXPR@[15; 29)
17 WHITESPACE@[18; 19) " " 17 FOR_KW@[15; 18) "for"
18 BIND_PAT@[19; 20) 18 WHITESPACE@[18; 19) " "
19 NAME@[19; 20) 19 BIND_PAT@[19; 20)
20 IDENT@[19; 20) "x" 20 NAME@[19; 20)
21 WHITESPACE@[20; 21) " " 21 IDENT@[19; 20) "x"
22 IN_KW@[21; 23) "in" 22 WHITESPACE@[20; 21) " "
23 WHITESPACE@[23; 24) " " 23 IN_KW@[21; 23) "in"
24 ARRAY_EXPR@[24; 26) 24 WHITESPACE@[23; 24) " "
25 L_BRACK@[24; 25) "[" 25 ARRAY_EXPR@[24; 26)
26 R_BRACK@[25; 26) "]" 26 L_BRACK@[24; 25) "["
27 WHITESPACE@[26; 27) " " 27 R_BRACK@[25; 26) "]"
28 BLOCK@[27; 29) 28 WHITESPACE@[26; 27) " "
29 L_CURLY@[27; 28) "{" 29 BLOCK_EXPR@[27; 29)
30 R_CURLY@[28; 29) "}" 30 BLOCK@[27; 29)
31 SEMI@[29; 30) ";" 31 L_CURLY@[27; 28) "{"
32 WHITESPACE@[30; 31) "\n" 32 R_CURLY@[28; 29) "}"
33 R_CURLY@[31; 32) "}" 33 SEMI@[29; 30) ";"
34 WHITESPACE@[30; 31) "\n"
35 R_CURLY@[31; 32) "}"
34 WHITESPACE@[32; 33) "\n" 36 WHITESPACE@[32; 33) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.txt b/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.txt
index 1a60f6ffe..b7979fbf5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.txt
@@ -10,7 +10,8 @@ SOURCE_FILE@[0; 19)
10 L_PAREN@[13; 14) "(" 10 L_PAREN@[13; 14) "("
11 R_PAREN@[14; 15) ")" 11 R_PAREN@[14; 15) ")"
12 WHITESPACE@[15; 16) " " 12 WHITESPACE@[15; 16) " "
13 BLOCK@[16; 18) 13 BLOCK_EXPR@[16; 18)
14 L_CURLY@[16; 17) "{" 14 BLOCK@[16; 18)
15 R_CURLY@[17; 18) "}" 15 L_CURLY@[16; 17) "{"
16 R_CURLY@[17; 18) "}"
16 WHITESPACE@[18; 19) "\n" 17 WHITESPACE@[18; 19) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.txt b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.txt
index 22db72c12..d8e04bd90 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.txt
@@ -8,123 +8,124 @@ SOURCE_FILE@[0; 119)
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; 118) 11 BLOCK_EXPR@[9; 118)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 118)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 29) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 29)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 RECORD_PAT@[19; 23) 17 WHITESPACE@[18; 19) " "
18 PATH@[19; 20) 18 RECORD_PAT@[19; 23)
19 PATH_SEGMENT@[19; 20) 19 PATH@[19; 20)
20 NAME_REF@[19; 20) 20 PATH_SEGMENT@[19; 20)
21 IDENT@[19; 20) "S" 21 NAME_REF@[19; 20)
22 WHITESPACE@[20; 21) " " 22 IDENT@[19; 20) "S"
23 RECORD_FIELD_PAT_LIST@[21; 23) 23 WHITESPACE@[20; 21) " "
24 L_CURLY@[21; 22) "{" 24 RECORD_FIELD_PAT_LIST@[21; 23)
25 R_CURLY@[22; 23) "}" 25 L_CURLY@[21; 22) "{"
26 WHITESPACE@[23; 24) " " 26 R_CURLY@[22; 23) "}"
27 EQ@[24; 25) "=" 27 WHITESPACE@[23; 24) " "
28 WHITESPACE@[25; 26) " " 28 EQ@[24; 25) "="
29 TUPLE_EXPR@[26; 28) 29 WHITESPACE@[25; 26) " "
30 L_PAREN@[26; 27) "(" 30 TUPLE_EXPR@[26; 28)
31 R_PAREN@[27; 28) ")" 31 L_PAREN@[26; 27) "("
32 SEMI@[28; 29) ";" 32 R_PAREN@[27; 28) ")"
33 WHITESPACE@[29; 34) "\n " 33 SEMI@[28; 29) ";"
34 LET_STMT@[34; 62) 34 WHITESPACE@[29; 34) "\n "
35 LET_KW@[34; 37) "let" 35 LET_STMT@[34; 62)
36 WHITESPACE@[37; 38) " " 36 LET_KW@[34; 37) "let"
37 RECORD_PAT@[38; 56) 37 WHITESPACE@[37; 38) " "
38 PATH@[38; 39) 38 RECORD_PAT@[38; 56)
39 PATH_SEGMENT@[38; 39) 39 PATH@[38; 39)
40 NAME_REF@[38; 39) 40 PATH_SEGMENT@[38; 39)
41 IDENT@[38; 39) "S" 41 NAME_REF@[38; 39)
42 WHITESPACE@[39; 40) " " 42 IDENT@[38; 39) "S"
43 RECORD_FIELD_PAT_LIST@[40; 56) 43 WHITESPACE@[39; 40) " "
44 L_CURLY@[40; 41) "{" 44 RECORD_FIELD_PAT_LIST@[40; 56)
45 WHITESPACE@[41; 42) " " 45 L_CURLY@[40; 41) "{"
46 BIND_PAT@[42; 43) 46 WHITESPACE@[41; 42) " "
47 NAME@[42; 43) 47 BIND_PAT@[42; 43)
48 IDENT@[42; 43) "f" 48 NAME@[42; 43)
49 COMMA@[43; 44) "," 49 IDENT@[42; 43) "f"
50 WHITESPACE@[44; 45) " " 50 COMMA@[43; 44) ","
51 BIND_PAT@[45; 54) 51 WHITESPACE@[44; 45) " "
52 REF_KW@[45; 48) "ref" 52 BIND_PAT@[45; 54)
53 WHITESPACE@[48; 49) " " 53 REF_KW@[45; 48) "ref"
54 MUT_KW@[49; 52) "mut" 54 WHITESPACE@[48; 49) " "
55 WHITESPACE@[52; 53) " " 55 MUT_KW@[49; 52) "mut"
56 NAME@[53; 54) 56 WHITESPACE@[52; 53) " "
57 IDENT@[53; 54) "g" 57 NAME@[53; 54)
58 WHITESPACE@[54; 55) " " 58 IDENT@[53; 54) "g"
59 R_CURLY@[55; 56) "}" 59 WHITESPACE@[54; 55) " "
60 WHITESPACE@[56; 57) " " 60 R_CURLY@[55; 56) "}"
61 EQ@[57; 58) "=" 61 WHITESPACE@[56; 57) " "
62 WHITESPACE@[58; 59) " " 62 EQ@[57; 58) "="
63 TUPLE_EXPR@[59; 61) 63 WHITESPACE@[58; 59) " "
64 L_PAREN@[59; 60) "(" 64 TUPLE_EXPR@[59; 61)
65 R_PAREN@[60; 61) ")" 65 L_PAREN@[59; 60) "("
66 SEMI@[61; 62) ";" 66 R_PAREN@[60; 61) ")"
67 WHITESPACE@[62; 67) "\n " 67 SEMI@[61; 62) ";"
68 LET_STMT@[67; 90) 68 WHITESPACE@[62; 67) "\n "
69 LET_KW@[67; 70) "let" 69 LET_STMT@[67; 90)
70 WHITESPACE@[70; 71) " " 70 LET_KW@[67; 70) "let"
71 RECORD_PAT@[71; 84) 71 WHITESPACE@[70; 71) " "
72 PATH@[71; 72) 72 RECORD_PAT@[71; 84)
73 PATH_SEGMENT@[71; 72) 73 PATH@[71; 72)
74 NAME_REF@[71; 72) 74 PATH_SEGMENT@[71; 72)
75 IDENT@[71; 72) "S" 75 NAME_REF@[71; 72)
76 WHITESPACE@[72; 73) " " 76 IDENT@[71; 72) "S"
77 RECORD_FIELD_PAT_LIST@[73; 84) 77 WHITESPACE@[72; 73) " "
78 L_CURLY@[73; 74) "{" 78 RECORD_FIELD_PAT_LIST@[73; 84)
79 WHITESPACE@[74; 75) " " 79 L_CURLY@[73; 74) "{"
80 RECORD_FIELD_PAT@[75; 79) 80 WHITESPACE@[74; 75) " "
81 NAME@[75; 76) 81 RECORD_FIELD_PAT@[75; 79)
82 IDENT@[75; 76) "h" 82 NAME@[75; 76)
83 COLON@[76; 77) ":" 83 IDENT@[75; 76) "h"
84 WHITESPACE@[77; 78) " " 84 COLON@[76; 77) ":"
85 PLACEHOLDER_PAT@[78; 79) 85 WHITESPACE@[77; 78) " "
86 UNDERSCORE@[78; 79) "_" 86 PLACEHOLDER_PAT@[78; 79)
87 COMMA@[79; 80) "," 87 UNDERSCORE@[78; 79) "_"
88 WHITESPACE@[80; 81) " " 88 COMMA@[79; 80) ","
89 DOTDOT@[81; 83) ".." 89 WHITESPACE@[80; 81) " "
90 R_CURLY@[83; 84) "}" 90 DOTDOT@[81; 83) ".."
91 WHITESPACE@[84; 85) " " 91 R_CURLY@[83; 84) "}"
92 EQ@[85; 86) "=" 92 WHITESPACE@[84; 85) " "
93 WHITESPACE@[86; 87) " " 93 EQ@[85; 86) "="
94 TUPLE_EXPR@[87; 89) 94 WHITESPACE@[86; 87) " "
95 L_PAREN@[87; 88) "(" 95 TUPLE_EXPR@[87; 89)
96 R_PAREN@[88; 89) ")" 96 L_PAREN@[87; 88) "("
97 SEMI@[89; 90) ";" 97 R_PAREN@[88; 89) ")"
98 WHITESPACE@[90; 95) "\n " 98 SEMI@[89; 90) ";"
99 LET_STMT@[95; 116) 99 WHITESPACE@[90; 95) "\n "
100 LET_KW@[95; 98) "let" 100 LET_STMT@[95; 116)
101 WHITESPACE@[98; 99) " " 101 LET_KW@[95; 98) "let"
102 RECORD_PAT@[99; 110) 102 WHITESPACE@[98; 99) " "
103 PATH@[99; 100) 103 RECORD_PAT@[99; 110)
104 PATH_SEGMENT@[99; 100) 104 PATH@[99; 100)
105 NAME_REF@[99; 100) 105 PATH_SEGMENT@[99; 100)
106 IDENT@[99; 100) "S" 106 NAME_REF@[99; 100)
107 WHITESPACE@[100; 101) " " 107 IDENT@[99; 100) "S"
108 RECORD_FIELD_PAT_LIST@[101; 110) 108 WHITESPACE@[100; 101) " "
109 L_CURLY@[101; 102) "{" 109 RECORD_FIELD_PAT_LIST@[101; 110)
110 WHITESPACE@[102; 103) " " 110 L_CURLY@[101; 102) "{"
111 RECORD_FIELD_PAT@[103; 107) 111 WHITESPACE@[102; 103) " "
112 NAME@[103; 104) 112 RECORD_FIELD_PAT@[103; 107)
113 IDENT@[103; 104) "h" 113 NAME@[103; 104)
114 COLON@[104; 105) ":" 114 IDENT@[103; 104) "h"
115 WHITESPACE@[105; 106) " " 115 COLON@[104; 105) ":"
116 PLACEHOLDER_PAT@[106; 107) 116 WHITESPACE@[105; 106) " "
117 UNDERSCORE@[106; 107) "_" 117 PLACEHOLDER_PAT@[106; 107)
118 COMMA@[107; 108) "," 118 UNDERSCORE@[106; 107) "_"
119 WHITESPACE@[108; 109) " " 119 COMMA@[107; 108) ","
120 R_CURLY@[109; 110) "}" 120 WHITESPACE@[108; 109) " "
121 WHITESPACE@[110; 111) " " 121 R_CURLY@[109; 110) "}"
122 EQ@[111; 112) "=" 122 WHITESPACE@[110; 111) " "
123 WHITESPACE@[112; 113) " " 123 EQ@[111; 112) "="
124 TUPLE_EXPR@[113; 115) 124 WHITESPACE@[112; 113) " "
125 L_PAREN@[113; 114) "(" 125 TUPLE_EXPR@[113; 115)
126 R_PAREN@[114; 115) ")" 126 L_PAREN@[113; 114) "("
127 SEMI@[115; 116) ";" 127 R_PAREN@[114; 115) ")"
128 WHITESPACE@[116; 117) "\n" 128 SEMI@[115; 116) ";"
129 R_CURLY@[117; 118) "}" 129 WHITESPACE@[116; 117) "\n"
130 R_CURLY@[117; 118) "}"
130 WHITESPACE@[118; 119) "\n" 131 WHITESPACE@[118; 119) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.txt
index e74e231b3..0db62a1f5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.txt
@@ -8,47 +8,48 @@ SOURCE_FILE@[0; 55)
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; 54) 11 BLOCK_EXPR@[9; 54)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 54)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 18) 14 WHITESPACE@[10; 15) "\n "
15 ARRAY_EXPR@[15; 17) 15 EXPR_STMT@[15; 18)
16 L_BRACK@[15; 16) "[" 16 ARRAY_EXPR@[15; 17)
17 R_BRACK@[16; 17) "]" 17 L_BRACK@[15; 16) "["
18 SEMI@[17; 18) ";" 18 R_BRACK@[16; 17) "]"
19 WHITESPACE@[18; 23) "\n " 19 SEMI@[17; 18) ";"
20 EXPR_STMT@[23; 27) 20 WHITESPACE@[18; 23) "\n "
21 ARRAY_EXPR@[23; 26) 21 EXPR_STMT@[23; 27)
22 L_BRACK@[23; 24) "[" 22 ARRAY_EXPR@[23; 26)
23 LITERAL@[24; 25) 23 L_BRACK@[23; 24) "["
24 INT_NUMBER@[24; 25) "1" 24 LITERAL@[24; 25)
25 R_BRACK@[25; 26) "]" 25 INT_NUMBER@[24; 25) "1"
26 SEMI@[26; 27) ";" 26 R_BRACK@[25; 26) "]"
27 WHITESPACE@[27; 32) "\n " 27 SEMI@[26; 27) ";"
28 EXPR_STMT@[32; 40) 28 WHITESPACE@[27; 32) "\n "
29 ARRAY_EXPR@[32; 39) 29 EXPR_STMT@[32; 40)
30 L_BRACK@[32; 33) "[" 30 ARRAY_EXPR@[32; 39)
31 LITERAL@[33; 34) 31 L_BRACK@[32; 33) "["
32 INT_NUMBER@[33; 34) "1" 32 LITERAL@[33; 34)
33 COMMA@[34; 35) "," 33 INT_NUMBER@[33; 34) "1"
34 WHITESPACE@[35; 36) " " 34 COMMA@[34; 35) ","
35 LITERAL@[36; 37) 35 WHITESPACE@[35; 36) " "
36 INT_NUMBER@[36; 37) "2" 36 LITERAL@[36; 37)
37 COMMA@[37; 38) "," 37 INT_NUMBER@[36; 37) "2"
38 R_BRACK@[38; 39) "]" 38 COMMA@[37; 38) ","
39 SEMI@[39; 40) ";" 39 R_BRACK@[38; 39) "]"
40 WHITESPACE@[40; 45) "\n " 40 SEMI@[39; 40) ";"
41 EXPR_STMT@[45; 52) 41 WHITESPACE@[40; 45) "\n "
42 ARRAY_EXPR@[45; 51) 42 EXPR_STMT@[45; 52)
43 L_BRACK@[45; 46) "[" 43 ARRAY_EXPR@[45; 51)
44 LITERAL@[46; 47) 44 L_BRACK@[45; 46) "["
45 INT_NUMBER@[46; 47) "1" 45 LITERAL@[46; 47)
46 SEMI@[47; 48) ";" 46 INT_NUMBER@[46; 47) "1"
47 WHITESPACE@[48; 49) " " 47 SEMI@[47; 48) ";"
48 LITERAL@[49; 50) 48 WHITESPACE@[48; 49) " "
49 INT_NUMBER@[49; 50) "2" 49 LITERAL@[49; 50)
50 R_BRACK@[50; 51) "]" 50 INT_NUMBER@[49; 50) "2"
51 SEMI@[51; 52) ";" 51 R_BRACK@[50; 51) "]"
52 WHITESPACE@[52; 53) "\n" 52 SEMI@[51; 52) ";"
53 R_CURLY@[53; 54) "}" 53 WHITESPACE@[52; 53) "\n"
54 R_CURLY@[53; 54) "}"
54 WHITESPACE@[54; 55) "\n" 55 WHITESPACE@[54; 55) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.txt
index 4bc446a55..6bce37a4f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.txt
@@ -8,35 +8,36 @@ SOURCE_FILE@[0; 52)
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; 51) 11 BLOCK_EXPR@[9; 51)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 51)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 18) 14 WHITESPACE@[10; 15) "\n "
15 BLOCK_EXPR@[15; 17) 15 EXPR_STMT@[15; 18)
16 BLOCK@[15; 17) 16 BLOCK_EXPR@[15; 17)
17 L_CURLY@[15; 16) "{" 17 BLOCK@[15; 17)
18 R_CURLY@[16; 17) "}" 18 L_CURLY@[15; 16) "{"
19 SEMI@[17; 18) ";" 19 R_CURLY@[16; 17) "}"
20 WHITESPACE@[18; 23) "\n " 20 SEMI@[17; 18) ";"
21 EXPR_STMT@[23; 33) 21 WHITESPACE@[18; 23) "\n "
22 BLOCK_EXPR@[23; 32) 22 EXPR_STMT@[23; 33)
23 UNSAFE_KW@[23; 29) "unsafe" 23 BLOCK_EXPR@[23; 32)
24 WHITESPACE@[29; 30) " " 24 UNSAFE_KW@[23; 29) "unsafe"
25 BLOCK@[30; 32) 25 WHITESPACE@[29; 30) " "
26 L_CURLY@[30; 31) "{" 26 BLOCK@[30; 32)
27 R_CURLY@[31; 32) "}" 27 L_CURLY@[30; 31) "{"
28 SEMI@[32; 33) ";" 28 R_CURLY@[31; 32) "}"
29 WHITESPACE@[33; 38) "\n " 29 SEMI@[32; 33) ";"
30 EXPR_STMT@[38; 49) 30 WHITESPACE@[33; 38) "\n "
31 BLOCK_EXPR@[38; 48) 31 EXPR_STMT@[38; 49)
32 LABEL@[38; 45) 32 BLOCK_EXPR@[38; 48)
33 LIFETIME@[38; 44) "\'label" 33 LABEL@[38; 45)
34 COLON@[44; 45) ":" 34 LIFETIME@[38; 44) "\'label"
35 WHITESPACE@[45; 46) " " 35 COLON@[44; 45) ":"
36 BLOCK@[46; 48) 36 WHITESPACE@[45; 46) " "
37 L_CURLY@[46; 47) "{" 37 BLOCK@[46; 48)
38 R_CURLY@[47; 48) "}" 38 L_CURLY@[46; 47) "{"
39 SEMI@[48; 49) ";" 39 R_CURLY@[47; 48) "}"
40 WHITESPACE@[49; 50) "\n" 40 SEMI@[48; 49) ";"
41 R_CURLY@[50; 51) "}" 41 WHITESPACE@[49; 50) "\n"
42 R_CURLY@[50; 51) "}"
42 WHITESPACE@[51; 52) "\n" 43 WHITESPACE@[51; 52) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.txt
index a05218118..0216123f0 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.txt
@@ -8,132 +8,133 @@ SOURCE_FILE@[0; 134)
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; 133) 11 BLOCK_EXPR@[9; 133)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 133)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 21) 14 WHITESPACE@[10; 15) "\n "
15 LAMBDA_EXPR@[15; 20) 15 EXPR_STMT@[15; 21)
16 PARAM_LIST@[15; 17) 16 LAMBDA_EXPR@[15; 20)
17 PIPE@[15; 16) "|" 17 PARAM_LIST@[15; 17)
18 PIPE@[16; 17) "|" 18 PIPE@[15; 16) "|"
19 WHITESPACE@[17; 18) " " 19 PIPE@[16; 17) "|"
20 TUPLE_EXPR@[18; 20) 20 WHITESPACE@[17; 18) " "
21 L_PAREN@[18; 19) "(" 21 TUPLE_EXPR@[18; 20)
22 R_PAREN@[19; 20) ")" 22 L_PAREN@[18; 19) "("
23 SEMI@[20; 21) ";" 23 R_PAREN@[19; 20) ")"
24 WHITESPACE@[21; 26) "\n " 24 SEMI@[20; 21) ";"
25 EXPR_STMT@[26; 43) 25 WHITESPACE@[21; 26) "\n "
26 LAMBDA_EXPR@[26; 42) 26 EXPR_STMT@[26; 43)
27 PARAM_LIST@[26; 28) 27 LAMBDA_EXPR@[26; 42)
28 PIPE@[26; 27) "|" 28 PARAM_LIST@[26; 28)
29 PIPE@[27; 28) "|" 29 PIPE@[26; 27) "|"
30 WHITESPACE@[28; 29) " " 30 PIPE@[27; 28) "|"
31 RET_TYPE@[29; 35) 31 WHITESPACE@[28; 29) " "
32 THIN_ARROW@[29; 31) "->" 32 RET_TYPE@[29; 35)
33 WHITESPACE@[31; 32) " " 33 THIN_ARROW@[29; 31) "->"
34 PATH_TYPE@[32; 35) 34 WHITESPACE@[31; 32) " "
35 PATH@[32; 35) 35 PATH_TYPE@[32; 35)
36 PATH_SEGMENT@[32; 35) 36 PATH@[32; 35)
37 NAME_REF@[32; 35) 37 PATH_SEGMENT@[32; 35)
38 IDENT@[32; 35) "i32" 38 NAME_REF@[32; 35)
39 WHITESPACE@[35; 36) " " 39 IDENT@[32; 35) "i32"
40 BLOCK_EXPR@[36; 42) 40 WHITESPACE@[35; 36) " "
41 BLOCK@[36; 42) 41 BLOCK_EXPR@[36; 42)
42 L_CURLY@[36; 37) "{" 42 BLOCK@[36; 42)
43 WHITESPACE@[37; 38) " " 43 L_CURLY@[36; 37) "{"
44 LITERAL@[38; 40) 44 WHITESPACE@[37; 38) " "
45 INT_NUMBER@[38; 40) "92" 45 LITERAL@[38; 40)
46 WHITESPACE@[40; 41) " " 46 INT_NUMBER@[38; 40) "92"
47 R_CURLY@[41; 42) "}" 47 WHITESPACE@[40; 41) " "
48 SEMI@[42; 43) ";" 48 R_CURLY@[41; 42) "}"
49 WHITESPACE@[43; 48) "\n " 49 SEMI@[42; 43) ";"
50 EXPR_STMT@[48; 54) 50 WHITESPACE@[43; 48) "\n "
51 LAMBDA_EXPR@[48; 53) 51 EXPR_STMT@[48; 54)
52 PARAM_LIST@[48; 51) 52 LAMBDA_EXPR@[48; 53)
53 PIPE@[48; 49) "|" 53 PARAM_LIST@[48; 51)
54 PARAM@[49; 50) 54 PIPE@[48; 49) "|"
55 BIND_PAT@[49; 50) 55 PARAM@[49; 50)
56 NAME@[49; 50) 56 BIND_PAT@[49; 50)
57 IDENT@[49; 50) "x" 57 NAME@[49; 50)
58 PIPE@[50; 51) "|" 58 IDENT@[49; 50) "x"
59 WHITESPACE@[51; 52) " " 59 PIPE@[50; 51) "|"
60 PATH_EXPR@[52; 53) 60 WHITESPACE@[51; 52) " "
61 PATH@[52; 53) 61 PATH_EXPR@[52; 53)
62 PATH_SEGMENT@[52; 53) 62 PATH@[52; 53)
63 NAME_REF@[52; 53) 63 PATH_SEGMENT@[52; 53)
64 IDENT@[52; 53) "x" 64 NAME_REF@[52; 53)
65 SEMI@[53; 54) ";" 65 IDENT@[52; 53) "x"
66 WHITESPACE@[54; 59) "\n " 66 SEMI@[53; 54) ";"
67 EXPR_STMT@[59; 76) 67 WHITESPACE@[54; 59) "\n "
68 LAMBDA_EXPR@[59; 75) 68 EXPR_STMT@[59; 76)
69 MOVE_KW@[59; 63) "move" 69 LAMBDA_EXPR@[59; 75)
70 WHITESPACE@[63; 64) " " 70 MOVE_KW@[59; 63) "move"
71 PARAM_LIST@[64; 73) 71 WHITESPACE@[63; 64) " "
72 PIPE@[64; 65) "|" 72 PARAM_LIST@[64; 73)
73 PARAM@[65; 71) 73 PIPE@[64; 65) "|"
74 BIND_PAT@[65; 66) 74 PARAM@[65; 71)
75 NAME@[65; 66) 75 BIND_PAT@[65; 66)
76 IDENT@[65; 66) "x" 76 NAME@[65; 66)
77 COLON@[66; 67) ":" 77 IDENT@[65; 66) "x"
78 WHITESPACE@[67; 68) " " 78 COLON@[66; 67) ":"
79 PATH_TYPE@[68; 71) 79 WHITESPACE@[67; 68) " "
80 PATH@[68; 71) 80 PATH_TYPE@[68; 71)
81 PATH_SEGMENT@[68; 71) 81 PATH@[68; 71)
82 NAME_REF@[68; 71) 82 PATH_SEGMENT@[68; 71)
83 IDENT@[68; 71) "i32" 83 NAME_REF@[68; 71)
84 COMMA@[71; 72) "," 84 IDENT@[68; 71) "i32"
85 PIPE@[72; 73) "|" 85 COMMA@[71; 72) ","
86 WHITESPACE@[73; 74) " " 86 PIPE@[72; 73) "|"
87 PATH_EXPR@[74; 75) 87 WHITESPACE@[73; 74) " "
88 PATH@[74; 75) 88 PATH_EXPR@[74; 75)
89 PATH_SEGMENT@[74; 75) 89 PATH@[74; 75)
90 NAME_REF@[74; 75) 90 PATH_SEGMENT@[74; 75)
91 IDENT@[74; 75) "x" 91 NAME_REF@[74; 75)
92 SEMI@[75; 76) ";" 92 IDENT@[74; 75) "x"
93 WHITESPACE@[76; 81) "\n " 93 SEMI@[75; 76) ";"
94 EXPR_STMT@[81; 93) 94 WHITESPACE@[76; 81) "\n "
95 LAMBDA_EXPR@[81; 92) 95 EXPR_STMT@[81; 93)
96 ASYNC_KW@[81; 86) "async" 96 LAMBDA_EXPR@[81; 92)
97 WHITESPACE@[86; 87) " " 97 ASYNC_KW@[81; 86) "async"
98 PARAM_LIST@[87; 89) 98 WHITESPACE@[86; 87) " "
99 PIPE@[87; 88) "|" 99 PARAM_LIST@[87; 89)
100 PIPE@[88; 89) "|" 100 PIPE@[87; 88) "|"
101 WHITESPACE@[89; 90) " " 101 PIPE@[88; 89) "|"
102 BLOCK_EXPR@[90; 92) 102 WHITESPACE@[89; 90) " "
103 BLOCK@[90; 92) 103 BLOCK_EXPR@[90; 92)
104 L_CURLY@[90; 91) "{" 104 BLOCK@[90; 92)
105 R_CURLY@[91; 92) "}" 105 L_CURLY@[90; 91) "{"
106 SEMI@[92; 93) ";" 106 R_CURLY@[91; 92) "}"
107 WHITESPACE@[93; 98) "\n " 107 SEMI@[92; 93) ";"
108 EXPR_STMT@[98; 109) 108 WHITESPACE@[93; 98) "\n "
109 LAMBDA_EXPR@[98; 108) 109 EXPR_STMT@[98; 109)
110 MOVE_KW@[98; 102) "move" 110 LAMBDA_EXPR@[98; 108)
111 WHITESPACE@[102; 103) " " 111 MOVE_KW@[98; 102) "move"
112 PARAM_LIST@[103; 105) 112 WHITESPACE@[102; 103) " "
113 PIPE@[103; 104) "|" 113 PARAM_LIST@[103; 105)
114 PIPE@[104; 105) "|" 114 PIPE@[103; 104) "|"
115 WHITESPACE@[105; 106) " " 115 PIPE@[104; 105) "|"
116 BLOCK_EXPR@[106; 108) 116 WHITESPACE@[105; 106) " "
117 BLOCK@[106; 108) 117 BLOCK_EXPR@[106; 108)
118 L_CURLY@[106; 107) "{" 118 BLOCK@[106; 108)
119 R_CURLY@[107; 108) "}" 119 L_CURLY@[106; 107) "{"
120 SEMI@[108; 109) ";" 120 R_CURLY@[107; 108) "}"
121 WHITESPACE@[109; 114) "\n " 121 SEMI@[108; 109) ";"
122 EXPR_STMT@[114; 131) 122 WHITESPACE@[109; 114) "\n "
123 LAMBDA_EXPR@[114; 130) 123 EXPR_STMT@[114; 131)
124 ASYNC_KW@[114; 119) "async" 124 LAMBDA_EXPR@[114; 130)
125 WHITESPACE@[119; 120) " " 125 ASYNC_KW@[114; 119) "async"
126 MOVE_KW@[120; 124) "move" 126 WHITESPACE@[119; 120) " "
127 WHITESPACE@[124; 125) " " 127 MOVE_KW@[120; 124) "move"
128 PARAM_LIST@[125; 127) 128 WHITESPACE@[124; 125) " "
129 PIPE@[125; 126) "|" 129 PARAM_LIST@[125; 127)
130 PIPE@[126; 127) "|" 130 PIPE@[125; 126) "|"
131 WHITESPACE@[127; 128) " " 131 PIPE@[126; 127) "|"
132 BLOCK_EXPR@[128; 130) 132 WHITESPACE@[127; 128) " "
133 BLOCK@[128; 130) 133 BLOCK_EXPR@[128; 130)
134 L_CURLY@[128; 129) "{" 134 BLOCK@[128; 130)
135 R_CURLY@[129; 130) "}" 135 L_CURLY@[128; 129) "{"
136 SEMI@[130; 131) ";" 136 R_CURLY@[129; 130) "}"
137 WHITESPACE@[131; 132) "\n" 137 SEMI@[130; 131) ";"
138 R_CURLY@[132; 133) "}" 138 WHITESPACE@[131; 132) "\n"
139 R_CURLY@[132; 133) "}"
139 WHITESPACE@[133; 134) "\n" 140 WHITESPACE@[133; 134) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.txt
index bc28b293e..ba478528c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.txt
@@ -8,55 +8,56 @@ SOURCE_FILE@[0; 49)
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; 48) 11 BLOCK_EXPR@[9; 48)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 48)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 23) 14 WHITESPACE@[10; 15) "\n "
15 METHOD_CALL_EXPR@[15; 22) 15 EXPR_STMT@[15; 23)
16 PATH_EXPR@[15; 16) 16 METHOD_CALL_EXPR@[15; 22)
17 PATH@[15; 16) 17 PATH_EXPR@[15; 16)
18 PATH_SEGMENT@[15; 16) 18 PATH@[15; 16)
19 NAME_REF@[15; 16) 19 PATH_SEGMENT@[15; 16)
20 IDENT@[15; 16) "x" 20 NAME_REF@[15; 16)
21 DOT@[16; 17) "." 21 IDENT@[15; 16) "x"
22 NAME_REF@[17; 20) 22 DOT@[16; 17) "."
23 IDENT@[17; 20) "foo" 23 NAME_REF@[17; 20)
24 ARG_LIST@[20; 22) 24 IDENT@[17; 20) "foo"
25 L_PAREN@[20; 21) "(" 25 ARG_LIST@[20; 22)
26 R_PAREN@[21; 22) ")" 26 L_PAREN@[20; 21) "("
27 SEMI@[22; 23) ";" 27 R_PAREN@[21; 22) ")"
28 WHITESPACE@[23; 28) "\n " 28 SEMI@[22; 23) ";"
29 EXPR_STMT@[28; 46) 29 WHITESPACE@[23; 28) "\n "
30 METHOD_CALL_EXPR@[28; 45) 30 EXPR_STMT@[28; 46)
31 PATH_EXPR@[28; 29) 31 METHOD_CALL_EXPR@[28; 45)
32 PATH@[28; 29) 32 PATH_EXPR@[28; 29)
33 PATH_SEGMENT@[28; 29) 33 PATH@[28; 29)
34 NAME_REF@[28; 29) 34 PATH_SEGMENT@[28; 29)
35 IDENT@[28; 29) "y" 35 NAME_REF@[28; 29)
36 DOT@[29; 30) "." 36 IDENT@[28; 29) "y"
37 NAME_REF@[30; 33) 37 DOT@[29; 30) "."
38 IDENT@[30; 33) "bar" 38 NAME_REF@[30; 33)
39 TYPE_ARG_LIST@[33; 38) 39 IDENT@[30; 33) "bar"
40 COLONCOLON@[33; 35) "::" 40 TYPE_ARG_LIST@[33; 38)
41 L_ANGLE@[35; 36) "<" 41 COLONCOLON@[33; 35) "::"
42 TYPE_ARG@[36; 37) 42 L_ANGLE@[35; 36) "<"
43 PATH_TYPE@[36; 37) 43 TYPE_ARG@[36; 37)
44 PATH@[36; 37) 44 PATH_TYPE@[36; 37)
45 PATH_SEGMENT@[36; 37) 45 PATH@[36; 37)
46 NAME_REF@[36; 37) 46 PATH_SEGMENT@[36; 37)
47 IDENT@[36; 37) "T" 47 NAME_REF@[36; 37)
48 R_ANGLE@[37; 38) ">" 48 IDENT@[36; 37) "T"
49 ARG_LIST@[38; 45) 49 R_ANGLE@[37; 38) ">"
50 L_PAREN@[38; 39) "(" 50 ARG_LIST@[38; 45)
51 LITERAL@[39; 40) 51 L_PAREN@[38; 39) "("
52 INT_NUMBER@[39; 40) "1" 52 LITERAL@[39; 40)
53 COMMA@[40; 41) "," 53 INT_NUMBER@[39; 40) "1"
54 WHITESPACE@[41; 42) " " 54 COMMA@[40; 41) ","
55 LITERAL@[42; 43) 55 WHITESPACE@[41; 42) " "
56 INT_NUMBER@[42; 43) "2" 56 LITERAL@[42; 43)
57 COMMA@[43; 44) "," 57 INT_NUMBER@[42; 43) "2"
58 R_PAREN@[44; 45) ")" 58 COMMA@[43; 44) ","
59 SEMI@[45; 46) ";" 59 R_PAREN@[44; 45) ")"
60 WHITESPACE@[46; 47) "\n" 60 SEMI@[45; 46) ";"
61 R_CURLY@[47; 48) "}" 61 WHITESPACE@[46; 47) "\n"
62 R_CURLY@[47; 48) "}"
62 WHITESPACE@[48; 49) "\n" 63 WHITESPACE@[48; 49) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.txt
index 32be7a849..6f685ca8d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.txt
@@ -8,31 +8,32 @@ SOURCE_FILE@[0; 40)
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; 39) 11 BLOCK_EXPR@[9; 39)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 39)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 18) 14 WHITESPACE@[10; 15) "\n "
15 TUPLE_EXPR@[15; 17) 15 EXPR_STMT@[15; 18)
16 L_PAREN@[15; 16) "(" 16 TUPLE_EXPR@[15; 17)
17 R_PAREN@[16; 17) ")" 17 L_PAREN@[15; 16) "("
18 SEMI@[17; 18) ";" 18 R_PAREN@[16; 17) ")"
19 WHITESPACE@[18; 23) "\n " 19 SEMI@[17; 18) ";"
20 EXPR_STMT@[23; 27) 20 WHITESPACE@[18; 23) "\n "
21 PAREN_EXPR@[23; 26) 21 EXPR_STMT@[23; 27)
22 L_PAREN@[23; 24) "(" 22 PAREN_EXPR@[23; 26)
23 LITERAL@[24; 25) 23 L_PAREN@[23; 24) "("
24 INT_NUMBER@[24; 25) "1" 24 LITERAL@[24; 25)
25 R_PAREN@[25; 26) ")" 25 INT_NUMBER@[24; 25) "1"
26 SEMI@[26; 27) ";" 26 R_PAREN@[25; 26) ")"
27 WHITESPACE@[27; 32) "\n " 27 SEMI@[26; 27) ";"
28 EXPR_STMT@[32; 37) 28 WHITESPACE@[27; 32) "\n "
29 TUPLE_EXPR@[32; 36) 29 EXPR_STMT@[32; 37)
30 L_PAREN@[32; 33) "(" 30 TUPLE_EXPR@[32; 36)
31 LITERAL@[33; 34) 31 L_PAREN@[32; 33) "("
32 INT_NUMBER@[33; 34) "1" 32 LITERAL@[33; 34)
33 COMMA@[34; 35) "," 33 INT_NUMBER@[33; 34) "1"
34 R_PAREN@[35; 36) ")" 34 COMMA@[34; 35) ","
35 SEMI@[36; 37) ";" 35 R_PAREN@[35; 36) ")"
36 WHITESPACE@[37; 38) "\n" 36 SEMI@[36; 37) ";"
37 R_CURLY@[38; 39) "}" 37 WHITESPACE@[37; 38) "\n"
38 R_CURLY@[38; 39) "}"
38 WHITESPACE@[39; 40) "\n" 39 WHITESPACE@[39; 40) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.txt b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.txt
index 39e4f4b3e..3376a90cb 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.txt
@@ -8,57 +8,61 @@ SOURCE_FILE@[0; 74)
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; 73) 11 BLOCK_EXPR@[9; 73)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 73)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 26) 14 WHITESPACE@[10; 15) "\n "
15 LOOP_EXPR@[15; 26) 15 EXPR_STMT@[15; 26)
16 LABEL@[15; 18) 16 LOOP_EXPR@[15; 26)
17 LIFETIME@[15; 17) "\'a" 17 LABEL@[15; 18)
18 COLON@[17; 18) ":" 18 LIFETIME@[15; 17) "\'a"
19 WHITESPACE@[18; 19) " " 19 COLON@[17; 18) ":"
20 LOOP_KW@[19; 23) "loop" 20 WHITESPACE@[18; 19) " "
21 WHITESPACE@[23; 24) " " 21 LOOP_KW@[19; 23) "loop"
22 BLOCK@[24; 26) 22 WHITESPACE@[23; 24) " "
23 L_CURLY@[24; 25) "{" 23 BLOCK_EXPR@[24; 26)
24 R_CURLY@[25; 26) "}" 24 BLOCK@[24; 26)
25 WHITESPACE@[26; 31) "\n " 25 L_CURLY@[24; 25) "{"
26 EXPR_STMT@[31; 48) 26 R_CURLY@[25; 26) "}"
27 WHILE_EXPR@[31; 48) 27 WHITESPACE@[26; 31) "\n "
28 LABEL@[31; 34) 28 EXPR_STMT@[31; 48)
29 LIFETIME@[31; 33) "\'b" 29 WHILE_EXPR@[31; 48)
30 COLON@[33; 34) ":" 30 LABEL@[31; 34)
31 WHITESPACE@[34; 35) " " 31 LIFETIME@[31; 33) "\'b"
32 WHILE_KW@[35; 40) "while" 32 COLON@[33; 34) ":"
33 WHITESPACE@[40; 41) " " 33 WHITESPACE@[34; 35) " "
34 CONDITION@[41; 45) 34 WHILE_KW@[35; 40) "while"
35 LITERAL@[41; 45) 35 WHITESPACE@[40; 41) " "
36 TRUE_KW@[41; 45) "true" 36 CONDITION@[41; 45)
37 WHITESPACE@[45; 46) " " 37 LITERAL@[41; 45)
38 BLOCK@[46; 48) 38 TRUE_KW@[41; 45) "true"
39 L_CURLY@[46; 47) "{" 39 WHITESPACE@[45; 46) " "
40 R_CURLY@[47; 48) "}" 40 BLOCK_EXPR@[46; 48)
41 WHITESPACE@[48; 53) "\n " 41 BLOCK@[46; 48)
42 FOR_EXPR@[53; 71) 42 L_CURLY@[46; 47) "{"
43 LABEL@[53; 56) 43 R_CURLY@[47; 48) "}"
44 LIFETIME@[53; 55) "\'c" 44 WHITESPACE@[48; 53) "\n "
45 COLON@[55; 56) ":" 45 FOR_EXPR@[53; 71)
46 WHITESPACE@[56; 57) " " 46 LABEL@[53; 56)
47 FOR_KW@[57; 60) "for" 47 LIFETIME@[53; 55) "\'c"
48 WHITESPACE@[60; 61) " " 48 COLON@[55; 56) ":"
49 BIND_PAT@[61; 62) 49 WHITESPACE@[56; 57) " "
50 NAME@[61; 62) 50 FOR_KW@[57; 60) "for"
51 IDENT@[61; 62) "x" 51 WHITESPACE@[60; 61) " "
52 WHITESPACE@[62; 63) " " 52 BIND_PAT@[61; 62)
53 IN_KW@[63; 65) "in" 53 NAME@[61; 62)
54 WHITESPACE@[65; 66) " " 54 IDENT@[61; 62) "x"
55 TUPLE_EXPR@[66; 68) 55 WHITESPACE@[62; 63) " "
56 L_PAREN@[66; 67) "(" 56 IN_KW@[63; 65) "in"
57 R_PAREN@[67; 68) ")" 57 WHITESPACE@[65; 66) " "
58 WHITESPACE@[68; 69) " " 58 TUPLE_EXPR@[66; 68)
59 BLOCK@[69; 71) 59 L_PAREN@[66; 67) "("
60 L_CURLY@[69; 70) "{" 60 R_PAREN@[67; 68) ")"
61 R_CURLY@[70; 71) "}" 61 WHITESPACE@[68; 69) " "
62 WHITESPACE@[71; 72) "\n" 62 BLOCK_EXPR@[69; 71)
63 R_CURLY@[72; 73) "}" 63 BLOCK@[69; 71)
64 L_CURLY@[69; 70) "{"
65 R_CURLY@[70; 71) "}"
66 WHITESPACE@[71; 72) "\n"
67 R_CURLY@[72; 73) "}"
64 WHITESPACE@[73; 74) "\n" 68 WHITESPACE@[73; 74) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.txt b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.txt
index aef3f7e0f..3fee3a1cf 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.txt
@@ -8,33 +8,34 @@ SOURCE_FILE@[0; 39)
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; 38) 11 BLOCK_EXPR@[10; 38)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 38)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 LET_STMT@[16; 36) 14 WHITESPACE@[11; 16) "\n "
15 LET_KW@[16; 19) "let" 15 LET_STMT@[16; 36)
16 WHITESPACE@[19; 20) " " 16 LET_KW@[16; 19) "let"
17 TUPLE_PAT@[20; 30) 17 WHITESPACE@[19; 20) " "
18 L_PAREN@[20; 21) "(" 18 TUPLE_PAT@[20; 30)
19 BIND_PAT@[21; 22) 19 L_PAREN@[20; 21) "("
20 NAME@[21; 22) 20 BIND_PAT@[21; 22)
21 IDENT@[21; 22) "a" 21 NAME@[21; 22)
22 COMMA@[22; 23) "," 22 IDENT@[21; 22) "a"
23 WHITESPACE@[23; 24) " " 23 COMMA@[22; 23) ","
24 BIND_PAT@[24; 25) 24 WHITESPACE@[23; 24) " "
25 NAME@[24; 25) 25 BIND_PAT@[24; 25)
26 IDENT@[24; 25) "b" 26 NAME@[24; 25)
27 COMMA@[25; 26) "," 27 IDENT@[24; 25) "b"
28 WHITESPACE@[26; 27) " " 28 COMMA@[25; 26) ","
29 DOTDOT@[27; 29) ".." 29 WHITESPACE@[26; 27) " "
30 R_PAREN@[29; 30) ")" 30 DOTDOT@[27; 29) ".."
31 WHITESPACE@[30; 31) " " 31 R_PAREN@[29; 30) ")"
32 EQ@[31; 32) "=" 32 WHITESPACE@[30; 31) " "
33 WHITESPACE@[32; 33) " " 33 EQ@[31; 32) "="
34 TUPLE_EXPR@[33; 35) 34 WHITESPACE@[32; 33) " "
35 L_PAREN@[33; 34) "(" 35 TUPLE_EXPR@[33; 35)
36 R_PAREN@[34; 35) ")" 36 L_PAREN@[33; 34) "("
37 SEMI@[35; 36) ";" 37 R_PAREN@[34; 35) ")"
38 WHITESPACE@[36; 37) "\n" 38 SEMI@[35; 36) ";"
39 R_CURLY@[37; 38) "}" 39 WHITESPACE@[36; 37) "\n"
40 R_CURLY@[37; 38) "}"
40 WHITESPACE@[38; 39) "\n" 41 WHITESPACE@[38; 39) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.txt b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.txt
index ab0f88507..ad1d47b0e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.txt
@@ -8,120 +8,121 @@ SOURCE_FILE@[0; 146)
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; 145) 11 BLOCK_EXPR@[10; 145)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 145)
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; 21) 17 WHITESPACE@[19; 20) " "
18 NAME@[20; 21) 18 BIND_PAT@[20; 21)
19 IDENT@[20; 21) "a" 19 NAME@[20; 21)
20 WHITESPACE@[21; 22) " " 20 IDENT@[20; 21) "a"
21 EQ@[22; 23) "=" 21 WHITESPACE@[21; 22) " "
22 WHITESPACE@[23; 24) " " 22 EQ@[22; 23) "="
23 TUPLE_EXPR@[24; 26) 23 WHITESPACE@[23; 24) " "
24 L_PAREN@[24; 25) "(" 24 TUPLE_EXPR@[24; 26)
25 R_PAREN@[25; 26) ")" 25 L_PAREN@[24; 25) "("
26 SEMI@[26; 27) ";" 26 R_PAREN@[25; 26) ")"
27 WHITESPACE@[27; 32) "\n " 27 SEMI@[26; 27) ";"
28 LET_STMT@[32; 47) 28 WHITESPACE@[27; 32) "\n "
29 LET_KW@[32; 35) "let" 29 LET_STMT@[32; 47)
30 WHITESPACE@[35; 36) " " 30 LET_KW@[32; 35) "let"
31 BIND_PAT@[36; 41) 31 WHITESPACE@[35; 36) " "
32 MUT_KW@[36; 39) "mut" 32 BIND_PAT@[36; 41)
33 WHITESPACE@[39; 40) " " 33 MUT_KW@[36; 39) "mut"
34 NAME@[40; 41) 34 WHITESPACE@[39; 40) " "
35 IDENT@[40; 41) "b" 35 NAME@[40; 41)
36 WHITESPACE@[41; 42) " " 36 IDENT@[40; 41) "b"
37 EQ@[42; 43) "=" 37 WHITESPACE@[41; 42) " "
38 WHITESPACE@[43; 44) " " 38 EQ@[42; 43) "="
39 TUPLE_EXPR@[44; 46) 39 WHITESPACE@[43; 44) " "
40 L_PAREN@[44; 45) "(" 40 TUPLE_EXPR@[44; 46)
41 R_PAREN@[45; 46) ")" 41 L_PAREN@[44; 45) "("
42 SEMI@[46; 47) ";" 42 R_PAREN@[45; 46) ")"
43 WHITESPACE@[47; 52) "\n " 43 SEMI@[46; 47) ";"
44 LET_STMT@[52; 67) 44 WHITESPACE@[47; 52) "\n "
45 LET_KW@[52; 55) "let" 45 LET_STMT@[52; 67)
46 WHITESPACE@[55; 56) " " 46 LET_KW@[52; 55) "let"
47 BIND_PAT@[56; 61) 47 WHITESPACE@[55; 56) " "
48 REF_KW@[56; 59) "ref" 48 BIND_PAT@[56; 61)
49 WHITESPACE@[59; 60) " " 49 REF_KW@[56; 59) "ref"
50 NAME@[60; 61) 50 WHITESPACE@[59; 60) " "
51 IDENT@[60; 61) "c" 51 NAME@[60; 61)
52 WHITESPACE@[61; 62) " " 52 IDENT@[60; 61) "c"
53 EQ@[62; 63) "=" 53 WHITESPACE@[61; 62) " "
54 WHITESPACE@[63; 64) " " 54 EQ@[62; 63) "="
55 TUPLE_EXPR@[64; 66) 55 WHITESPACE@[63; 64) " "
56 L_PAREN@[64; 65) "(" 56 TUPLE_EXPR@[64; 66)
57 R_PAREN@[65; 66) ")" 57 L_PAREN@[64; 65) "("
58 SEMI@[66; 67) ";" 58 R_PAREN@[65; 66) ")"
59 WHITESPACE@[67; 72) "\n " 59 SEMI@[66; 67) ";"
60 LET_STMT@[72; 91) 60 WHITESPACE@[67; 72) "\n "
61 LET_KW@[72; 75) "let" 61 LET_STMT@[72; 91)
62 WHITESPACE@[75; 76) " " 62 LET_KW@[72; 75) "let"
63 BIND_PAT@[76; 85) 63 WHITESPACE@[75; 76) " "
64 REF_KW@[76; 79) "ref" 64 BIND_PAT@[76; 85)
65 WHITESPACE@[79; 80) " " 65 REF_KW@[76; 79) "ref"
66 MUT_KW@[80; 83) "mut" 66 WHITESPACE@[79; 80) " "
67 WHITESPACE@[83; 84) " " 67 MUT_KW@[80; 83) "mut"
68 NAME@[84; 85) 68 WHITESPACE@[83; 84) " "
69 IDENT@[84; 85) "d" 69 NAME@[84; 85)
70 WHITESPACE@[85; 86) " " 70 IDENT@[84; 85) "d"
71 EQ@[86; 87) "=" 71 WHITESPACE@[85; 86) " "
72 WHITESPACE@[87; 88) " " 72 EQ@[86; 87) "="
73 TUPLE_EXPR@[88; 90) 73 WHITESPACE@[87; 88) " "
74 L_PAREN@[88; 89) "(" 74 TUPLE_EXPR@[88; 90)
75 R_PAREN@[89; 90) ")" 75 L_PAREN@[88; 89) "("
76 SEMI@[90; 91) ";" 76 R_PAREN@[89; 90) ")"
77 WHITESPACE@[91; 96) "\n " 77 SEMI@[90; 91) ";"
78 LET_STMT@[96; 111) 78 WHITESPACE@[91; 96) "\n "
79 LET_KW@[96; 99) "let" 79 LET_STMT@[96; 111)
80 WHITESPACE@[99; 100) " " 80 LET_KW@[96; 99) "let"
81 BIND_PAT@[100; 105) 81 WHITESPACE@[99; 100) " "
82 NAME@[100; 101) 82 BIND_PAT@[100; 105)
83 IDENT@[100; 101) "e" 83 NAME@[100; 101)
84 WHITESPACE@[101; 102) " " 84 IDENT@[100; 101) "e"
85 AT@[102; 103) "@" 85 WHITESPACE@[101; 102) " "
86 WHITESPACE@[103; 104) " " 86 AT@[102; 103) "@"
87 PLACEHOLDER_PAT@[104; 105) 87 WHITESPACE@[103; 104) " "
88 UNDERSCORE@[104; 105) "_" 88 PLACEHOLDER_PAT@[104; 105)
89 WHITESPACE@[105; 106) " " 89 UNDERSCORE@[104; 105) "_"
90 EQ@[106; 107) "=" 90 WHITESPACE@[105; 106) " "
91 WHITESPACE@[107; 108) " " 91 EQ@[106; 107) "="
92 TUPLE_EXPR@[108; 110) 92 WHITESPACE@[107; 108) " "
93 L_PAREN@[108; 109) "(" 93 TUPLE_EXPR@[108; 110)
94 R_PAREN@[109; 110) ")" 94 L_PAREN@[108; 109) "("
95 SEMI@[110; 111) ";" 95 R_PAREN@[109; 110) ")"
96 WHITESPACE@[111; 116) "\n " 96 SEMI@[110; 111) ";"
97 LET_STMT@[116; 143) 97 WHITESPACE@[111; 116) "\n "
98 LET_KW@[116; 119) "let" 98 LET_STMT@[116; 143)
99 WHITESPACE@[119; 120) " " 99 LET_KW@[116; 119) "let"
100 BIND_PAT@[120; 137) 100 WHITESPACE@[119; 120) " "
101 REF_KW@[120; 123) "ref" 101 BIND_PAT@[120; 137)
102 WHITESPACE@[123; 124) " " 102 REF_KW@[120; 123) "ref"
103 MUT_KW@[124; 127) "mut" 103 WHITESPACE@[123; 124) " "
104 WHITESPACE@[127; 128) " " 104 MUT_KW@[124; 127) "mut"
105 NAME@[128; 129) 105 WHITESPACE@[127; 128) " "
106 IDENT@[128; 129) "f" 106 NAME@[128; 129)
107 WHITESPACE@[129; 130) " " 107 IDENT@[128; 129) "f"
108 AT@[130; 131) "@" 108 WHITESPACE@[129; 130) " "
109 WHITESPACE@[131; 132) " " 109 AT@[130; 131) "@"
110 BIND_PAT@[132; 137) 110 WHITESPACE@[131; 132) " "
111 NAME@[132; 133) 111 BIND_PAT@[132; 137)
112 IDENT@[132; 133) "g" 112 NAME@[132; 133)
113 WHITESPACE@[133; 134) " " 113 IDENT@[132; 133) "g"
114 AT@[134; 135) "@" 114 WHITESPACE@[133; 134) " "
115 WHITESPACE@[135; 136) " " 115 AT@[134; 135) "@"
116 PLACEHOLDER_PAT@[136; 137) 116 WHITESPACE@[135; 136) " "
117 UNDERSCORE@[136; 137) "_" 117 PLACEHOLDER_PAT@[136; 137)
118 WHITESPACE@[137; 138) " " 118 UNDERSCORE@[136; 137) "_"
119 EQ@[138; 139) "=" 119 WHITESPACE@[137; 138) " "
120 WHITESPACE@[139; 140) " " 120 EQ@[138; 139) "="
121 TUPLE_EXPR@[140; 142) 121 WHITESPACE@[139; 140) " "
122 L_PAREN@[140; 141) "(" 122 TUPLE_EXPR@[140; 142)
123 R_PAREN@[141; 142) ")" 123 L_PAREN@[140; 141) "("
124 SEMI@[142; 143) ";" 124 R_PAREN@[141; 142) ")"
125 WHITESPACE@[143; 144) "\n" 125 SEMI@[142; 143) ";"
126 R_CURLY@[144; 145) "}" 126 WHITESPACE@[143; 144) "\n"
127 R_CURLY@[144; 145) "}"
127 WHITESPACE@[145; 146) "\n" 128 WHITESPACE@[145; 146) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.txt
index 601a5bae9..5db1ff2af 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.txt
@@ -7,50 +7,51 @@ SOURCE_FILE@[0; 50)
7 PARAM_LIST@[6; 8) 7 PARAM_LIST@[6; 8)
8 L_PAREN@[6; 7) "(" 8 L_PAREN@[6; 7) "("
9 R_PAREN@[7; 8) ")" 9 R_PAREN@[7; 8) ")"
10 BLOCK@[8; 49) 10 BLOCK_EXPR@[8; 49)
11 L_CURLY@[8; 9) "{" 11 BLOCK@[8; 49)
12 WHITESPACE@[9; 14) "\n " 12 L_CURLY@[8; 9) "{"
13 SEMI@[14; 15) ";" 13 WHITESPACE@[9; 14) "\n "
14 SEMI@[15; 16) ";" 14 SEMI@[14; 15) ";"
15 SEMI@[16; 17) ";" 15 SEMI@[15; 16) ";"
16 EXPR_STMT@[17; 29) 16 SEMI@[16; 17) ";"
17 CALL_EXPR@[17; 28) 17 EXPR_STMT@[17; 29)
18 PATH_EXPR@[17; 26) 18 CALL_EXPR@[17; 28)
19 PATH@[17; 26) 19 PATH_EXPR@[17; 26)
20 PATH_SEGMENT@[17; 26) 20 PATH@[17; 26)
21 NAME_REF@[17; 26) 21 PATH_SEGMENT@[17; 26)
22 IDENT@[17; 26) "some_expr" 22 NAME_REF@[17; 26)
23 ARG_LIST@[26; 28) 23 IDENT@[17; 26) "some_expr"
24 L_PAREN@[26; 27) "(" 24 ARG_LIST@[26; 28)
25 R_PAREN@[27; 28) ")" 25 L_PAREN@[26; 27) "("
26 SEMI@[28; 29) ";" 26 R_PAREN@[27; 28) ")"
27 SEMI@[29; 30) ";" 27 SEMI@[28; 29) ";"
28 SEMI@[30; 31) ";" 28 SEMI@[29; 30) ";"
29 SEMI@[31; 32) ";" 29 SEMI@[30; 31) ";"
30 EXPR_STMT@[32; 38) 30 SEMI@[31; 32) ";"
31 BLOCK_EXPR@[32; 37) 31 EXPR_STMT@[32; 38)
32 BLOCK@[32; 37) 32 BLOCK_EXPR@[32; 37)
33 L_CURLY@[32; 33) "{" 33 BLOCK@[32; 37)
34 SEMI@[33; 34) ";" 34 L_CURLY@[32; 33) "{"
35 SEMI@[34; 35) ";" 35 SEMI@[33; 34) ";"
36 SEMI@[35; 36) ";" 36 SEMI@[34; 35) ";"
37 R_CURLY@[36; 37) "}" 37 SEMI@[35; 36) ";"
38 SEMI@[37; 38) ";" 38 R_CURLY@[36; 37) "}"
39 SEMI@[38; 39) ";" 39 SEMI@[37; 38) ";"
40 SEMI@[39; 40) ";" 40 SEMI@[38; 39) ";"
41 SEMI@[40; 41) ";" 41 SEMI@[39; 40) ";"
42 CALL_EXPR@[41; 47) 42 SEMI@[40; 41) ";"
43 PATH_EXPR@[41; 43) 43 CALL_EXPR@[41; 47)
44 PATH@[41; 43) 44 PATH_EXPR@[41; 43)
45 PATH_SEGMENT@[41; 43) 45 PATH@[41; 43)
46 NAME_REF@[41; 43) 46 PATH_SEGMENT@[41; 43)
47 IDENT@[41; 43) "Ok" 47 NAME_REF@[41; 43)
48 ARG_LIST@[43; 47) 48 IDENT@[41; 43) "Ok"
49 L_PAREN@[43; 44) "(" 49 ARG_LIST@[43; 47)
50 TUPLE_EXPR@[44; 46) 50 L_PAREN@[43; 44) "("
51 L_PAREN@[44; 45) "(" 51 TUPLE_EXPR@[44; 46)
52 R_PAREN@[45; 46) ")" 52 L_PAREN@[44; 45) "("
53 R_PAREN@[46; 47) ")" 53 R_PAREN@[45; 46) ")"
54 WHITESPACE@[47; 48) "\n" 54 R_PAREN@[46; 47) ")"
55 R_CURLY@[48; 49) "}" 55 WHITESPACE@[47; 48) "\n"
56 R_CURLY@[48; 49) "}"
56 WHITESPACE@[49; 50) "\n" 57 WHITESPACE@[49; 50) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.txt b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.txt
index d53e10e86..852e4e489 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.txt
@@ -8,40 +8,41 @@ SOURCE_FILE@[0; 58)
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; 57) 11 BLOCK_EXPR@[9; 57)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 57)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 MATCH_EXPR@[15; 55) 14 WHITESPACE@[10; 15) "\n "
15 MATCH_KW@[15; 20) "match" 15 MATCH_EXPR@[15; 55)
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; 55) 21 WHITESPACE@[23; 24) " "
22 L_CURLY@[24; 25) "{" 22 MATCH_ARM_LIST@[24; 55)
23 WHITESPACE@[25; 34) "\n " 23 L_CURLY@[24; 25) "{"
24 MATCH_ARM@[34; 48) 24 WHITESPACE@[25; 34) "\n "
25 PLACEHOLDER_PAT@[34; 35) 25 MATCH_ARM@[34; 48)
26 UNDERSCORE@[34; 35) "_" 26 PLACEHOLDER_PAT@[34; 35)
27 WHITESPACE@[35; 36) " " 27 UNDERSCORE@[34; 35) "_"
28 MATCH_GUARD@[36; 42) 28 WHITESPACE@[35; 36) " "
29 IF_KW@[36; 38) "if" 29 MATCH_GUARD@[36; 42)
30 WHITESPACE@[38; 39) " " 30 IF_KW@[36; 38) "if"
31 PATH_EXPR@[39; 42) 31 WHITESPACE@[38; 39) " "
32 PATH@[39; 42) 32 PATH_EXPR@[39; 42)
33 PATH_SEGMENT@[39; 42) 33 PATH@[39; 42)
34 NAME_REF@[39; 42) 34 PATH_SEGMENT@[39; 42)
35 IDENT@[39; 42) "foo" 35 NAME_REF@[39; 42)
36 WHITESPACE@[42; 43) " " 36 IDENT@[39; 42) "foo"
37 FAT_ARROW@[43; 45) "=>" 37 WHITESPACE@[42; 43) " "
38 WHITESPACE@[45; 46) " " 38 FAT_ARROW@[43; 45) "=>"
39 TUPLE_EXPR@[46; 48) 39 WHITESPACE@[45; 46) " "
40 L_PAREN@[46; 47) "(" 40 TUPLE_EXPR@[46; 48)
41 R_PAREN@[47; 48) ")" 41 L_PAREN@[46; 47) "("
42 COMMA@[48; 49) "," 42 R_PAREN@[47; 48) ")"
43 WHITESPACE@[49; 54) "\n " 43 COMMA@[48; 49) ","
44 R_CURLY@[54; 55) "}" 44 WHITESPACE@[49; 54) "\n "
45 WHITESPACE@[55; 56) "\n" 45 R_CURLY@[54; 55) "}"
46 R_CURLY@[56; 57) "}" 46 WHITESPACE@[55; 56) "\n"
47 R_CURLY@[56; 57) "}"
47 WHITESPACE@[57; 58) "\n" 48 WHITESPACE@[57; 58) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.txt b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.txt
index 17c296327..3bbeb62bc 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.txt
@@ -8,67 +8,68 @@ 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 MATCH_EXPR@[15; 136) 14 WHITESPACE@[10; 15) "\n "
15 MATCH_KW@[15; 20) "match" 15 MATCH_EXPR@[15; 136)
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; 136) 21 WHITESPACE@[23; 24) " "
22 L_CURLY@[24; 25) "{" 22 MATCH_ARM_LIST@[24; 136)
23 WHITESPACE@[25; 34) "\n " 23 L_CURLY@[24; 25) "{"
24 ATTR@[34; 60) 24 WHITESPACE@[25; 34) "\n "
25 POUND@[34; 35) "#" 25 ATTR@[34; 60)
26 EXCL@[35; 36) "!" 26 POUND@[34; 35) "#"
27 TOKEN_TREE@[36; 60) 27 EXCL@[35; 36) "!"
28 L_BRACK@[36; 37) "[" 28 TOKEN_TREE@[36; 60)
29 IDENT@[37; 40) "doc" 29 L_BRACK@[36; 37) "["
30 TOKEN_TREE@[40; 59) 30 IDENT@[37; 40) "doc"
31 L_PAREN@[40; 41) "(" 31 TOKEN_TREE@[40; 59)
32 STRING@[41; 58) "\"Inner attribute\"" 32 L_PAREN@[40; 41) "("
33 R_PAREN@[58; 59) ")" 33 STRING@[41; 58) "\"Inner attribute\""
34 R_BRACK@[59; 60) "]" 34 R_PAREN@[58; 59) ")"
35 WHITESPACE@[60; 69) "\n " 35 R_BRACK@[59; 60) "]"
36 ATTR@[69; 86) 36 WHITESPACE@[60; 69) "\n "
37 POUND@[69; 70) "#" 37 ATTR@[69; 86)
38 EXCL@[70; 71) "!" 38 POUND@[69; 70) "#"
39 TOKEN_TREE@[71; 86) 39 EXCL@[70; 71) "!"
40 L_BRACK@[71; 72) "[" 40 TOKEN_TREE@[71; 86)
41 IDENT@[72; 75) "doc" 41 L_BRACK@[71; 72) "["
42 TOKEN_TREE@[75; 85) 42 IDENT@[72; 75) "doc"
43 L_PAREN@[75; 76) "(" 43 TOKEN_TREE@[75; 85)
44 STRING@[76; 84) "\"Can be\"" 44 L_PAREN@[75; 76) "("
45 R_PAREN@[84; 85) ")" 45 STRING@[76; 84) "\"Can be\""
46 R_BRACK@[85; 86) "]" 46 R_PAREN@[84; 85) ")"
47 WHITESPACE@[86; 95) "\n " 47 R_BRACK@[85; 86) "]"
48 ATTR@[95; 113) 48 WHITESPACE@[86; 95) "\n "
49 POUND@[95; 96) "#" 49 ATTR@[95; 113)
50 EXCL@[96; 97) "!" 50 POUND@[95; 96) "#"
51 TOKEN_TREE@[97; 113) 51 EXCL@[96; 97) "!"
52 L_BRACK@[97; 98) "[" 52 TOKEN_TREE@[97; 113)
53 IDENT@[98; 101) "doc" 53 L_BRACK@[97; 98) "["
54 TOKEN_TREE@[101; 112) 54 IDENT@[98; 101) "doc"
55 L_PAREN@[101; 102) "(" 55 TOKEN_TREE@[101; 112)
56 STRING@[102; 111) "\"Stacked\"" 56 L_PAREN@[101; 102) "("
57 R_PAREN@[111; 112) ")" 57 STRING@[102; 111) "\"Stacked\""
58 R_BRACK@[112; 113) "]" 58 R_PAREN@[111; 112) ")"
59 WHITESPACE@[113; 122) "\n " 59 R_BRACK@[112; 113) "]"
60 MATCH_ARM@[122; 129) 60 WHITESPACE@[113; 122) "\n "
61 PLACEHOLDER_PAT@[122; 123) 61 MATCH_ARM@[122; 129)
62 UNDERSCORE@[122; 123) "_" 62 PLACEHOLDER_PAT@[122; 123)
63 WHITESPACE@[123; 124) " " 63 UNDERSCORE@[122; 123) "_"
64 FAT_ARROW@[124; 126) "=>" 64 WHITESPACE@[123; 124) " "
65 WHITESPACE@[126; 127) " " 65 FAT_ARROW@[124; 126) "=>"
66 TUPLE_EXPR@[127; 129) 66 WHITESPACE@[126; 127) " "
67 L_PAREN@[127; 128) "(" 67 TUPLE_EXPR@[127; 129)
68 R_PAREN@[128; 129) ")" 68 L_PAREN@[127; 128) "("
69 COMMA@[129; 130) "," 69 R_PAREN@[128; 129) ")"
70 WHITESPACE@[130; 135) "\n " 70 COMMA@[129; 130) ","
71 R_CURLY@[135; 136) "}" 71 WHITESPACE@[130; 135) "\n "
72 WHITESPACE@[136; 137) "\n" 72 R_CURLY@[135; 136) "}"
73 R_CURLY@[137; 138) "}" 73 WHITESPACE@[136; 137) "\n"
74 R_CURLY@[137; 138) "}"
74 WHITESPACE@[138; 139) "\n" 75 WHITESPACE@[138; 139) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.txt b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.txt
index 9c238e869..5fd0adfc2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.txt
@@ -8,128 +8,129 @@ SOURCE_FILE@[0; 259)
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; 258) 11 BLOCK_EXPR@[9; 258)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 258)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 MATCH_EXPR@[15; 256) 14 WHITESPACE@[10; 15) "\n "
15 MATCH_KW@[15; 20) "match" 15 MATCH_EXPR@[15; 256)
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; 256) 21 WHITESPACE@[23; 24) " "
22 L_CURLY@[24; 25) "{" 22 MATCH_ARM_LIST@[24; 256)
23 WHITESPACE@[25; 34) "\n " 23 L_CURLY@[24; 25) "{"
24 MATCH_ARM@[34; 74) 24 WHITESPACE@[25; 34) "\n "
25 ATTR@[34; 58) 25 MATCH_ARM@[34; 74)
26 POUND@[34; 35) "#" 26 ATTR@[34; 58)
27 TOKEN_TREE@[35; 58) 27 POUND@[34; 35) "#"
28 L_BRACK@[35; 36) "[" 28 TOKEN_TREE@[35; 58)
29 IDENT@[36; 39) "cfg" 29 L_BRACK@[35; 36) "["
30 TOKEN_TREE@[39; 57) 30 IDENT@[36; 39) "cfg"
31 L_PAREN@[39; 40) "(" 31 TOKEN_TREE@[39; 57)
32 IDENT@[40; 47) "feature" 32 L_PAREN@[39; 40) "("
33 WHITESPACE@[47; 48) " " 33 IDENT@[40; 47) "feature"
34 EQ@[48; 49) "=" 34 WHITESPACE@[47; 48) " "
35 WHITESPACE@[49; 50) " " 35 EQ@[48; 49) "="
36 STRING@[50; 56) "\"some\"" 36 WHITESPACE@[49; 50) " "
37 R_PAREN@[56; 57) ")" 37 STRING@[50; 56) "\"some\""
38 R_BRACK@[57; 58) "]" 38 R_PAREN@[56; 57) ")"
39 WHITESPACE@[58; 67) "\n " 39 R_BRACK@[57; 58) "]"
40 PLACEHOLDER_PAT@[67; 68) 40 WHITESPACE@[58; 67) "\n "
41 UNDERSCORE@[67; 68) "_" 41 PLACEHOLDER_PAT@[67; 68)
42 WHITESPACE@[68; 69) " " 42 UNDERSCORE@[67; 68) "_"
43 FAT_ARROW@[69; 71) "=>" 43 WHITESPACE@[68; 69) " "
44 WHITESPACE@[71; 72) " " 44 FAT_ARROW@[69; 71) "=>"
45 TUPLE_EXPR@[72; 74) 45 WHITESPACE@[71; 72) " "
46 L_PAREN@[72; 73) "(" 46 TUPLE_EXPR@[72; 74)
47 R_PAREN@[73; 74) ")" 47 L_PAREN@[72; 73) "("
48 COMMA@[74; 75) "," 48 R_PAREN@[73; 74) ")"
49 WHITESPACE@[75; 84) "\n " 49 COMMA@[74; 75) ","
50 MATCH_ARM@[84; 125) 50 WHITESPACE@[75; 84) "\n "
51 ATTR@[84; 109) 51 MATCH_ARM@[84; 125)
52 POUND@[84; 85) "#" 52 ATTR@[84; 109)
53 TOKEN_TREE@[85; 109) 53 POUND@[84; 85) "#"
54 L_BRACK@[85; 86) "[" 54 TOKEN_TREE@[85; 109)
55 IDENT@[86; 89) "cfg" 55 L_BRACK@[85; 86) "["
56 TOKEN_TREE@[89; 108) 56 IDENT@[86; 89) "cfg"
57 L_PAREN@[89; 90) "(" 57 TOKEN_TREE@[89; 108)
58 IDENT@[90; 97) "feature" 58 L_PAREN@[89; 90) "("
59 WHITESPACE@[97; 98) " " 59 IDENT@[90; 97) "feature"
60 EQ@[98; 99) "=" 60 WHITESPACE@[97; 98) " "
61 WHITESPACE@[99; 100) " " 61 EQ@[98; 99) "="
62 STRING@[100; 107) "\"other\"" 62 WHITESPACE@[99; 100) " "
63 R_PAREN@[107; 108) ")" 63 STRING@[100; 107) "\"other\""
64 R_BRACK@[108; 109) "]" 64 R_PAREN@[107; 108) ")"
65 WHITESPACE@[109; 118) "\n " 65 R_BRACK@[108; 109) "]"
66 PLACEHOLDER_PAT@[118; 119) 66 WHITESPACE@[109; 118) "\n "
67 UNDERSCORE@[118; 119) "_" 67 PLACEHOLDER_PAT@[118; 119)
68 WHITESPACE@[119; 120) " " 68 UNDERSCORE@[118; 119) "_"
69 FAT_ARROW@[120; 122) "=>" 69 WHITESPACE@[119; 120) " "
70 WHITESPACE@[122; 123) " " 70 FAT_ARROW@[120; 122) "=>"
71 TUPLE_EXPR@[123; 125) 71 WHITESPACE@[122; 123) " "
72 L_PAREN@[123; 124) "(" 72 TUPLE_EXPR@[123; 125)
73 R_PAREN@[124; 125) ")" 73 L_PAREN@[123; 124) "("
74 COMMA@[125; 126) "," 74 R_PAREN@[124; 125) ")"
75 WHITESPACE@[126; 135) "\n " 75 COMMA@[125; 126) ","
76 MATCH_ARM@[135; 249) 76 WHITESPACE@[126; 135) "\n "
77 ATTR@[135; 159) 77 MATCH_ARM@[135; 249)
78 POUND@[135; 136) "#" 78 ATTR@[135; 159)
79 TOKEN_TREE@[136; 159) 79 POUND@[135; 136) "#"
80 L_BRACK@[136; 137) "[" 80 TOKEN_TREE@[136; 159)
81 IDENT@[137; 140) "cfg" 81 L_BRACK@[136; 137) "["
82 TOKEN_TREE@[140; 158) 82 IDENT@[137; 140) "cfg"
83 L_PAREN@[140; 141) "(" 83 TOKEN_TREE@[140; 158)
84 IDENT@[141; 148) "feature" 84 L_PAREN@[140; 141) "("
85 WHITESPACE@[148; 149) " " 85 IDENT@[141; 148) "feature"
86 EQ@[149; 150) "=" 86 WHITESPACE@[148; 149) " "
87 WHITESPACE@[150; 151) " " 87 EQ@[149; 150) "="
88 STRING@[151; 157) "\"many\"" 88 WHITESPACE@[150; 151) " "
89 R_PAREN@[157; 158) ")" 89 STRING@[151; 157) "\"many\""
90 R_BRACK@[158; 159) "]" 90 R_PAREN@[157; 158) ")"
91 WHITESPACE@[159; 168) "\n " 91 R_BRACK@[158; 159) "]"
92 ATTR@[168; 198) 92 WHITESPACE@[159; 168) "\n "
93 POUND@[168; 169) "#" 93 ATTR@[168; 198)
94 TOKEN_TREE@[169; 198) 94 POUND@[168; 169) "#"
95 L_BRACK@[169; 170) "[" 95 TOKEN_TREE@[169; 198)
96 IDENT@[170; 173) "cfg" 96 L_BRACK@[169; 170) "["
97 TOKEN_TREE@[173; 197) 97 IDENT@[170; 173) "cfg"
98 L_PAREN@[173; 174) "(" 98 TOKEN_TREE@[173; 197)
99 IDENT@[174; 181) "feature" 99 L_PAREN@[173; 174) "("
100 WHITESPACE@[181; 182) " " 100 IDENT@[174; 181) "feature"
101 EQ@[182; 183) "=" 101 WHITESPACE@[181; 182) " "
102 WHITESPACE@[183; 184) " " 102 EQ@[182; 183) "="
103 STRING@[184; 196) "\"attributes\"" 103 WHITESPACE@[183; 184) " "
104 R_PAREN@[196; 197) ")" 104 STRING@[184; 196) "\"attributes\""
105 R_BRACK@[197; 198) "]" 105 R_PAREN@[196; 197) ")"
106 WHITESPACE@[198; 207) "\n " 106 R_BRACK@[197; 198) "]"
107 ATTR@[207; 233) 107 WHITESPACE@[198; 207) "\n "
108 POUND@[207; 208) "#" 108 ATTR@[207; 233)
109 TOKEN_TREE@[208; 233) 109 POUND@[207; 208) "#"
110 L_BRACK@[208; 209) "[" 110 TOKEN_TREE@[208; 233)
111 IDENT@[209; 212) "cfg" 111 L_BRACK@[208; 209) "["
112 TOKEN_TREE@[212; 232) 112 IDENT@[209; 212) "cfg"
113 L_PAREN@[212; 213) "(" 113 TOKEN_TREE@[212; 232)
114 IDENT@[213; 220) "feature" 114 L_PAREN@[212; 213) "("
115 WHITESPACE@[220; 221) " " 115 IDENT@[213; 220) "feature"
116 EQ@[221; 222) "=" 116 WHITESPACE@[220; 221) " "
117 WHITESPACE@[222; 223) " " 117 EQ@[221; 222) "="
118 STRING@[223; 231) "\"before\"" 118 WHITESPACE@[222; 223) " "
119 R_PAREN@[231; 232) ")" 119 STRING@[223; 231) "\"before\""
120 R_BRACK@[232; 233) "]" 120 R_PAREN@[231; 232) ")"
121 WHITESPACE@[233; 242) "\n " 121 R_BRACK@[232; 233) "]"
122 PLACEHOLDER_PAT@[242; 243) 122 WHITESPACE@[233; 242) "\n "
123 UNDERSCORE@[242; 243) "_" 123 PLACEHOLDER_PAT@[242; 243)
124 WHITESPACE@[243; 244) " " 124 UNDERSCORE@[242; 243) "_"
125 FAT_ARROW@[244; 246) "=>" 125 WHITESPACE@[243; 244) " "
126 WHITESPACE@[246; 247) " " 126 FAT_ARROW@[244; 246) "=>"
127 TUPLE_EXPR@[247; 249) 127 WHITESPACE@[246; 247) " "
128 L_PAREN@[247; 248) "(" 128 TUPLE_EXPR@[247; 249)
129 R_PAREN@[248; 249) ")" 129 L_PAREN@[247; 248) "("
130 COMMA@[249; 250) "," 130 R_PAREN@[248; 249) ")"
131 WHITESPACE@[250; 255) "\n " 131 COMMA@[249; 250) ","
132 R_CURLY@[255; 256) "}" 132 WHITESPACE@[250; 255) "\n "
133 WHITESPACE@[256; 257) "\n" 133 R_CURLY@[255; 256) "}"
134 R_CURLY@[257; 258) "}" 134 WHITESPACE@[256; 257) "\n"
135 R_CURLY@[257; 258) "}"
135 WHITESPACE@[258; 259) "\n" 136 WHITESPACE@[258; 259) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.txt b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.txt
index a45995236..bc7b68b90 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.txt
@@ -54,8 +54,9 @@ SOURCE_FILE@[0; 64)
54 IDENT@[57; 58) "T" 54 IDENT@[57; 58) "T"
55 R_PAREN@[58; 59) ")" 55 R_PAREN@[58; 59) ")"
56 WHITESPACE@[59; 60) " " 56 WHITESPACE@[59; 60) " "
57 BLOCK@[60; 63) 57 BLOCK_EXPR@[60; 63)
58 L_CURLY@[60; 61) "{" 58 BLOCK@[60; 63)
59 WHITESPACE@[61; 62) "\n" 59 L_CURLY@[60; 61) "{"
60 R_CURLY@[62; 63) "}" 60 WHITESPACE@[61; 62) "\n"
61 R_CURLY@[62; 63) "}"
61 WHITESPACE@[63; 64) "\n" 62 WHITESPACE@[63; 64) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.txt b/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.txt
index f0610e781..9c4bd7f11 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.txt
@@ -10,7 +10,8 @@ SOURCE_FILE@[0; 18)
10 L_PAREN@[12; 13) "(" 10 L_PAREN@[12; 13) "("
11 R_PAREN@[13; 14) ")" 11 R_PAREN@[13; 14) ")"
12 WHITESPACE@[14; 15) " " 12 WHITESPACE@[14; 15) " "
13 BLOCK@[15; 17) 13 BLOCK_EXPR@[15; 17)
14 L_CURLY@[15; 16) "{" 14 BLOCK@[15; 17)
15 R_CURLY@[16; 17) "}" 15 L_CURLY@[15; 16) "{"
16 R_CURLY@[16; 17) "}"
16 WHITESPACE@[17; 18) "\n" 17 WHITESPACE@[17; 18) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.txt b/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.txt
index 4afe9c555..6a9f3bf72 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.txt
@@ -8,24 +8,25 @@ SOURCE_FILE@[0; 27)
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; 26) 11 BLOCK_EXPR@[9; 26)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 26)
13 WHITESPACE@[10; 11) " " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[11; 24) 14 WHITESPACE@[10; 11) " "
15 CALL_EXPR@[11; 23) 15 EXPR_STMT@[11; 24)
16 PATH_EXPR@[11; 21) 16 CALL_EXPR@[11; 23)
17 PATH@[11; 21) 17 PATH_EXPR@[11; 21)
18 PATH@[11; 16) 18 PATH@[11; 21)
19 PATH_SEGMENT@[11; 16) 19 PATH@[11; 16)
20 CRATE_KW@[11; 16) "crate" 20 PATH_SEGMENT@[11; 16)
21 COLONCOLON@[16; 18) "::" 21 CRATE_KW@[11; 16) "crate"
22 PATH_SEGMENT@[18; 21) 22 COLONCOLON@[16; 18) "::"
23 NAME_REF@[18; 21) 23 PATH_SEGMENT@[18; 21)
24 IDENT@[18; 21) "foo" 24 NAME_REF@[18; 21)
25 ARG_LIST@[21; 23) 25 IDENT@[18; 21) "foo"
26 L_PAREN@[21; 22) "(" 26 ARG_LIST@[21; 23)
27 R_PAREN@[22; 23) ")" 27 L_PAREN@[21; 22) "("
28 SEMI@[23; 24) ";" 28 R_PAREN@[22; 23) ")"
29 WHITESPACE@[24; 25) " " 29 SEMI@[23; 24) ";"
30 R_CURLY@[25; 26) "}" 30 WHITESPACE@[24; 25) " "
31 R_CURLY@[25; 26) "}"
31 WHITESPACE@[26; 27) "\n" 32 WHITESPACE@[26; 27) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.txt
index 8fdf3756f..37cc438d9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.txt
@@ -8,38 +8,39 @@ SOURCE_FILE@[0; 46)
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; 45) 11 BLOCK_EXPR@[10; 45)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 45)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 RECORD_LIT@[16; 43) 14 WHITESPACE@[11; 16) "\n "
15 PATH@[16; 17) 15 RECORD_LIT@[16; 43)
16 PATH_SEGMENT@[16; 17) 16 PATH@[16; 17)
17 NAME_REF@[16; 17) 17 PATH_SEGMENT@[16; 17)
18 IDENT@[16; 17) "S" 18 NAME_REF@[16; 17)
19 WHITESPACE@[17; 18) " " 19 IDENT@[16; 17) "S"
20 RECORD_FIELD_LIST@[18; 43) 20 WHITESPACE@[17; 18) " "
21 L_CURLY@[18; 19) "{" 21 RECORD_FIELD_LIST@[18; 43)
22 WHITESPACE@[19; 20) " " 22 L_CURLY@[18; 19) "{"
23 RECORD_FIELD@[20; 41) 23 WHITESPACE@[19; 20) " "
24 ATTR@[20; 32) 24 RECORD_FIELD@[20; 41)
25 POUND@[20; 21) "#" 25 ATTR@[20; 32)
26 TOKEN_TREE@[21; 32) 26 POUND@[20; 21) "#"
27 L_BRACK@[21; 22) "[" 27 TOKEN_TREE@[21; 32)
28 IDENT@[22; 25) "cfg" 28 L_BRACK@[21; 22) "["
29 TOKEN_TREE@[25; 31) 29 IDENT@[22; 25) "cfg"
30 L_PAREN@[25; 26) "(" 30 TOKEN_TREE@[25; 31)
31 IDENT@[26; 30) "test" 31 L_PAREN@[25; 26) "("
32 R_PAREN@[30; 31) ")" 32 IDENT@[26; 30) "test"
33 R_BRACK@[31; 32) "]" 33 R_PAREN@[30; 31) ")"
34 WHITESPACE@[32; 33) " " 34 R_BRACK@[31; 32) "]"
35 NAME_REF@[33; 38) 35 WHITESPACE@[32; 33) " "
36 IDENT@[33; 38) "field" 36 NAME_REF@[33; 38)
37 COLON@[38; 39) ":" 37 IDENT@[33; 38) "field"
38 WHITESPACE@[39; 40) " " 38 COLON@[38; 39) ":"
39 LITERAL@[40; 41) 39 WHITESPACE@[39; 40) " "
40 INT_NUMBER@[40; 41) "1" 40 LITERAL@[40; 41)
41 WHITESPACE@[41; 42) " " 41 INT_NUMBER@[40; 41) "1"
42 R_CURLY@[42; 43) "}" 42 WHITESPACE@[41; 42) " "
43 WHITESPACE@[43; 44) "\n" 43 R_CURLY@[42; 43) "}"
44 R_CURLY@[44; 45) "}" 44 WHITESPACE@[43; 44) "\n"
45 R_CURLY@[44; 45) "}"
45 WHITESPACE@[45; 46) "\n" 46 WHITESPACE@[45; 46) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.txt b/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.txt
index c15c7573a..6bc0db077 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.txt
@@ -8,81 +8,82 @@ SOURCE_FILE@[0; 82)
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; 81) 11 BLOCK_EXPR@[9; 81)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 81)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 26) 14 WHITESPACE@[10; 15) "\n "
15 ATTR@[15; 19) 15 EXPR_STMT@[15; 26)
16 POUND@[15; 16) "#" 16 ATTR@[15; 19)
17 TOKEN_TREE@[16; 19) 17 POUND@[15; 16) "#"
18 L_BRACK@[16; 17) "[" 18 TOKEN_TREE@[16; 19)
19 IDENT@[17; 18) "A" 19 L_BRACK@[16; 17) "["
20 R_BRACK@[18; 19) "]" 20 IDENT@[17; 18) "A"
21 WHITESPACE@[19; 20) " " 21 R_BRACK@[18; 19) "]"
22 CALL_EXPR@[20; 25) 22 WHITESPACE@[19; 20) " "
23 PATH_EXPR@[20; 23) 23 CALL_EXPR@[20; 25)
24 PATH@[20; 23) 24 PATH_EXPR@[20; 23)
25 PATH_SEGMENT@[20; 23) 25 PATH@[20; 23)
26 NAME_REF@[20; 23) 26 PATH_SEGMENT@[20; 23)
27 IDENT@[20; 23) "foo" 27 NAME_REF@[20; 23)
28 ARG_LIST@[23; 25) 28 IDENT@[20; 23) "foo"
29 L_PAREN@[23; 24) "(" 29 ARG_LIST@[23; 25)
30 R_PAREN@[24; 25) ")" 30 L_PAREN@[23; 24) "("
31 SEMI@[25; 26) ";" 31 R_PAREN@[24; 25) ")"
32 WHITESPACE@[26; 31) "\n " 32 SEMI@[25; 26) ";"
33 EXPR_STMT@[31; 42) 33 WHITESPACE@[26; 31) "\n "
34 ATTR@[31; 35) 34 EXPR_STMT@[31; 42)
35 POUND@[31; 32) "#" 35 ATTR@[31; 35)
36 TOKEN_TREE@[32; 35) 36 POUND@[31; 32) "#"
37 L_BRACK@[32; 33) "[" 37 TOKEN_TREE@[32; 35)
38 IDENT@[33; 34) "B" 38 L_BRACK@[32; 33) "["
39 R_BRACK@[34; 35) "]" 39 IDENT@[33; 34) "B"
40 WHITESPACE@[35; 36) " " 40 R_BRACK@[34; 35) "]"
41 MACRO_CALL@[36; 42) 41 WHITESPACE@[35; 36) " "
42 PATH@[36; 39) 42 MACRO_CALL@[36; 42)
43 PATH_SEGMENT@[36; 39) 43 PATH@[36; 39)
44 NAME_REF@[36; 39) 44 PATH_SEGMENT@[36; 39)
45 IDENT@[36; 39) "bar" 45 NAME_REF@[36; 39)
46 EXCL@[39; 40) "!" 46 IDENT@[36; 39) "bar"
47 TOKEN_TREE@[40; 42) 47 EXCL@[39; 40) "!"
48 L_CURLY@[40; 41) "{" 48 TOKEN_TREE@[40; 42)
49 R_CURLY@[41; 42) "}" 49 L_CURLY@[40; 41) "{"
50 WHITESPACE@[42; 47) "\n " 50 R_CURLY@[41; 42) "}"
51 EXPR_STMT@[47; 59) 51 WHITESPACE@[42; 47) "\n "
52 ATTR@[47; 51) 52 EXPR_STMT@[47; 59)
53 POUND@[47; 48) "#" 53 ATTR@[47; 51)
54 TOKEN_TREE@[48; 51) 54 POUND@[47; 48) "#"
55 L_BRACK@[48; 49) "[" 55 TOKEN_TREE@[48; 51)
56 IDENT@[49; 50) "C" 56 L_BRACK@[48; 49) "["
57 R_BRACK@[50; 51) "]" 57 IDENT@[49; 50) "C"
58 WHITESPACE@[51; 52) " " 58 R_BRACK@[50; 51) "]"
59 ATTR@[52; 56) 59 WHITESPACE@[51; 52) " "
60 POUND@[52; 53) "#" 60 ATTR@[52; 56)
61 TOKEN_TREE@[53; 56) 61 POUND@[52; 53) "#"
62 L_BRACK@[53; 54) "[" 62 TOKEN_TREE@[53; 56)
63 IDENT@[54; 55) "D" 63 L_BRACK@[53; 54) "["
64 R_BRACK@[55; 56) "]" 64 IDENT@[54; 55) "D"
65 WHITESPACE@[56; 57) " " 65 R_BRACK@[55; 56) "]"
66 BLOCK_EXPR@[57; 59) 66 WHITESPACE@[56; 57) " "
67 BLOCK@[57; 59) 67 BLOCK_EXPR@[57; 59)
68 L_CURLY@[57; 58) "{" 68 BLOCK@[57; 59)
69 R_CURLY@[58; 59) "}" 69 L_CURLY@[57; 58) "{"
70 WHITESPACE@[59; 64) "\n " 70 R_CURLY@[58; 59) "}"
71 EXPR_STMT@[64; 79) 71 WHITESPACE@[59; 64) "\n "
72 ATTR@[64; 68) 72 EXPR_STMT@[64; 79)
73 POUND@[64; 65) "#" 73 ATTR@[64; 68)
74 TOKEN_TREE@[65; 68) 74 POUND@[64; 65) "#"
75 L_BRACK@[65; 66) "[" 75 TOKEN_TREE@[65; 68)
76 IDENT@[66; 67) "D" 76 L_BRACK@[65; 66) "["
77 R_BRACK@[67; 68) "]" 77 IDENT@[66; 67) "D"
78 WHITESPACE@[68; 69) " " 78 R_BRACK@[67; 68) "]"
79 RETURN_EXPR@[69; 78) 79 WHITESPACE@[68; 69) " "
80 RETURN_KW@[69; 75) "return" 80 RETURN_EXPR@[69; 78)
81 WHITESPACE@[75; 76) " " 81 RETURN_KW@[69; 75) "return"
82 TUPLE_EXPR@[76; 78) 82 WHITESPACE@[75; 76) " "
83 L_PAREN@[76; 77) "(" 83 TUPLE_EXPR@[76; 78)
84 R_PAREN@[77; 78) ")" 84 L_PAREN@[76; 77) "("
85 SEMI@[78; 79) ";" 85 R_PAREN@[77; 78) ")"
86 WHITESPACE@[79; 80) "\n" 86 SEMI@[78; 79) ";"
87 R_CURLY@[80; 81) "}" 87 WHITESPACE@[79; 80) "\n"
88 R_CURLY@[80; 81) "}"
88 WHITESPACE@[81; 82) "\n" 89 WHITESPACE@[81; 82) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.txt b/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.txt
index 62a6a7bc0..c201196ec 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.txt
@@ -8,47 +8,48 @@ SOURCE_FILE@[0; 47)
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; 46) 11 BLOCK_EXPR@[9; 46)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 46)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 31) 14 WHITESPACE@[10; 15) "\n "
15 BLOCK_EXPR@[15; 31) 15 EXPR_STMT@[15; 31)
16 BLOCK@[15; 31) 16 BLOCK_EXPR@[15; 31)
17 L_CURLY@[15; 16) "{" 17 BLOCK@[15; 31)
18 WHITESPACE@[16; 17) " " 18 L_CURLY@[15; 16) "{"
19 TRY_EXPR@[17; 29) 19 WHITESPACE@[16; 17) " "
20 ATTR@[17; 21) 20 TRY_EXPR@[17; 29)
21 POUND@[17; 18) "#" 21 ATTR@[17; 21)
22 TOKEN_TREE@[18; 21) 22 POUND@[17; 18) "#"
23 L_BRACK@[18; 19) "[" 23 TOKEN_TREE@[18; 21)
24 IDENT@[19; 20) "A" 24 L_BRACK@[18; 19) "["
25 R_BRACK@[20; 21) "]" 25 IDENT@[19; 20) "A"
26 WHITESPACE@[21; 22) " " 26 R_BRACK@[20; 21) "]"
27 MACRO_CALL@[22; 28) 27 WHITESPACE@[21; 22) " "
28 PATH@[22; 25) 28 MACRO_CALL@[22; 28)
29 PATH_SEGMENT@[22; 25) 29 PATH@[22; 25)
30 NAME_REF@[22; 25) 30 PATH_SEGMENT@[22; 25)
31 IDENT@[22; 25) "bar" 31 NAME_REF@[22; 25)
32 EXCL@[25; 26) "!" 32 IDENT@[22; 25) "bar"
33 TOKEN_TREE@[26; 28) 33 EXCL@[25; 26) "!"
34 L_PAREN@[26; 27) "(" 34 TOKEN_TREE@[26; 28)
35 R_PAREN@[27; 28) ")" 35 L_PAREN@[26; 27) "("
36 QUESTION@[28; 29) "?" 36 R_PAREN@[27; 28) ")"
37 WHITESPACE@[29; 30) " " 37 QUESTION@[28; 29) "?"
38 R_CURLY@[30; 31) "}" 38 WHITESPACE@[29; 30) " "
39 WHITESPACE@[31; 36) "\n " 39 R_CURLY@[30; 31) "}"
40 REF_EXPR@[36; 44) 40 WHITESPACE@[31; 36) "\n "
41 ATTR@[36; 40) 41 REF_EXPR@[36; 44)
42 POUND@[36; 37) "#" 42 ATTR@[36; 40)
43 TOKEN_TREE@[37; 40) 43 POUND@[36; 37) "#"
44 L_BRACK@[37; 38) "[" 44 TOKEN_TREE@[37; 40)
45 IDENT@[38; 39) "B" 45 L_BRACK@[37; 38) "["
46 R_BRACK@[39; 40) "]" 46 IDENT@[38; 39) "B"
47 WHITESPACE@[40; 41) " " 47 R_BRACK@[39; 40) "]"
48 AMP@[41; 42) "&" 48 WHITESPACE@[40; 41) " "
49 TUPLE_EXPR@[42; 44) 49 AMP@[41; 42) "&"
50 L_PAREN@[42; 43) "(" 50 TUPLE_EXPR@[42; 44)
51 R_PAREN@[43; 44) ")" 51 L_PAREN@[42; 43) "("
52 WHITESPACE@[44; 45) "\n" 52 R_PAREN@[43; 44) ")"
53 R_CURLY@[45; 46) "}" 53 WHITESPACE@[44; 45) "\n"
54 R_CURLY@[45; 46) "}"
54 WHITESPACE@[46; 47) "\n" 55 WHITESPACE@[46; 47) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.txt b/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.txt
index 2a16aeb61..cae75c41d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.txt
@@ -12,9 +12,10 @@ SOURCE_FILE@[0; 50)
12 L_PAREN@[19; 20) "(" 12 L_PAREN@[19; 20) "("
13 R_PAREN@[20; 21) ")" 13 R_PAREN@[20; 21) ")"
14 WHITESPACE@[21; 22) " " 14 WHITESPACE@[21; 22) " "
15 BLOCK@[22; 24) 15 BLOCK_EXPR@[22; 24)
16 L_CURLY@[22; 23) "{" 16 BLOCK@[22; 24)
17 R_CURLY@[23; 24) "}" 17 L_CURLY@[22; 23) "{"
18 R_CURLY@[23; 24) "}"
18 WHITESPACE@[24; 25) "\n" 19 WHITESPACE@[24; 25) "\n"
19 FN_DEF@[25; 49) 20 FN_DEF@[25; 49)
20 CONST_KW@[25; 30) "const" 21 CONST_KW@[25; 30) "const"
@@ -29,7 +30,8 @@ SOURCE_FILE@[0; 50)
29 L_PAREN@[44; 45) "(" 30 L_PAREN@[44; 45) "("
30 R_PAREN@[45; 46) ")" 31 R_PAREN@[45; 46) ")"
31 WHITESPACE@[46; 47) " " 32 WHITESPACE@[46; 47) " "
32 BLOCK@[47; 49) 33 BLOCK_EXPR@[47; 49)
33 L_CURLY@[47; 48) "{" 34 BLOCK@[47; 49)
34 R_CURLY@[48; 49) "}" 35 L_CURLY@[47; 48) "{"
36 R_CURLY@[48; 49) "}"
35 WHITESPACE@[49; 50) "\n" 37 WHITESPACE@[49; 50) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.txt b/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.txt
index 50b4ab2e7..4a714ad6b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.txt
@@ -8,29 +8,30 @@ SOURCE_FILE@[0; 33)
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; 32) 11 BLOCK_EXPR@[10; 32)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 32)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 LET_STMT@[16; 30) 14 WHITESPACE@[11; 16) "\n "
15 LET_KW@[16; 19) "let" 15 LET_STMT@[16; 30)
16 WHITESPACE@[19; 20) " " 16 LET_KW@[16; 19) "let"
17 MACRO_CALL@[20; 25) 17 WHITESPACE@[19; 20) " "
18 PATH_PAT@[20; 21) 18 MACRO_CALL@[20; 25)
19 PATH@[20; 21) 19 PATH_PAT@[20; 21)
20 PATH_SEGMENT@[20; 21) 20 PATH@[20; 21)
21 NAME_REF@[20; 21) 21 PATH_SEGMENT@[20; 21)
22 IDENT@[20; 21) "m" 22 NAME_REF@[20; 21)
23 EXCL@[21; 22) "!" 23 IDENT@[20; 21) "m"
24 TOKEN_TREE@[22; 25) 24 EXCL@[21; 22) "!"
25 L_PAREN@[22; 23) "(" 25 TOKEN_TREE@[22; 25)
26 IDENT@[23; 24) "x" 26 L_PAREN@[22; 23) "("
27 R_PAREN@[24; 25) ")" 27 IDENT@[23; 24) "x"
28 WHITESPACE@[25; 26) " " 28 R_PAREN@[24; 25) ")"
29 EQ@[26; 27) "=" 29 WHITESPACE@[25; 26) " "
30 WHITESPACE@[27; 28) " " 30 EQ@[26; 27) "="
31 LITERAL@[28; 29) 31 WHITESPACE@[27; 28) " "
32 INT_NUMBER@[28; 29) "0" 32 LITERAL@[28; 29)
33 SEMI@[29; 30) ";" 33 INT_NUMBER@[28; 29) "0"
34 WHITESPACE@[30; 31) "\n" 34 SEMI@[29; 30) ";"
35 R_CURLY@[31; 32) "}" 35 WHITESPACE@[30; 31) "\n"
36 R_CURLY@[31; 32) "}"
36 WHITESPACE@[32; 33) "\n" 37 WHITESPACE@[32; 33) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.txt b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.txt
index 82c1eb009..97166cfd5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.txt
@@ -8,94 +8,95 @@ SOURCE_FILE@[0; 110)
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; 109) 11 BLOCK_EXPR@[9; 109)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 109)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 21) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 21)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 BIND_PAT@[19; 20) 17 WHITESPACE@[18; 19) " "
18 NAME@[19; 20) 18 BIND_PAT@[19; 20)
19 IDENT@[19; 20) "a" 19 NAME@[19; 20)
20 SEMI@[20; 21) ";" 20 IDENT@[19; 20) "a"
21 WHITESPACE@[21; 26) "\n " 21 SEMI@[20; 21) ";"
22 LET_STMT@[26; 37) 22 WHITESPACE@[21; 26) "\n "
23 LET_KW@[26; 29) "let" 23 LET_STMT@[26; 37)
24 WHITESPACE@[29; 30) " " 24 LET_KW@[26; 29) "let"
25 BIND_PAT@[30; 31) 25 WHITESPACE@[29; 30) " "
26 NAME@[30; 31) 26 BIND_PAT@[30; 31)
27 IDENT@[30; 31) "b" 27 NAME@[30; 31)
28 COLON@[31; 32) ":" 28 IDENT@[30; 31) "b"
29 WHITESPACE@[32; 33) " " 29 COLON@[31; 32) ":"
30 PATH_TYPE@[33; 36) 30 WHITESPACE@[32; 33) " "
31 PATH@[33; 36) 31 PATH_TYPE@[33; 36)
32 PATH_SEGMENT@[33; 36) 32 PATH@[33; 36)
33 NAME_REF@[33; 36) 33 PATH_SEGMENT@[33; 36)
34 IDENT@[33; 36) "i32" 34 NAME_REF@[33; 36)
35 SEMI@[36; 37) ";" 35 IDENT@[33; 36) "i32"
36 WHITESPACE@[37; 42) "\n " 36 SEMI@[36; 37) ";"
37 LET_STMT@[42; 53) 37 WHITESPACE@[37; 42) "\n "
38 LET_KW@[42; 45) "let" 38 LET_STMT@[42; 53)
39 WHITESPACE@[45; 46) " " 39 LET_KW@[42; 45) "let"
40 BIND_PAT@[46; 47) 40 WHITESPACE@[45; 46) " "
41 NAME@[46; 47) 41 BIND_PAT@[46; 47)
42 IDENT@[46; 47) "c" 42 NAME@[46; 47)
43 WHITESPACE@[47; 48) " " 43 IDENT@[46; 47) "c"
44 EQ@[48; 49) "=" 44 WHITESPACE@[47; 48) " "
45 WHITESPACE@[49; 50) " " 45 EQ@[48; 49) "="
46 LITERAL@[50; 52) 46 WHITESPACE@[49; 50) " "
47 INT_NUMBER@[50; 52) "92" 47 LITERAL@[50; 52)
48 SEMI@[52; 53) ";" 48 INT_NUMBER@[50; 52) "92"
49 WHITESPACE@[53; 58) "\n " 49 SEMI@[52; 53) ";"
50 LET_STMT@[58; 74) 50 WHITESPACE@[53; 58) "\n "
51 LET_KW@[58; 61) "let" 51 LET_STMT@[58; 74)
52 WHITESPACE@[61; 62) " " 52 LET_KW@[58; 61) "let"
53 BIND_PAT@[62; 63) 53 WHITESPACE@[61; 62) " "
54 NAME@[62; 63) 54 BIND_PAT@[62; 63)
55 IDENT@[62; 63) "d" 55 NAME@[62; 63)
56 COLON@[63; 64) ":" 56 IDENT@[62; 63) "d"
57 WHITESPACE@[64; 65) " " 57 COLON@[63; 64) ":"
58 PATH_TYPE@[65; 68) 58 WHITESPACE@[64; 65) " "
59 PATH@[65; 68) 59 PATH_TYPE@[65; 68)
60 PATH_SEGMENT@[65; 68) 60 PATH@[65; 68)
61 NAME_REF@[65; 68) 61 PATH_SEGMENT@[65; 68)
62 IDENT@[65; 68) "i32" 62 NAME_REF@[65; 68)
63 WHITESPACE@[68; 69) " " 63 IDENT@[65; 68) "i32"
64 EQ@[69; 70) "=" 64 WHITESPACE@[68; 69) " "
65 WHITESPACE@[70; 71) " " 65 EQ@[69; 70) "="
66 LITERAL@[71; 73) 66 WHITESPACE@[70; 71) " "
67 INT_NUMBER@[71; 73) "92" 67 LITERAL@[71; 73)
68 SEMI@[73; 74) ";" 68 INT_NUMBER@[71; 73) "92"
69 WHITESPACE@[74; 79) "\n " 69 SEMI@[73; 74) ";"
70 LET_STMT@[79; 88) 70 WHITESPACE@[74; 79) "\n "
71 LET_KW@[79; 82) "let" 71 LET_STMT@[79; 88)
72 WHITESPACE@[82; 83) " " 72 LET_KW@[79; 82) "let"
73 BIND_PAT@[83; 84) 73 WHITESPACE@[82; 83) " "
74 NAME@[83; 84) 74 BIND_PAT@[83; 84)
75 IDENT@[83; 84) "e" 75 NAME@[83; 84)
76 COLON@[84; 85) ":" 76 IDENT@[83; 84) "e"
77 WHITESPACE@[85; 86) " " 77 COLON@[84; 85) ":"
78 NEVER_TYPE@[86; 87) 78 WHITESPACE@[85; 86) " "
79 EXCL@[86; 87) "!" 79 NEVER_TYPE@[86; 87)
80 SEMI@[87; 88) ";" 80 EXCL@[86; 87) "!"
81 WHITESPACE@[88; 93) "\n " 81 SEMI@[87; 88) ";"
82 LET_STMT@[93; 107) 82 WHITESPACE@[88; 93) "\n "
83 LET_KW@[93; 96) "let" 83 LET_STMT@[93; 107)
84 WHITESPACE@[96; 97) " " 84 LET_KW@[93; 96) "let"
85 PLACEHOLDER_PAT@[97; 98) 85 WHITESPACE@[96; 97) " "
86 UNDERSCORE@[97; 98) "_" 86 PLACEHOLDER_PAT@[97; 98)
87 COLON@[98; 99) ":" 87 UNDERSCORE@[97; 98) "_"
88 WHITESPACE@[99; 100) " " 88 COLON@[98; 99) ":"
89 NEVER_TYPE@[100; 101) 89 WHITESPACE@[99; 100) " "
90 EXCL@[100; 101) "!" 90 NEVER_TYPE@[100; 101)
91 WHITESPACE@[101; 102) " " 91 EXCL@[100; 101) "!"
92 EQ@[102; 103) "=" 92 WHITESPACE@[101; 102) " "
93 WHITESPACE@[103; 104) " " 93 EQ@[102; 103) "="
94 BLOCK_EXPR@[104; 106) 94 WHITESPACE@[103; 104) " "
95 BLOCK@[104; 106) 95 BLOCK_EXPR@[104; 106)
96 L_CURLY@[104; 105) "{" 96 BLOCK@[104; 106)
97 R_CURLY@[105; 106) "}" 97 L_CURLY@[104; 105) "{"
98 SEMI@[106; 107) ";" 98 R_CURLY@[105; 106) "}"
99 WHITESPACE@[107; 108) "\n" 99 SEMI@[106; 107) ";"
100 R_CURLY@[108; 109) "}" 100 WHITESPACE@[107; 108) "\n"
101 R_CURLY@[108; 109) "}"
101 WHITESPACE@[109; 110) "\n" 102 WHITESPACE@[109; 110) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.txt
index 53f49b9b5..d6df1aba2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.txt
@@ -8,24 +8,26 @@ SOURCE_FILE@[0; 33)
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; 32) 11 BLOCK_EXPR@[9; 32)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 32)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 30) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 30)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 PLACEHOLDER_PAT@[19; 20) 17 WHITESPACE@[18; 19) " "
18 UNDERSCORE@[19; 20) "_" 18 PLACEHOLDER_PAT@[19; 20)
19 WHITESPACE@[20; 21) " " 19 UNDERSCORE@[19; 20) "_"
20 EQ@[21; 22) "=" 20 WHITESPACE@[20; 21) " "
21 WHITESPACE@[22; 23) " " 21 EQ@[21; 22) "="
22 TRY_EXPR@[23; 29) 22 WHITESPACE@[22; 23) " "
23 TRY_KW@[23; 26) "try" 23 TRY_EXPR@[23; 29)
24 WHITESPACE@[26; 27) " " 24 TRY_KW@[23; 26) "try"
25 BLOCK@[27; 29) 25 WHITESPACE@[26; 27) " "
26 L_CURLY@[27; 28) "{" 26 BLOCK_EXPR@[27; 29)
27 R_CURLY@[28; 29) "}" 27 BLOCK@[27; 29)
28 SEMI@[29; 30) ";" 28 L_CURLY@[27; 28) "{"
29 WHITESPACE@[30; 31) "\n" 29 R_CURLY@[28; 29) "}"
30 R_CURLY@[31; 32) "}" 30 SEMI@[29; 30) ";"
31 WHITESPACE@[30; 31) "\n"
32 R_CURLY@[31; 32) "}"
31 WHITESPACE@[32; 33) "\n" 33 WHITESPACE@[32; 33) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.txt
index 3d22002a1..12294210e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.txt
@@ -8,82 +8,83 @@ SOURCE_FILE@[0; 106)
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; 105) 11 BLOCK_EXPR@[9; 105)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 105)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[15; 32) 14 WHITESPACE@[10; 15) "\n "
15 LET_KW@[15; 18) "let" 15 LET_STMT@[15; 32)
16 WHITESPACE@[18; 19) " " 16 LET_KW@[15; 18) "let"
17 BIND_PAT@[19; 20) 17 WHITESPACE@[18; 19) " "
18 NAME@[19; 20) 18 BIND_PAT@[19; 20)
19 IDENT@[19; 20) "x" 19 NAME@[19; 20)
20 WHITESPACE@[20; 21) " " 20 IDENT@[19; 20) "x"
21 EQ@[21; 22) "=" 21 WHITESPACE@[20; 21) " "
22 WHITESPACE@[22; 23) " " 22 EQ@[21; 22) "="
23 BOX_EXPR@[23; 31) 23 WHITESPACE@[22; 23) " "
24 BOX_KW@[23; 26) "box" 24 BOX_EXPR@[23; 31)
25 WHITESPACE@[26; 27) " " 25 BOX_KW@[23; 26) "box"
26 LITERAL@[27; 31) 26 WHITESPACE@[26; 27) " "
27 INT_NUMBER@[27; 31) "1i32" 27 LITERAL@[27; 31)
28 SEMI@[31; 32) ";" 28 INT_NUMBER@[27; 31) "1i32"
29 WHITESPACE@[32; 37) "\n " 29 SEMI@[31; 32) ";"
30 LET_STMT@[37; 66) 30 WHITESPACE@[32; 37) "\n "
31 LET_KW@[37; 40) "let" 31 LET_STMT@[37; 66)
32 WHITESPACE@[40; 41) " " 32 LET_KW@[37; 40) "let"
33 BIND_PAT@[41; 42) 33 WHITESPACE@[40; 41) " "
34 NAME@[41; 42) 34 BIND_PAT@[41; 42)
35 IDENT@[41; 42) "y" 35 NAME@[41; 42)
36 WHITESPACE@[42; 43) " " 36 IDENT@[41; 42) "y"
37 EQ@[43; 44) "=" 37 WHITESPACE@[42; 43) " "
38 WHITESPACE@[44; 45) " " 38 EQ@[43; 44) "="
39 TUPLE_EXPR@[45; 65) 39 WHITESPACE@[44; 45) " "
40 L_PAREN@[45; 46) "(" 40 TUPLE_EXPR@[45; 65)
41 BOX_EXPR@[46; 54) 41 L_PAREN@[45; 46) "("
42 BOX_KW@[46; 49) "box" 42 BOX_EXPR@[46; 54)
43 WHITESPACE@[49; 50) " " 43 BOX_KW@[46; 49) "box"
44 LITERAL@[50; 54) 44 WHITESPACE@[49; 50) " "
45 INT_NUMBER@[50; 54) "1i32" 45 LITERAL@[50; 54)
46 COMMA@[54; 55) "," 46 INT_NUMBER@[50; 54) "1i32"
47 WHITESPACE@[55; 56) " " 47 COMMA@[54; 55) ","
48 BOX_EXPR@[56; 64) 48 WHITESPACE@[55; 56) " "
49 BOX_KW@[56; 59) "box" 49 BOX_EXPR@[56; 64)
50 WHITESPACE@[59; 60) " " 50 BOX_KW@[56; 59) "box"
51 LITERAL@[60; 64) 51 WHITESPACE@[59; 60) " "
52 INT_NUMBER@[60; 64) "2i32" 52 LITERAL@[60; 64)
53 R_PAREN@[64; 65) ")" 53 INT_NUMBER@[60; 64) "2i32"
54 SEMI@[65; 66) ";" 54 R_PAREN@[64; 65) ")"
55 WHITESPACE@[66; 71) "\n " 55 SEMI@[65; 66) ";"
56 LET_STMT@[71; 103) 56 WHITESPACE@[66; 71) "\n "
57 LET_KW@[71; 74) "let" 57 LET_STMT@[71; 103)
58 WHITESPACE@[74; 75) " " 58 LET_KW@[71; 74) "let"
59 BIND_PAT@[75; 76) 59 WHITESPACE@[74; 75) " "
60 NAME@[75; 76) 60 BIND_PAT@[75; 76)
61 IDENT@[75; 76) "z" 61 NAME@[75; 76)
62 WHITESPACE@[76; 77) " " 62 IDENT@[75; 76) "z"
63 EQ@[77; 78) "=" 63 WHITESPACE@[76; 77) " "
64 WHITESPACE@[78; 79) " " 64 EQ@[77; 78) "="
65 CALL_EXPR@[79; 102) 65 WHITESPACE@[78; 79) " "
66 PATH_EXPR@[79; 82) 66 CALL_EXPR@[79; 102)
67 PATH@[79; 82) 67 PATH_EXPR@[79; 82)
68 PATH_SEGMENT@[79; 82) 68 PATH@[79; 82)
69 NAME_REF@[79; 82) 69 PATH_SEGMENT@[79; 82)
70 IDENT@[79; 82) "Foo" 70 NAME_REF@[79; 82)
71 ARG_LIST@[82; 102) 71 IDENT@[79; 82) "Foo"
72 L_PAREN@[82; 83) "(" 72 ARG_LIST@[82; 102)
73 BOX_EXPR@[83; 91) 73 L_PAREN@[82; 83) "("
74 BOX_KW@[83; 86) "box" 74 BOX_EXPR@[83; 91)
75 WHITESPACE@[86; 87) " " 75 BOX_KW@[83; 86) "box"
76 LITERAL@[87; 91) 76 WHITESPACE@[86; 87) " "
77 INT_NUMBER@[87; 91) "1i32" 77 LITERAL@[87; 91)
78 COMMA@[91; 92) "," 78 INT_NUMBER@[87; 91) "1i32"
79 WHITESPACE@[92; 93) " " 79 COMMA@[91; 92) ","
80 BOX_EXPR@[93; 101) 80 WHITESPACE@[92; 93) " "
81 BOX_KW@[93; 96) "box" 81 BOX_EXPR@[93; 101)
82 WHITESPACE@[96; 97) " " 82 BOX_KW@[93; 96) "box"
83 LITERAL@[97; 101) 83 WHITESPACE@[96; 97) " "
84 INT_NUMBER@[97; 101) "2i32" 84 LITERAL@[97; 101)
85 R_PAREN@[101; 102) ")" 85 INT_NUMBER@[97; 101) "2i32"
86 SEMI@[102; 103) ";" 86 R_PAREN@[101; 102) ")"
87 WHITESPACE@[103; 104) "\n" 87 SEMI@[102; 103) ";"
88 R_CURLY@[104; 105) "}" 88 WHITESPACE@[103; 104) "\n"
89 R_CURLY@[104; 105) "}"
89 WHITESPACE@[105; 106) "\n" 90 WHITESPACE@[105; 106) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.txt b/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.txt
index 384b203d3..022070b0c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.txt
@@ -47,9 +47,10 @@ SOURCE_FILE@[0; 69)
47 L_PAREN@[61; 62) "(" 47 L_PAREN@[61; 62) "("
48 R_PAREN@[62; 63) ")" 48 R_PAREN@[62; 63) ")"
49 WHITESPACE@[63; 64) " " 49 WHITESPACE@[63; 64) " "
50 BLOCK@[64; 66) 50 BLOCK_EXPR@[64; 66)
51 L_CURLY@[64; 65) "{" 51 BLOCK@[64; 66)
52 R_CURLY@[65; 66) "}" 52 L_CURLY@[64; 65) "{"
53 R_CURLY@[65; 66) "}"
53 WHITESPACE@[66; 67) "\n" 54 WHITESPACE@[66; 67) "\n"
54 R_CURLY@[67; 68) "}" 55 R_CURLY@[67; 68) "}"
55 WHITESPACE@[68; 69) "\n" 56 WHITESPACE@[68; 69) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.txt b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.txt
index 64cbf4632..14655d332 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.txt
@@ -8,55 +8,57 @@ SOURCE_FILE@[0; 111)
8 L_PAREN@[18; 19) "(" 8 L_PAREN@[18; 19) "("
9 R_PAREN@[19; 20) ")" 9 R_PAREN@[19; 20) ")"
10 WHITESPACE@[20; 21) " " 10 WHITESPACE@[20; 21) " "
11 BLOCK@[21; 110) 11 BLOCK_EXPR@[21; 110)
12 L_CURLY@[21; 22) "{" 12 BLOCK@[21; 110)
13 WHITESPACE@[22; 27) "\n " 13 L_CURLY@[21; 22) "{"
14 ENUM_DEF@[27; 75) 14 WHITESPACE@[22; 27) "\n "
15 ENUM_KW@[27; 31) "enum" 15 ENUM_DEF@[27; 75)
16 WHITESPACE@[31; 32) " " 16 ENUM_KW@[27; 31) "enum"
17 NAME@[32; 41) 17 WHITESPACE@[31; 32) " "
18 IDENT@[32; 41) "LocalEnum" 18 NAME@[32; 41)
19 WHITESPACE@[41; 42) " " 19 IDENT@[32; 41) "LocalEnum"
20 ENUM_VARIANT_LIST@[42; 75) 20 WHITESPACE@[41; 42) " "
21 L_CURLY@[42; 43) "{" 21 ENUM_VARIANT_LIST@[42; 75)
22 WHITESPACE@[43; 52) "\n " 22 L_CURLY@[42; 43) "{"
23 ENUM_VARIANT@[52; 55) 23 WHITESPACE@[43; 52) "\n "
24 NAME@[52; 55) 24 ENUM_VARIANT@[52; 55)
25 IDENT@[52; 55) "One" 25 NAME@[52; 55)
26 COMMA@[55; 56) "," 26 IDENT@[52; 55) "One"
27 WHITESPACE@[56; 65) "\n " 27 COMMA@[55; 56) ","
28 ENUM_VARIANT@[65; 68) 28 WHITESPACE@[56; 65) "\n "
29 NAME@[65; 68) 29 ENUM_VARIANT@[65; 68)
30 IDENT@[65; 68) "Two" 30 NAME@[65; 68)
31 COMMA@[68; 69) "," 31 IDENT@[65; 68) "Two"
32 WHITESPACE@[69; 74) "\n " 32 COMMA@[68; 69) ","
33 R_CURLY@[74; 75) "}" 33 WHITESPACE@[69; 74) "\n "
34 SEMI@[75; 76) ";" 34 R_CURLY@[74; 75) "}"
35 WHITESPACE@[76; 81) "\n " 35 SEMI@[75; 76) ";"
36 FN_DEF@[81; 90) 36 WHITESPACE@[76; 81) "\n "
37 FN_KW@[81; 83) "fn" 37 FN_DEF@[81; 90)
38 WHITESPACE@[83; 84) " " 38 FN_KW@[81; 83) "fn"
39 NAME@[84; 85) 39 WHITESPACE@[83; 84) " "
40 IDENT@[84; 85) "f" 40 NAME@[84; 85)
41 PARAM_LIST@[85; 87) 41 IDENT@[84; 85) "f"
42 L_PAREN@[85; 86) "(" 42 PARAM_LIST@[85; 87)
43 R_PAREN@[86; 87) ")" 43 L_PAREN@[85; 86) "("
44 WHITESPACE@[87; 88) " " 44 R_PAREN@[86; 87) ")"
45 BLOCK@[88; 90) 45 WHITESPACE@[87; 88) " "
46 L_CURLY@[88; 89) "{" 46 BLOCK_EXPR@[88; 90)
47 R_CURLY@[89; 90) "}" 47 BLOCK@[88; 90)
48 SEMI@[90; 91) ";" 48 L_CURLY@[88; 89) "{"
49 WHITESPACE@[91; 96) "\n " 49 R_CURLY@[89; 90) "}"
50 STRUCT_DEF@[96; 107) 50 SEMI@[90; 91) ";"
51 STRUCT_KW@[96; 102) "struct" 51 WHITESPACE@[91; 96) "\n "
52 WHITESPACE@[102; 103) " " 52 STRUCT_DEF@[96; 107)
53 NAME@[103; 104) 53 STRUCT_KW@[96; 102) "struct"
54 IDENT@[103; 104) "S" 54 WHITESPACE@[102; 103) " "
55 WHITESPACE@[104; 105) " " 55 NAME@[103; 104)
56 RECORD_FIELD_DEF_LIST@[105; 107) 56 IDENT@[103; 104) "S"
57 L_CURLY@[105; 106) "{" 57 WHITESPACE@[104; 105) " "
58 R_CURLY@[106; 107) "}" 58 RECORD_FIELD_DEF_LIST@[105; 107)
59 SEMI@[107; 108) ";" 59 L_CURLY@[105; 106) "{"
60 WHITESPACE@[108; 109) "\n" 60 R_CURLY@[106; 107) "}"
61 R_CURLY@[109; 110) "}" 61 SEMI@[107; 108) ";"
62 WHITESPACE@[108; 109) "\n"
63 R_CURLY@[109; 110) "}"
62 WHITESPACE@[110; 111) "\n" 64 WHITESPACE@[110; 111) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.txt
index 7adb662de..a6ac0dbd8 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.txt
@@ -8,62 +8,63 @@ SOURCE_FILE@[0; 67)
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; 66) 11 BLOCK_EXPR@[9; 66)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 66)
13 WHITESPACE@[10; 15) "\n " 13 L_CURLY@[9; 10) "{"
14 EXPR_STMT@[15; 23) 14 WHITESPACE@[10; 15) "\n "
15 AWAIT_EXPR@[15; 22) 15 EXPR_STMT@[15; 23)
16 PATH_EXPR@[15; 16) 16 AWAIT_EXPR@[15; 22)
17 PATH@[15; 16) 17 PATH_EXPR@[15; 16)
18 PATH_SEGMENT@[15; 16) 18 PATH@[15; 16)
19 NAME_REF@[15; 16) 19 PATH_SEGMENT@[15; 16)
20 IDENT@[15; 16) "x" 20 NAME_REF@[15; 16)
21 DOT@[16; 17) "." 21 IDENT@[15; 16) "x"
22 AWAIT_KW@[17; 22) "await" 22 DOT@[16; 17) "."
23 SEMI@[22; 23) ";" 23 AWAIT_KW@[17; 22) "await"
24 WHITESPACE@[23; 28) "\n " 24 SEMI@[22; 23) ";"
25 EXPR_STMT@[28; 38) 25 WHITESPACE@[23; 28) "\n "
26 AWAIT_EXPR@[28; 37) 26 EXPR_STMT@[28; 38)
27 FIELD_EXPR@[28; 31) 27 AWAIT_EXPR@[28; 37)
28 PATH_EXPR@[28; 29) 28 FIELD_EXPR@[28; 31)
29 PATH@[28; 29) 29 PATH_EXPR@[28; 29)
30 PATH_SEGMENT@[28; 29) 30 PATH@[28; 29)
31 NAME_REF@[28; 29) 31 PATH_SEGMENT@[28; 29)
32 IDENT@[28; 29) "x" 32 NAME_REF@[28; 29)
33 DOT@[29; 30) "." 33 IDENT@[28; 29) "x"
34 NAME_REF@[30; 31) 34 DOT@[29; 30) "."
35 INT_NUMBER@[30; 31) "0" 35 NAME_REF@[30; 31)
36 DOT@[31; 32) "." 36 INT_NUMBER@[30; 31) "0"
37 AWAIT_KW@[32; 37) "await" 37 DOT@[31; 32) "."
38 SEMI@[37; 38) ";" 38 AWAIT_KW@[32; 37) "await"
39 WHITESPACE@[38; 43) "\n " 39 SEMI@[37; 38) ";"
40 EXPR_STMT@[43; 64) 40 WHITESPACE@[38; 43) "\n "
41 METHOD_CALL_EXPR@[43; 63) 41 EXPR_STMT@[43; 64)
42 TRY_EXPR@[43; 55) 42 METHOD_CALL_EXPR@[43; 63)
43 AWAIT_EXPR@[43; 54) 43 TRY_EXPR@[43; 55)
44 CALL_EXPR@[43; 48) 44 AWAIT_EXPR@[43; 54)
45 FIELD_EXPR@[43; 46) 45 CALL_EXPR@[43; 48)
46 PATH_EXPR@[43; 44) 46 FIELD_EXPR@[43; 46)
47 PATH@[43; 44) 47 PATH_EXPR@[43; 44)
48 PATH_SEGMENT@[43; 44) 48 PATH@[43; 44)
49 NAME_REF@[43; 44) 49 PATH_SEGMENT@[43; 44)
50 IDENT@[43; 44) "x" 50 NAME_REF@[43; 44)
51 DOT@[44; 45) "." 51 IDENT@[43; 44) "x"
52 NAME_REF@[45; 46) 52 DOT@[44; 45) "."
53 INT_NUMBER@[45; 46) "0" 53 NAME_REF@[45; 46)
54 ARG_LIST@[46; 48) 54 INT_NUMBER@[45; 46) "0"
55 L_PAREN@[46; 47) "(" 55 ARG_LIST@[46; 48)
56 R_PAREN@[47; 48) ")" 56 L_PAREN@[46; 47) "("
57 DOT@[48; 49) "." 57 R_PAREN@[47; 48) ")"
58 AWAIT_KW@[49; 54) "await" 58 DOT@[48; 49) "."
59 QUESTION@[54; 55) "?" 59 AWAIT_KW@[49; 54) "await"
60 DOT@[55; 56) "." 60 QUESTION@[54; 55) "?"
61 NAME_REF@[56; 61) 61 DOT@[55; 56) "."
62 IDENT@[56; 61) "hello" 62 NAME_REF@[56; 61)
63 ARG_LIST@[61; 63) 63 IDENT@[56; 61) "hello"
64 L_PAREN@[61; 62) "(" 64 ARG_LIST@[61; 63)
65 R_PAREN@[62; 63) ")" 65 L_PAREN@[61; 62) "("
66 SEMI@[63; 64) ";" 66 R_PAREN@[62; 63) ")"
67 WHITESPACE@[64; 65) "\n" 67 SEMI@[63; 64) ";"
68 R_CURLY@[65; 66) "}" 68 WHITESPACE@[64; 65) "\n"
69 R_CURLY@[65; 66) "}"
69 WHITESPACE@[66; 67) "\n" 70 WHITESPACE@[66; 67) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.txt b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.txt
index 33e75510d..d18096b47 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.txt
@@ -49,7 +49,8 @@ SOURCE_FILE@[0; 59)
49 IDENT@[53; 54) "T" 49 IDENT@[53; 54) "T"
50 R_PAREN@[54; 55) ")" 50 R_PAREN@[54; 55) ")"
51 WHITESPACE@[55; 56) " " 51 WHITESPACE@[55; 56) " "
52 BLOCK@[56; 58) 52 BLOCK_EXPR@[56; 58)
53 L_CURLY@[56; 57) "{" 53 BLOCK@[56; 58)
54 R_CURLY@[57; 58) "}" 54 L_CURLY@[56; 57) "{"
55 R_CURLY@[57; 58) "}"
55 WHITESPACE@[58; 59) "\n" 56 WHITESPACE@[58; 59) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.txt b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.txt
index c4db9da40..df4c04149 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.txt
@@ -8,58 +8,59 @@ SOURCE_FILE@[0; 52)
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; 51) 11 BLOCK_EXPR@[9; 51)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 51)
13 WHITESPACE@[10; 14) "\n " 13 L_CURLY@[9; 10) "{"
14 LET_STMT@[14; 34) 14 WHITESPACE@[10; 14) "\n "
15 LET_KW@[14; 17) "let" 15 LET_STMT@[14; 34)
16 WHITESPACE@[17; 18) " " 16 LET_KW@[14; 17) "let"
17 BIND_PAT@[18; 23) 17 WHITESPACE@[17; 18) " "
18 MUT_KW@[18; 21) "mut" 18 BIND_PAT@[18; 23)
19 WHITESPACE@[21; 22) " " 19 MUT_KW@[18; 21) "mut"
20 NAME@[22; 23) 20 WHITESPACE@[21; 22) " "
21 IDENT@[22; 23) "p" 21 NAME@[22; 23)
22 WHITESPACE@[23; 24) " " 22 IDENT@[22; 23) "p"
23 EQ@[24; 25) "=" 23 WHITESPACE@[23; 24) " "
24 WHITESPACE@[25; 26) " " 24 EQ@[24; 25) "="
25 RECORD_LIT@[26; 33) 25 WHITESPACE@[25; 26) " "
26 PATH@[26; 27) 26 RECORD_LIT@[26; 33)
27 PATH_SEGMENT@[26; 27) 27 PATH@[26; 27)
28 NAME_REF@[26; 27) 28 PATH_SEGMENT@[26; 27)
29 IDENT@[26; 27) "F" 29 NAME_REF@[26; 27)
30 RECORD_FIELD_LIST@[27; 33) 30 IDENT@[26; 27) "F"
31 L_CURLY@[27; 28) "{" 31 RECORD_FIELD_LIST@[27; 33)
32 RECORD_FIELD@[28; 32) 32 L_CURLY@[27; 28) "{"
33 NAME_REF@[28; 29) 33 RECORD_FIELD@[28; 32)
34 IDENT@[28; 29) "x" 34 NAME_REF@[28; 29)
35 COLON@[29; 30) ":" 35 IDENT@[28; 29) "x"
36 WHITESPACE@[30; 31) " " 36 COLON@[29; 30) ":"
37 LITERAL@[31; 32) 37 WHITESPACE@[30; 31) " "
38 INT_NUMBER@[31; 32) "5" 38 LITERAL@[31; 32)
39 R_CURLY@[32; 33) "}" 39 INT_NUMBER@[31; 32) "5"
40 SEMI@[33; 34) ";" 40 R_CURLY@[32; 33) "}"
41 WHITESPACE@[34; 38) "\n " 41 SEMI@[33; 34) ";"
42 EXPR_STMT@[38; 49) 42 WHITESPACE@[34; 38) "\n "
43 BIN_EXPR@[38; 48) 43 EXPR_STMT@[38; 49)
44 FIELD_EXPR@[38; 43) 44 BIN_EXPR@[38; 48)
45 BLOCK_EXPR@[38; 41) 45 FIELD_EXPR@[38; 43)
46 BLOCK@[38; 41) 46 BLOCK_EXPR@[38; 41)
47 L_CURLY@[38; 39) "{" 47 BLOCK@[38; 41)
48 PATH_EXPR@[39; 40) 48 L_CURLY@[38; 39) "{"
49 PATH@[39; 40) 49 PATH_EXPR@[39; 40)
50 PATH_SEGMENT@[39; 40) 50 PATH@[39; 40)
51 NAME_REF@[39; 40) 51 PATH_SEGMENT@[39; 40)
52 IDENT@[39; 40) "p" 52 NAME_REF@[39; 40)
53 R_CURLY@[40; 41) "}" 53 IDENT@[39; 40) "p"
54 DOT@[41; 42) "." 54 R_CURLY@[40; 41) "}"
55 NAME_REF@[42; 43) 55 DOT@[41; 42) "."
56 IDENT@[42; 43) "x" 56 NAME_REF@[42; 43)
57 WHITESPACE@[43; 44) " " 57 IDENT@[42; 43) "x"
58 EQ@[44; 45) "=" 58 WHITESPACE@[43; 44) " "
59 WHITESPACE@[45; 46) " " 59 EQ@[44; 45) "="
60 LITERAL@[46; 48) 60 WHITESPACE@[45; 46) " "
61 INT_NUMBER@[46; 48) "10" 61 LITERAL@[46; 48)
62 SEMI@[48; 49) ";" 62 INT_NUMBER@[46; 48) "10"
63 WHITESPACE@[49; 50) "\n" 63 SEMI@[48; 49) ";"
64 R_CURLY@[50; 51) "}" 64 WHITESPACE@[49; 50) "\n"
65 R_CURLY@[50; 51) "}"
65 WHITESPACE@[51; 52) "\n" 66 WHITESPACE@[51; 52) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.txt b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.txt
index 49b14e632..708fa4773 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.txt
@@ -17,7 +17,8 @@ SOURCE_FILE@[0; 26)
17 SELF_KW@[17; 21) "self" 17 SELF_KW@[17; 21) "self"
18 R_PAREN@[21; 22) ")" 18 R_PAREN@[21; 22) ")"
19 WHITESPACE@[22; 23) " " 19 WHITESPACE@[22; 23) " "
20 BLOCK@[23; 25) 20 BLOCK_EXPR@[23; 25)
21 L_CURLY@[23; 24) "{" 21 BLOCK@[23; 25)
22 R_CURLY@[24; 25) "}" 22 L_CURLY@[23; 24) "{"
23 R_CURLY@[24; 25) "}"
23 WHITESPACE@[25; 26) "\n" 24 WHITESPACE@[25; 26) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.txt b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.txt
index 91c5e5f9a..9c0a0d20b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.txt
@@ -26,7 +26,8 @@ SOURCE_FILE@[0; 28)
26 IDENT@[19; 23) "Type" 26 IDENT@[19; 23) "Type"
27 R_PAREN@[23; 24) ")" 27 R_PAREN@[23; 24) ")"
28 WHITESPACE@[24; 25) " " 28 WHITESPACE@[24; 25) " "
29 BLOCK@[25; 27) 29 BLOCK_EXPR@[25; 27)
30 L_CURLY@[25; 26) "{" 30 BLOCK@[25; 27)
31 R_CURLY@[26; 27) "}" 31 L_CURLY@[25; 26) "{"
32 R_CURLY@[26; 27) "}"
32 WHITESPACE@[27; 28) "\n" 33 WHITESPACE@[27; 28) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.txt b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.txt
index 9e5836233..eec1cba1e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.txt
@@ -8,33 +8,35 @@ SOURCE_FILE@[0; 51)
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; 50) 11 BLOCK_EXPR@[9; 50)
12 L_CURLY@[9; 10) "{" 12 BLOCK@[9; 50)
13 WHITESPACE@[10; 14) "\n " 13 L_CURLY@[9; 10) "{"
14 FOR_EXPR@[14; 48) 14 WHITESPACE@[10; 14) "\n "
15 FOR_KW@[14; 17) "for" 15 FOR_EXPR@[14; 48)
16 WHITESPACE@[17; 18) " " 16 FOR_KW@[14; 17) "for"
17 BIND_PAT@[18; 19) 17 WHITESPACE@[17; 18) " "
18 NAME@[18; 19) 18 BIND_PAT@[18; 19)
19 IDENT@[18; 19) "x" 19 NAME@[18; 19)
20 WHITESPACE@[19; 20) " " 20 IDENT@[18; 19) "x"
21 IN_KW@[20; 22) "in" 21 WHITESPACE@[19; 20) " "
22 WHITESPACE@[22; 23) " " 22 IN_KW@[20; 22) "in"
23 RANGE_EXPR@[23; 27) 23 WHITESPACE@[22; 23) " "
24 LITERAL@[23; 24) 24 RANGE_EXPR@[23; 27)
25 INT_NUMBER@[23; 24) "0" 25 LITERAL@[23; 24)
26 WHITESPACE@[24; 25) " " 26 INT_NUMBER@[23; 24) "0"
27 DOTDOT@[25; 27) ".." 27 WHITESPACE@[24; 25) " "
28 WHITESPACE@[27; 28) " " 28 DOTDOT@[25; 27) ".."
29 BLOCK@[28; 48) 29 WHITESPACE@[27; 28) " "
30 L_CURLY@[28; 29) "{" 30 BLOCK_EXPR@[28; 48)
31 WHITESPACE@[29; 37) "\n " 31 BLOCK@[28; 48)
32 EXPR_STMT@[37; 43) 32 L_CURLY@[28; 29) "{"
33 BREAK_EXPR@[37; 42) 33 WHITESPACE@[29; 37) "\n "
34 BREAK_KW@[37; 42) "break" 34 EXPR_STMT@[37; 43)
35 SEMI@[42; 43) ";" 35 BREAK_EXPR@[37; 42)
36 WHITESPACE@[43; 47) "\n " 36 BREAK_KW@[37; 42) "break"
37 R_CURLY@[47; 48) "}" 37 SEMI@[42; 43) ";"
38 WHITESPACE@[48; 49) "\n" 38 WHITESPACE@[43; 47) "\n "
39 R_CURLY@[49; 50) "}" 39 R_CURLY@[47; 48) "}"
40 WHITESPACE@[48; 49) "\n"
41 R_CURLY@[49; 50) "}"
40 WHITESPACE@[50; 51) "\n" 42 WHITESPACE@[50; 51) "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.txt b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.txt
index f0db58143..4d2048711 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.txt
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.txt
@@ -8,102 +8,103 @@ SOURCE_FILE@[0; 118)
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; 117) 11 BLOCK_EXPR@[10; 117)
12 L_CURLY@[10; 11) "{" 12 BLOCK@[10; 117)
13 WHITESPACE@[11; 16) "\n " 13 L_CURLY@[10; 11) "{"
14 LET_STMT@[16; 31) 14 WHITESPACE@[11; 16) "\n "
15 LET_KW@[16; 19) "let" 15 LET_STMT@[16; 31)
16 WHITESPACE@[19; 20) " " 16 LET_KW@[16; 19) "let"
17 BOX_PAT@[20; 25) 17 WHITESPACE@[19; 20) " "
18 BOX_KW@[20; 23) "box" 18 BOX_PAT@[20; 25)
19 WHITESPACE@[23; 24) " " 19 BOX_KW@[20; 23) "box"
20 BIND_PAT@[24; 25) 20 WHITESPACE@[23; 24) " "
21 NAME@[24; 25) 21 BIND_PAT@[24; 25)
22 IDENT@[24; 25) "i" 22 NAME@[24; 25)
23 WHITESPACE@[25; 26) " " 23 IDENT@[24; 25) "i"
24 EQ@[26; 27) "=" 24 WHITESPACE@[25; 26) " "
25 WHITESPACE@[27; 28) " " 25 EQ@[26; 27) "="
26 TUPLE_EXPR@[28; 30) 26 WHITESPACE@[27; 28) " "
27 L_PAREN@[28; 29) "(" 27 TUPLE_EXPR@[28; 30)
28 R_PAREN@[29; 30) ")" 28 L_PAREN@[28; 29) "("
29 SEMI@[30; 31) ";" 29 R_PAREN@[29; 30) ")"
30 WHITESPACE@[31; 36) "\n " 30 SEMI@[30; 31) ";"
31 LET_STMT@[36; 87) 31 WHITESPACE@[31; 36) "\n "
32 LET_KW@[36; 39) "let" 32 LET_STMT@[36; 87)
33 WHITESPACE@[39; 40) " " 33 LET_KW@[36; 39) "let"
34 BOX_PAT@[40; 81) 34 WHITESPACE@[39; 40) " "
35 BOX_KW@[40; 43) "box" 35 BOX_PAT@[40; 81)
36 WHITESPACE@[43; 44) " " 36 BOX_KW@[40; 43) "box"
37 RECORD_PAT@[44; 81) 37 WHITESPACE@[43; 44) " "
38 PATH@[44; 49) 38 RECORD_PAT@[44; 81)
39 PATH_SEGMENT@[44; 49) 39 PATH@[44; 49)
40 NAME_REF@[44; 49) 40 PATH_SEGMENT@[44; 49)
41 IDENT@[44; 49) "Outer" 41 NAME_REF@[44; 49)
42 WHITESPACE@[49; 50) " " 42 IDENT@[44; 49) "Outer"
43 RECORD_FIELD_PAT_LIST@[50; 81) 43 WHITESPACE@[49; 50) " "
44 L_CURLY@[50; 51) "{" 44 RECORD_FIELD_PAT_LIST@[50; 81)
45 WHITESPACE@[51; 52) " " 45 L_CURLY@[50; 51) "{"
46 BOX_PAT@[52; 57) 46 WHITESPACE@[51; 52) " "
47 BOX_KW@[52; 55) "box" 47 BOX_PAT@[52; 57)
48 WHITESPACE@[55; 56) " " 48 BOX_KW@[52; 55) "box"
49 BIND_PAT@[56; 57) 49 WHITESPACE@[55; 56) " "
50 NAME@[56; 57) 50 BIND_PAT@[56; 57)
51 IDENT@[56; 57) "i" 51 NAME@[56; 57)
52 COMMA@[57; 58) "," 52 IDENT@[56; 57) "i"
53 WHITESPACE@[58; 59) " " 53 COMMA@[57; 58) ","
54 RECORD_FIELD_PAT@[59; 79) 54 WHITESPACE@[58; 59) " "
55 NAME@[59; 60) 55 RECORD_FIELD_PAT@[59; 79)
56 IDENT@[59; 60) "j" 56 NAME@[59; 60)
57 COLON@[60; 61) ":" 57 IDENT@[59; 60) "j"
58 WHITESPACE@[61; 62) " " 58 COLON@[60; 61) ":"
59 BOX_PAT@[62; 79) 59 WHITESPACE@[61; 62) " "
60 BOX_KW@[62; 65) "box" 60 BOX_PAT@[62; 79)
61 WHITESPACE@[65; 66) " " 61 BOX_KW@[62; 65) "box"
62 TUPLE_STRUCT_PAT@[66; 79) 62 WHITESPACE@[65; 66) " "
63 PATH@[66; 71) 63 TUPLE_STRUCT_PAT@[66; 79)
64 PATH_SEGMENT@[66; 71) 64 PATH@[66; 71)
65 NAME_REF@[66; 71) 65 PATH_SEGMENT@[66; 71)
66 IDENT@[66; 71) "Inner" 66 NAME_REF@[66; 71)
67 L_PAREN@[71; 72) "(" 67 IDENT@[66; 71) "Inner"
68 BOX_PAT@[72; 78) 68 L_PAREN@[71; 72) "("
69 BOX_KW@[72; 75) "box" 69 BOX_PAT@[72; 78)
70 WHITESPACE@[75; 76) " " 70 BOX_KW@[72; 75) "box"
71 REF_PAT@[76; 78) 71 WHITESPACE@[75; 76) " "
72 AMP@[76; 77) "&" 72 REF_PAT@[76; 78)
73 BIND_PAT@[77; 78) 73 AMP@[76; 77) "&"
74 NAME@[77; 78) 74 BIND_PAT@[77; 78)
75 IDENT@[77; 78) "x" 75 NAME@[77; 78)
76 R_PAREN@[78; 79) ")" 76 IDENT@[77; 78) "x"
77 WHITESPACE@[79; 80) " " 77 R_PAREN@[78; 79) ")"
78 R_CURLY@[80; 81) "}" 78 WHITESPACE@[79; 80) " "
79 WHITESPACE@[81; 82) " " 79 R_CURLY@[80; 81) "}"
80 EQ@[82; 83) "=" 80 WHITESPACE@[81; 82) " "
81 WHITESPACE@[83; 84) " " 81 EQ@[82; 83) "="
82 TUPLE_EXPR@[84; 86) 82 WHITESPACE@[83; 84) " "
83 L_PAREN@[84; 85) "(" 83 TUPLE_EXPR@[84; 86)
84 R_PAREN@[85; 86) ")" 84 L_PAREN@[84; 85) "("
85 SEMI@[86; 87) ";" 85 R_PAREN@[85; 86) ")"
86 WHITESPACE@[87; 92) "\n " 86 SEMI@[86; 87) ";"
87 LET_STMT@[92; 115) 87 WHITESPACE@[87; 92) "\n "
88 LET_KW@[92; 95) "let" 88 LET_STMT@[92; 115)
89 WHITESPACE@[95; 96) " " 89 LET_KW@[92; 95) "let"
90 BOX_PAT@[96; 109) 90 WHITESPACE@[95; 96) " "
91 BOX_KW@[96; 99) "box" 91 BOX_PAT@[96; 109)
92 WHITESPACE@[99; 100) " " 92 BOX_KW@[96; 99) "box"
93 BIND_PAT@[100; 109) 93 WHITESPACE@[99; 100) " "
94 REF_KW@[100; 103) "ref" 94 BIND_PAT@[100; 109)
95 WHITESPACE@[103; 104) " " 95 REF_KW@[100; 103) "ref"
96 MUT_KW@[104; 107) "mut" 96 WHITESPACE@[103; 104) " "
97 WHITESPACE@[107; 108) " " 97 MUT_KW@[104; 107) "mut"
98 NAME@[108; 109) 98 WHITESPACE@[107; 108) " "
99 IDENT@[108; 109) "i" 99 NAME@[108; 109)
100 WHITESPACE@[109; 110) " " 100 IDENT@[108; 109) "i"
101 EQ@[110; 111) "=" 101 WHITESPACE@[109; 110) " "
102 WHITESPACE@[111; 112) " " 102 EQ@[110; 111) "="
103 TUPLE_EXPR@[112; 114) 103 WHITESPACE@[111; 112) " "
104 L_PAREN@[112; 113) "(" 104 TUPLE_EXPR@[112; 114)
105 R_PAREN@[113; 114) ")" 105 L_PAREN@[112; 113) "("
106 SEMI@[114; 115) ";" 106 R_PAREN@[113; 114) ")"
107 WHITESPACE@[115; 116) "\n" 107 SEMI@[114; 115) ";"
108 R_CURLY@[116; 117) "}" 108 WHITESPACE@[115; 116) "\n"
109 R_CURLY@[116; 117) "}"
109 WHITESPACE@[117; 118) "\n" 110 WHITESPACE@[117; 118) "\n"