aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/test_data/parser/inline/ok
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2020-04-25 11:16:02 +0100
committerGitHub <[email protected]>2020-04-25 11:16:02 +0100
commit29fc409e7fe5b12dcf6bfbcca622d79c4c8fcb72 (patch)
treee42f7bd1490bca66e0786d5bf2b3194aeaa57a93 /crates/ra_syntax/test_data/parser/inline/ok
parent27a7718880d93f55f905da606d108d3b3c682ab4 (diff)
parente87346950039a54c3f0b02d6056cbb92ca38eb28 (diff)
Merge #4131
4131: Switch to text-size r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
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.rast144
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast270
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast124
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast120
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast76
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast242
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast80
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast194
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast52
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0010_extern_block.rast18
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast120
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast66
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast70
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast26
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast74
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0016_unsafe_trait.rast26
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast42
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast148
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast90
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast118
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast160
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast106
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast26
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast84
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast34
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast210
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast100
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast86
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast180
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast418
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast178
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast196
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast100
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast110
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast44
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast158
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast58
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast110
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast126
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast250
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast296
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast276
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast60
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast94
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast40
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0047_unsafe_default_impl.rast36
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast166
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast44
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast28
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast140
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast192
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast88
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast154
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast222
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast34
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast166
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast120
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast20
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast250
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast134
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast46
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast264
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast86
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast304
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast30
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.rast92
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast74
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast106
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast192
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast58
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast40
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast126
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast180
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast80
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast52
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0078_type_item.rast32
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0079_impl_def.rast28
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast192
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast486
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast110
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0083_struct_items.rast174
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0084_paren_type.rast38
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast272
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast72
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0087_unsafe_impl.rast32
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast138
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast36
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast44
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0091_auto_trait.rast26
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast46
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast68
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0094_unsafe_auto_trait.rast30
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast58
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast260
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0097_default_impl.rast32
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast38
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast206
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast72
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast34
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast266
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast110
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast82
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast86
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast280
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast126
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast78
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast136
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0110_use_path.rast76
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast180
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast256
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast114
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast128
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast82
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0117_macro_call_type.rast86
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast80
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast96
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast162
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast292
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast132
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast100
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast34
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast64
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast96
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast198
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast118
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast74
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast74
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast258
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast66
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0131_existential_type.rast62
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast180
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast112
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast128
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast140
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast112
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast132
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast52
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast70
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast84
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast222
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast912
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast152
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast86
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast46
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0147_macro_def.rast90
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast42
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast94
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast76
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast256
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast74
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast116
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast140
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast88
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast224
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast52
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast60
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast76
-rw-r--r--crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast90
158 files changed, 9773 insertions, 9773 deletions
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
index 25c6ef7e3..a1fabb557 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0001_trait_item_list.rast
@@ -1,72 +1,72 @@
1SOURCE_FILE@[0; 83) 1SOURCE_FILE@0..83
2 IMPL_DEF@[0; 82) 2 IMPL_DEF@0..82
3 IMPL_KW@[0; 4) "impl" 3 IMPL_KW@0..4 "impl"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 PATH_TYPE@[5; 6) 5 PATH_TYPE@5..6
6 PATH@[5; 6) 6 PATH@5..6
7 PATH_SEGMENT@[5; 6) 7 PATH_SEGMENT@5..6
8 NAME_REF@[5; 6) 8 NAME_REF@5..6
9 IDENT@[5; 6) "F" 9 IDENT@5..6 "F"
10 WHITESPACE@[6; 7) " " 10 WHITESPACE@6..7 " "
11 ITEM_LIST@[7; 82) 11 ITEM_LIST@7..82
12 L_CURLY@[7; 8) "{" 12 L_CURLY@7..8 "{"
13 WHITESPACE@[8; 13) "\n " 13 WHITESPACE@8..13 "\n "
14 TYPE_ALIAS_DEF@[13; 27) 14 TYPE_ALIAS_DEF@13..27
15 TYPE_KW@[13; 17) "type" 15 TYPE_KW@13..17 "type"
16 WHITESPACE@[17; 18) " " 16 WHITESPACE@17..18 " "
17 NAME@[18; 19) 17 NAME@18..19
18 IDENT@[18; 19) "A" 18 IDENT@18..19 "A"
19 COLON@[19; 20) ":" 19 COLON@19..20 ":"
20 WHITESPACE@[20; 21) " " 20 WHITESPACE@20..21 " "
21 TYPE_BOUND_LIST@[21; 26) 21 TYPE_BOUND_LIST@21..26
22 TYPE_BOUND@[21; 26) 22 TYPE_BOUND@21..26
23 PATH_TYPE@[21; 26) 23 PATH_TYPE@21..26
24 PATH@[21; 26) 24 PATH@21..26
25 PATH_SEGMENT@[21; 26) 25 PATH_SEGMENT@21..26
26 NAME_REF@[21; 26) 26 NAME_REF@21..26
27 IDENT@[21; 26) "Clone" 27 IDENT@21..26 "Clone"
28 SEMICOLON@[26; 27) ";" 28 SEMICOLON@26..27 ";"
29 WHITESPACE@[27; 32) "\n " 29 WHITESPACE@27..32 "\n "
30 CONST_DEF@[32; 45) 30 CONST_DEF@32..45
31 CONST_KW@[32; 37) "const" 31 CONST_KW@32..37 "const"
32 WHITESPACE@[37; 38) " " 32 WHITESPACE@37..38 " "
33 NAME@[38; 39) 33 NAME@38..39
34 IDENT@[38; 39) "B" 34 IDENT@38..39 "B"
35 COLON@[39; 40) ":" 35 COLON@39..40 ":"
36 WHITESPACE@[40; 41) " " 36 WHITESPACE@40..41 " "
37 PATH_TYPE@[41; 44) 37 PATH_TYPE@41..44
38 PATH@[41; 44) 38 PATH@41..44
39 PATH_SEGMENT@[41; 44) 39 PATH_SEGMENT@41..44
40 NAME_REF@[41; 44) 40 NAME_REF@41..44
41 IDENT@[41; 44) "i32" 41 IDENT@41..44 "i32"
42 SEMICOLON@[44; 45) ";" 42 SEMICOLON@44..45 ";"
43 WHITESPACE@[45; 50) "\n " 43 WHITESPACE@45..50 "\n "
44 FN_DEF@[50; 61) 44 FN_DEF@50..61
45 FN_KW@[50; 52) "fn" 45 FN_KW@50..52 "fn"
46 WHITESPACE@[52; 53) " " 46 WHITESPACE@52..53 " "
47 NAME@[53; 56) 47 NAME@53..56
48 IDENT@[53; 56) "foo" 48 IDENT@53..56 "foo"
49 PARAM_LIST@[56; 58) 49 PARAM_LIST@56..58
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_EXPR@[59; 61) 53 BLOCK_EXPR@59..61
54 BLOCK@[59; 61) 54 BLOCK@59..61
55 L_CURLY@[59; 60) "{" 55 L_CURLY@59..60 "{"
56 R_CURLY@[60; 61) "}" 56 R_CURLY@60..61 "}"
57 WHITESPACE@[61; 66) "\n " 57 WHITESPACE@61..66 "\n "
58 FN_DEF@[66; 80) 58 FN_DEF@66..80
59 FN_KW@[66; 68) "fn" 59 FN_KW@66..68 "fn"
60 WHITESPACE@[68; 69) " " 60 WHITESPACE@68..69 " "
61 NAME@[69; 72) 61 NAME@69..72
62 IDENT@[69; 72) "bar" 62 IDENT@69..72 "bar"
63 PARAM_LIST@[72; 79) 63 PARAM_LIST@72..79
64 L_PAREN@[72; 73) "(" 64 L_PAREN@72..73 "("
65 SELF_PARAM@[73; 78) 65 SELF_PARAM@73..78
66 AMP@[73; 74) "&" 66 AMP@73..74 "&"
67 SELF_KW@[74; 78) "self" 67 SELF_KW@74..78 "self"
68 R_PAREN@[78; 79) ")" 68 R_PAREN@78..79 ")"
69 SEMICOLON@[79; 80) ";" 69 SEMICOLON@79..80 ";"
70 WHITESPACE@[80; 81) "\n" 70 WHITESPACE@80..81 "\n"
71 R_CURLY@[81; 82) "}" 71 R_CURLY@81..82 "}"
72 WHITESPACE@[82; 83) "\n" 72 WHITESPACE@82..83 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast
index 69c459daf..bd74b44a6 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0002_use_tree_list.rast
@@ -1,135 +1,135 @@
1SOURCE_FILE@[0; 250) 1SOURCE_FILE@0..250
2 USE_ITEM@[0; 58) 2 USE_ITEM@0..58
3 USE_KW@[0; 3) "use" 3 USE_KW@0..3 "use"
4 WHITESPACE@[3; 4) " " 4 WHITESPACE@3..4 " "
5 USE_TREE@[4; 57) 5 USE_TREE@4..57
6 USE_TREE_LIST@[4; 57) 6 USE_TREE_LIST@4..57
7 L_CURLY@[4; 5) "{" 7 L_CURLY@4..5 "{"
8 USE_TREE@[5; 28) 8 USE_TREE@5..28
9 PATH@[5; 28) 9 PATH@5..28
10 PATH@[5; 22) 10 PATH@5..22
11 PATH@[5; 16) 11 PATH@5..16
12 PATH@[5; 10) 12 PATH@5..10
13 PATH_SEGMENT@[5; 10) 13 PATH_SEGMENT@5..10
14 CRATE_KW@[5; 10) "crate" 14 CRATE_KW@5..10 "crate"
15 COLON2@[10; 12) "::" 15 COLON2@10..12 "::"
16 PATH_SEGMENT@[12; 16) 16 PATH_SEGMENT@12..16
17 NAME_REF@[12; 16) 17 NAME_REF@12..16
18 IDENT@[12; 16) "path" 18 IDENT@12..16 "path"
19 COLON2@[16; 18) "::" 19 COLON2@16..18 "::"
20 PATH_SEGMENT@[18; 22) 20 PATH_SEGMENT@18..22
21 NAME_REF@[18; 22) 21 NAME_REF@18..22
22 IDENT@[18; 22) "from" 22 IDENT@18..22 "from"
23 COLON2@[22; 24) "::" 23 COLON2@22..24 "::"
24 PATH_SEGMENT@[24; 28) 24 PATH_SEGMENT@24..28
25 NAME_REF@[24; 28) 25 NAME_REF@24..28
26 IDENT@[24; 28) "root" 26 IDENT@24..28 "root"
27 COMMA@[28; 29) "," 27 COMMA@28..29 ","
28 WHITESPACE@[29; 30) " " 28 WHITESPACE@29..30 " "
29 USE_TREE@[30; 56) 29 USE_TREE@30..56
30 PATH@[30; 56) 30 PATH@30..56
31 PATH@[30; 44) 31 PATH@30..44
32 PATH@[30; 38) 32 PATH@30..38
33 PATH@[30; 32) 33 PATH@30..32
34 PATH_SEGMENT@[30; 32) 34 PATH_SEGMENT@30..32
35 NAME_REF@[30; 32) 35 NAME_REF@30..32
36 IDENT@[30; 32) "or" 36 IDENT@30..32 "or"
37 COLON2@[32; 34) "::" 37 COLON2@32..34 "::"
38 PATH_SEGMENT@[34; 38) 38 PATH_SEGMENT@34..38
39 NAME_REF@[34; 38) 39 NAME_REF@34..38
40 IDENT@[34; 38) "path" 40 IDENT@34..38 "path"
41 COLON2@[38; 40) "::" 41 COLON2@38..40 "::"
42 PATH_SEGMENT@[40; 44) 42 PATH_SEGMENT@40..44
43 NAME_REF@[40; 44) 43 NAME_REF@40..44
44 IDENT@[40; 44) "from" 44 IDENT@40..44 "from"
45 COLON2@[44; 46) "::" 45 COLON2@44..46 "::"
46 PATH_SEGMENT@[46; 56) 46 PATH_SEGMENT@46..56
47 NAME_REF@[46; 56) 47 NAME_REF@46..56
48 IDENT@[46; 56) "crate_name" 48 IDENT@46..56 "crate_name"
49 R_CURLY@[56; 57) "}" 49 R_CURLY@56..57 "}"
50 SEMICOLON@[57; 58) ";" 50 SEMICOLON@57..58 ";"
51 WHITESPACE@[58; 59) " " 51 WHITESPACE@58..59 " "
52 COMMENT@[59; 97) "// Rust 2018 (with a ..." 52 COMMENT@59..97 "// Rust 2018 (with a ..."
53 WHITESPACE@[97; 98) "\n" 53 WHITESPACE@97..98 "\n"
54 USE_ITEM@[98; 121) 54 USE_ITEM@98..121
55 USE_KW@[98; 101) "use" 55 USE_KW@98..101 "use"
56 WHITESPACE@[101; 102) " " 56 WHITESPACE@101..102 " "
57 USE_TREE@[102; 120) 57 USE_TREE@102..120
58 USE_TREE_LIST@[102; 120) 58 USE_TREE_LIST@102..120
59 L_CURLY@[102; 103) "{" 59 L_CURLY@102..103 "{"
60 USE_TREE@[103; 119) 60 USE_TREE@103..119
61 PATH@[103; 119) 61 PATH@103..119
62 PATH@[103; 113) 62 PATH@103..113
63 PATH@[103; 107) 63 PATH@103..107
64 PATH_SEGMENT@[103; 107) 64 PATH_SEGMENT@103..107
65 NAME_REF@[103; 107) 65 NAME_REF@103..107
66 IDENT@[103; 107) "path" 66 IDENT@103..107 "path"
67 COLON2@[107; 109) "::" 67 COLON2@107..109 "::"
68 PATH_SEGMENT@[109; 113) 68 PATH_SEGMENT@109..113
69 NAME_REF@[109; 113) 69 NAME_REF@109..113
70 IDENT@[109; 113) "from" 70 IDENT@109..113 "from"
71 COLON2@[113; 115) "::" 71 COLON2@113..115 "::"
72 PATH_SEGMENT@[115; 119) 72 PATH_SEGMENT@115..119
73 NAME_REF@[115; 119) 73 NAME_REF@115..119
74 IDENT@[115; 119) "root" 74 IDENT@115..119 "root"
75 R_CURLY@[119; 120) "}" 75 R_CURLY@119..120 "}"
76 SEMICOLON@[120; 121) ";" 76 SEMICOLON@120..121 ";"
77 WHITESPACE@[121; 122) " " 77 WHITESPACE@121..122 " "
78 COMMENT@[122; 134) "// Rust 2015" 78 COMMENT@122..134 "// Rust 2015"
79 WHITESPACE@[134; 135) "\n" 79 WHITESPACE@134..135 "\n"
80 USE_ITEM@[135; 166) 80 USE_ITEM@135..166
81 USE_KW@[135; 138) "use" 81 USE_KW@135..138 "use"
82 WHITESPACE@[138; 139) " " 82 WHITESPACE@138..139 " "
83 USE_TREE@[139; 165) 83 USE_TREE@139..165
84 COLON2@[139; 141) "::" 84 COLON2@139..141 "::"
85 USE_TREE_LIST@[141; 165) 85 USE_TREE_LIST@141..165
86 L_CURLY@[141; 142) "{" 86 L_CURLY@141..142 "{"
87 USE_TREE@[142; 164) 87 USE_TREE@142..164
88 PATH@[142; 164) 88 PATH@142..164
89 PATH@[142; 158) 89 PATH@142..158
90 PATH@[142; 146) 90 PATH@142..146
91 PATH_SEGMENT@[142; 146) 91 PATH_SEGMENT@142..146
92 NAME_REF@[142; 146) 92 NAME_REF@142..146
93 IDENT@[142; 146) "some" 93 IDENT@142..146 "some"
94 COLON2@[146; 148) "::" 94 COLON2@146..148 "::"
95 PATH_SEGMENT@[148; 158) 95 PATH_SEGMENT@148..158
96 NAME_REF@[148; 158) 96 NAME_REF@148..158
97 IDENT@[148; 158) "arbritrary" 97 IDENT@148..158 "arbritrary"
98 COLON2@[158; 160) "::" 98 COLON2@158..160 "::"
99 PATH_SEGMENT@[160; 164) 99 PATH_SEGMENT@160..164
100 NAME_REF@[160; 164) 100 NAME_REF@160..164
101 IDENT@[160; 164) "path" 101 IDENT@160..164 "path"
102 R_CURLY@[164; 165) "}" 102 R_CURLY@164..165 "}"
103 SEMICOLON@[165; 166) ";" 103 SEMICOLON@165..166 ";"
104 WHITESPACE@[166; 167) " " 104 WHITESPACE@166..167 " "
105 COMMENT@[167; 179) "// Rust 2015" 105 COMMENT@167..179 "// Rust 2015"
106 WHITESPACE@[179; 180) "\n" 106 WHITESPACE@179..180 "\n"
107 USE_ITEM@[180; 206) 107 USE_ITEM@180..206
108 USE_KW@[180; 183) "use" 108 USE_KW@180..183 "use"
109 WHITESPACE@[183; 184) " " 109 WHITESPACE@183..184 " "
110 USE_TREE@[184; 205) 110 USE_TREE@184..205
111 COLON2@[184; 186) "::" 111 COLON2@184..186 "::"
112 USE_TREE_LIST@[186; 205) 112 USE_TREE_LIST@186..205
113 L_CURLY@[186; 187) "{" 113 L_CURLY@186..187 "{"
114 USE_TREE@[187; 204) 114 USE_TREE@187..204
115 USE_TREE_LIST@[187; 204) 115 USE_TREE_LIST@187..204
116 L_CURLY@[187; 188) "{" 116 L_CURLY@187..188 "{"
117 USE_TREE@[188; 203) 117 USE_TREE@188..203
118 USE_TREE_LIST@[188; 203) 118 USE_TREE_LIST@188..203
119 L_CURLY@[188; 189) "{" 119 L_CURLY@188..189 "{"
120 USE_TREE@[189; 202) 120 USE_TREE@189..202
121 PATH@[189; 202) 121 PATH@189..202
122 PATH@[189; 194) 122 PATH@189..194
123 PATH_SEGMENT@[189; 194) 123 PATH_SEGMENT@189..194
124 CRATE_KW@[189; 194) "crate" 124 CRATE_KW@189..194 "crate"
125 COLON2@[194; 196) "::" 125 COLON2@194..196 "::"
126 PATH_SEGMENT@[196; 202) 126 PATH_SEGMENT@196..202
127 NAME_REF@[196; 202) 127 NAME_REF@196..202
128 IDENT@[196; 202) "export" 128 IDENT@196..202 "export"
129 R_CURLY@[202; 203) "}" 129 R_CURLY@202..203 "}"
130 R_CURLY@[203; 204) "}" 130 R_CURLY@203..204 "}"
131 R_CURLY@[204; 205) "}" 131 R_CURLY@204..205 "}"
132 SEMICOLON@[205; 206) ";" 132 SEMICOLON@205..206 ";"
133 WHITESPACE@[206; 207) " " 133 WHITESPACE@206..207 " "
134 COMMENT@[207; 249) "// Nonsensical but pe ..." 134 COMMENT@207..249 "// Nonsensical but pe ..."
135 WHITESPACE@[249; 250) "\n" 135 WHITESPACE@249..250 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
index e3f5a7f04..a46d76fde 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0003_where_pred_for.rast
@@ -1,62 +1,62 @@
1SOURCE_FILE@[0; 49) 1SOURCE_FILE@0..49
2 FN_DEF@[0; 48) 2 FN_DEF@0..48
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "test" 6 IDENT@3..7 "test"
7 TYPE_PARAM_LIST@[7; 10) 7 TYPE_PARAM_LIST@7..10
8 L_ANGLE@[7; 8) "<" 8 L_ANGLE@7..8 "<"
9 TYPE_PARAM@[8; 9) 9 TYPE_PARAM@8..9
10 NAME@[8; 9) 10 NAME@8..9
11 IDENT@[8; 9) "F" 11 IDENT@8..9 "F"
12 R_ANGLE@[9; 10) ">" 12 R_ANGLE@9..10 ">"
13 PARAM_LIST@[10; 12) 13 PARAM_LIST@10..12
14 L_PAREN@[10; 11) "(" 14 L_PAREN@10..11 "("
15 R_PAREN@[11; 12) ")" 15 R_PAREN@11..12 ")"
16 WHITESPACE@[12; 13) "\n" 16 WHITESPACE@12..13 "\n"
17 WHERE_CLAUSE@[13; 44) 17 WHERE_CLAUSE@13..44
18 WHERE_KW@[13; 18) "where" 18 WHERE_KW@13..18 "where"
19 WHITESPACE@[18; 22) "\n " 19 WHITESPACE@18..22 "\n "
20 WHERE_PRED@[22; 44) 20 WHERE_PRED@22..44
21 FOR_TYPE@[22; 31) 21 FOR_TYPE@22..31
22 FOR_KW@[22; 25) "for" 22 FOR_KW@22..25 "for"
23 TYPE_PARAM_LIST@[25; 29) 23 TYPE_PARAM_LIST@25..29
24 L_ANGLE@[25; 26) "<" 24 L_ANGLE@25..26 "<"
25 LIFETIME_PARAM@[26; 28) 25 LIFETIME_PARAM@26..28
26 LIFETIME@[26; 28) "\'a" 26 LIFETIME@26..28 "\'a"
27 R_ANGLE@[28; 29) ">" 27 R_ANGLE@28..29 ">"
28 WHITESPACE@[29; 30) " " 28 WHITESPACE@29..30 " "
29 PATH_TYPE@[30; 31) 29 PATH_TYPE@30..31
30 PATH@[30; 31) 30 PATH@30..31
31 PATH_SEGMENT@[30; 31) 31 PATH_SEGMENT@30..31
32 NAME_REF@[30; 31) 32 NAME_REF@30..31
33 IDENT@[30; 31) "F" 33 IDENT@30..31 "F"
34 COLON@[31; 32) ":" 34 COLON@31..32 ":"
35 WHITESPACE@[32; 33) " " 35 WHITESPACE@32..33 " "
36 TYPE_BOUND_LIST@[33; 44) 36 TYPE_BOUND_LIST@33..44
37 TYPE_BOUND@[33; 44) 37 TYPE_BOUND@33..44
38 PATH_TYPE@[33; 44) 38 PATH_TYPE@33..44
39 PATH@[33; 44) 39 PATH@33..44
40 PATH_SEGMENT@[33; 44) 40 PATH_SEGMENT@33..44
41 NAME_REF@[33; 35) 41 NAME_REF@33..35
42 IDENT@[33; 35) "Fn" 42 IDENT@33..35 "Fn"
43 PARAM_LIST@[35; 44) 43 PARAM_LIST@35..44
44 L_PAREN@[35; 36) "(" 44 L_PAREN@35..36 "("
45 PARAM@[36; 43) 45 PARAM@36..43
46 REFERENCE_TYPE@[36; 43) 46 REFERENCE_TYPE@36..43
47 AMP@[36; 37) "&" 47 AMP@36..37 "&"
48 LIFETIME@[37; 39) "\'a" 48 LIFETIME@37..39 "\'a"
49 WHITESPACE@[39; 40) " " 49 WHITESPACE@39..40 " "
50 PATH_TYPE@[40; 43) 50 PATH_TYPE@40..43
51 PATH@[40; 43) 51 PATH@40..43
52 PATH_SEGMENT@[40; 43) 52 PATH_SEGMENT@40..43
53 NAME_REF@[40; 43) 53 NAME_REF@40..43
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_EXPR@[45; 48) 57 BLOCK_EXPR@45..48
58 BLOCK@[45; 48) 58 BLOCK@45..48
59 L_CURLY@[45; 46) "{" 59 L_CURLY@45..46 "{"
60 WHITESPACE@[46; 47) " " 60 WHITESPACE@46..47 " "
61 R_CURLY@[47; 48) "}" 61 R_CURLY@47..48 "}"
62 WHITESPACE@[48; 49) "\n" 62 WHITESPACE@48..49 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast b/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast
index a0cf1e4f6..20eba09f5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0004_value_parameters_no_patterns.rast
@@ -1,60 +1,60 @@
1SOURCE_FILE@[0; 39) 1SOURCE_FILE@0..39
2 TYPE_ALIAS_DEF@[0; 38) 2 TYPE_ALIAS_DEF@0..38
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "F" 6 IDENT@5..6 "F"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 PATH_TYPE@[9; 37) 10 PATH_TYPE@9..37
11 PATH@[9; 37) 11 PATH@9..37
12 PATH_SEGMENT@[9; 37) 12 PATH_SEGMENT@9..37
13 NAME_REF@[9; 12) 13 NAME_REF@9..12
14 IDENT@[9; 12) "Box" 14 IDENT@9..12 "Box"
15 TYPE_ARG_LIST@[12; 37) 15 TYPE_ARG_LIST@12..37
16 L_ANGLE@[12; 13) "<" 16 L_ANGLE@12..13 "<"
17 TYPE_ARG@[13; 36) 17 TYPE_ARG@13..36
18 PATH_TYPE@[13; 36) 18 PATH_TYPE@13..36
19 PATH@[13; 36) 19 PATH@13..36
20 PATH_SEGMENT@[13; 36) 20 PATH_SEGMENT@13..36
21 NAME_REF@[13; 15) 21 NAME_REF@13..15
22 IDENT@[13; 15) "Fn" 22 IDENT@13..15 "Fn"
23 PARAM_LIST@[15; 36) 23 PARAM_LIST@15..36
24 L_PAREN@[15; 16) "(" 24 L_PAREN@15..16 "("
25 PARAM@[16; 19) 25 PARAM@16..19
26 PATH_TYPE@[16; 19) 26 PATH_TYPE@16..19
27 PATH@[16; 19) 27 PATH@16..19
28 PATH_SEGMENT@[16; 19) 28 PATH_SEGMENT@16..19
29 NAME_REF@[16; 19) 29 NAME_REF@16..19
30 IDENT@[16; 19) "i32" 30 IDENT@16..19 "i32"
31 COMMA@[19; 20) "," 31 COMMA@19..20 ","
32 WHITESPACE@[20; 21) " " 32 WHITESPACE@20..21 " "
33 PARAM@[21; 25) 33 PARAM@21..25
34 REFERENCE_TYPE@[21; 25) 34 REFERENCE_TYPE@21..25
35 AMP@[21; 22) "&" 35 AMP@21..22 "&"
36 PATH_TYPE@[22; 25) 36 PATH_TYPE@22..25
37 PATH@[22; 25) 37 PATH@22..25
38 PATH_SEGMENT@[22; 25) 38 PATH_SEGMENT@22..25
39 NAME_REF@[22; 25) 39 NAME_REF@22..25
40 IDENT@[22; 25) "i32" 40 IDENT@22..25 "i32"
41 COMMA@[25; 26) "," 41 COMMA@25..26 ","
42 WHITESPACE@[26; 27) " " 42 WHITESPACE@26..27 " "
43 PARAM@[27; 31) 43 PARAM@27..31
44 REFERENCE_TYPE@[27; 31) 44 REFERENCE_TYPE@27..31
45 AMP@[27; 28) "&" 45 AMP@27..28 "&"
46 PATH_TYPE@[28; 31) 46 PATH_TYPE@28..31
47 PATH@[28; 31) 47 PATH@28..31
48 PATH_SEGMENT@[28; 31) 48 PATH_SEGMENT@28..31
49 NAME_REF@[28; 31) 49 NAME_REF@28..31
50 IDENT@[28; 31) "i32" 50 IDENT@28..31 "i32"
51 COMMA@[31; 32) "," 51 COMMA@31..32 ","
52 WHITESPACE@[32; 33) " " 52 WHITESPACE@32..33 " "
53 PARAM@[33; 35) 53 PARAM@33..35
54 TUPLE_TYPE@[33; 35) 54 TUPLE_TYPE@33..35
55 L_PAREN@[33; 34) "(" 55 L_PAREN@33..34 "("
56 R_PAREN@[34; 35) ")" 56 R_PAREN@34..35 ")"
57 R_PAREN@[35; 36) ")" 57 R_PAREN@35..36 ")"
58 R_ANGLE@[36; 37) ">" 58 R_ANGLE@36..37 ">"
59 SEMICOLON@[37; 38) ";" 59 SEMICOLON@37..38 ";"
60 WHITESPACE@[38; 39) "\n" 60 WHITESPACE@38..39 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast
index 8ae7909f9..5181fcd2b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0005_function_type_params.rast
@@ -1,38 +1,38 @@
1SOURCE_FILE@[0; 28) 1SOURCE_FILE@0..28
2 FN_DEF@[0; 27) 2 FN_DEF@0..27
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
7 TYPE_PARAM_LIST@[6; 23) 7 TYPE_PARAM_LIST@6..23
8 L_ANGLE@[6; 7) "<" 8 L_ANGLE@6..7 "<"
9 TYPE_PARAM@[7; 22) 9 TYPE_PARAM@7..22
10 NAME@[7; 8) 10 NAME@7..8
11 IDENT@[7; 8) "T" 11 IDENT@7..8 "T"
12 COLON@[8; 9) ":" 12 COLON@8..9 ":"
13 WHITESPACE@[9; 10) " " 13 WHITESPACE@9..10 " "
14 TYPE_BOUND_LIST@[10; 22) 14 TYPE_BOUND_LIST@10..22
15 TYPE_BOUND@[10; 15) 15 TYPE_BOUND@10..15
16 PATH_TYPE@[10; 15) 16 PATH_TYPE@10..15
17 PATH@[10; 15) 17 PATH@10..15
18 PATH_SEGMENT@[10; 15) 18 PATH_SEGMENT@10..15
19 NAME_REF@[10; 15) 19 NAME_REF@10..15
20 IDENT@[10; 15) "Clone" 20 IDENT@10..15 "Clone"
21 WHITESPACE@[15; 16) " " 21 WHITESPACE@15..16 " "
22 PLUS@[16; 17) "+" 22 PLUS@16..17 "+"
23 WHITESPACE@[17; 18) " " 23 WHITESPACE@17..18 " "
24 TYPE_BOUND@[18; 22) 24 TYPE_BOUND@18..22
25 PATH_TYPE@[18; 22) 25 PATH_TYPE@18..22
26 PATH@[18; 22) 26 PATH@18..22
27 PATH_SEGMENT@[18; 22) 27 PATH_SEGMENT@18..22
28 NAME_REF@[18; 22) 28 NAME_REF@18..22
29 IDENT@[18; 22) "Copy" 29 IDENT@18..22 "Copy"
30 R_ANGLE@[22; 23) ">" 30 R_ANGLE@22..23 ">"
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_EXPR@[25; 27) 34 BLOCK_EXPR@25..27
35 BLOCK@[25; 27) 35 BLOCK@25..27
36 L_CURLY@[25; 26) "{" 36 L_CURLY@25..26 "{"
37 R_CURLY@[26; 27) "}" 37 R_CURLY@26..27 "}"
38 WHITESPACE@[27; 28) "\n" 38 WHITESPACE@27..28 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast
index 757ac092a..dd41b44e1 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0006_self_param.rast
@@ -1,121 +1,121 @@
1SOURCE_FILE@[0; 128) 1SOURCE_FILE@0..128
2 IMPL_DEF@[0; 127) 2 IMPL_DEF@0..127
3 IMPL_KW@[0; 4) "impl" 3 IMPL_KW@0..4 "impl"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 PATH_TYPE@[5; 6) 5 PATH_TYPE@5..6
6 PATH@[5; 6) 6 PATH@5..6
7 PATH_SEGMENT@[5; 6) 7 PATH_SEGMENT@5..6
8 NAME_REF@[5; 6) 8 NAME_REF@5..6
9 IDENT@[5; 6) "S" 9 IDENT@5..6 "S"
10 WHITESPACE@[6; 7) " " 10 WHITESPACE@6..7 " "
11 ITEM_LIST@[7; 127) 11 ITEM_LIST@7..127
12 L_CURLY@[7; 8) "{" 12 L_CURLY@7..8 "{"
13 WHITESPACE@[8; 13) "\n " 13 WHITESPACE@8..13 "\n "
14 FN_DEF@[13; 26) 14 FN_DEF@13..26
15 FN_KW@[13; 15) "fn" 15 FN_KW@13..15 "fn"
16 WHITESPACE@[15; 16) " " 16 WHITESPACE@15..16 " "
17 NAME@[16; 17) 17 NAME@16..17
18 IDENT@[16; 17) "a" 18 IDENT@16..17 "a"
19 PARAM_LIST@[17; 23) 19 PARAM_LIST@17..23
20 L_PAREN@[17; 18) "(" 20 L_PAREN@17..18 "("
21 SELF_PARAM@[18; 22) 21 SELF_PARAM@18..22
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_EXPR@[24; 26) 25 BLOCK_EXPR@24..26
26 BLOCK@[24; 26) 26 BLOCK@24..26
27 L_CURLY@[24; 25) "{" 27 L_CURLY@24..25 "{"
28 R_CURLY@[25; 26) "}" 28 R_CURLY@25..26 "}"
29 WHITESPACE@[26; 31) "\n " 29 WHITESPACE@26..31 "\n "
30 FN_DEF@[31; 46) 30 FN_DEF@31..46
31 FN_KW@[31; 33) "fn" 31 FN_KW@31..33 "fn"
32 WHITESPACE@[33; 34) " " 32 WHITESPACE@33..34 " "
33 NAME@[34; 35) 33 NAME@34..35
34 IDENT@[34; 35) "b" 34 IDENT@34..35 "b"
35 PARAM_LIST@[35; 43) 35 PARAM_LIST@35..43
36 L_PAREN@[35; 36) "(" 36 L_PAREN@35..36 "("
37 SELF_PARAM@[36; 41) 37 SELF_PARAM@36..41
38 AMP@[36; 37) "&" 38 AMP@36..37 "&"
39 SELF_KW@[37; 41) "self" 39 SELF_KW@37..41 "self"
40 COMMA@[41; 42) "," 40 COMMA@41..42 ","
41 R_PAREN@[42; 43) ")" 41 R_PAREN@42..43 ")"
42 WHITESPACE@[43; 44) " " 42 WHITESPACE@43..44 " "
43 BLOCK_EXPR@[44; 46) 43 BLOCK_EXPR@44..46
44 BLOCK@[44; 46) 44 BLOCK@44..46
45 L_CURLY@[44; 45) "{" 45 L_CURLY@44..45 "{"
46 R_CURLY@[45; 46) "}" 46 R_CURLY@45..46 "}"
47 WHITESPACE@[46; 51) "\n " 47 WHITESPACE@46..51 "\n "
48 FN_DEF@[51; 69) 48 FN_DEF@51..69
49 FN_KW@[51; 53) "fn" 49 FN_KW@51..53 "fn"
50 WHITESPACE@[53; 54) " " 50 WHITESPACE@53..54 " "
51 NAME@[54; 55) 51 NAME@54..55
52 IDENT@[54; 55) "c" 52 IDENT@54..55 "c"
53 PARAM_LIST@[55; 66) 53 PARAM_LIST@55..66
54 L_PAREN@[55; 56) "(" 54 L_PAREN@55..56 "("
55 SELF_PARAM@[56; 64) 55 SELF_PARAM@56..64
56 AMP@[56; 57) "&" 56 AMP@56..57 "&"
57 LIFETIME@[57; 59) "\'a" 57 LIFETIME@57..59 "\'a"
58 WHITESPACE@[59; 60) " " 58 WHITESPACE@59..60 " "
59 SELF_KW@[60; 64) "self" 59 SELF_KW@60..64 "self"
60 COMMA@[64; 65) "," 60 COMMA@64..65 ","
61 R_PAREN@[65; 66) ")" 61 R_PAREN@65..66 ")"
62 WHITESPACE@[66; 67) " " 62 WHITESPACE@66..67 " "
63 BLOCK_EXPR@[67; 69) 63 BLOCK_EXPR@67..69
64 BLOCK@[67; 69) 64 BLOCK@67..69
65 L_CURLY@[67; 68) "{" 65 L_CURLY@67..68 "{"
66 R_CURLY@[68; 69) "}" 66 R_CURLY@68..69 "}"
67 WHITESPACE@[69; 74) "\n " 67 WHITESPACE@69..74 "\n "
68 FN_DEF@[74; 103) 68 FN_DEF@74..103
69 FN_KW@[74; 76) "fn" 69 FN_KW@74..76 "fn"
70 WHITESPACE@[76; 77) " " 70 WHITESPACE@76..77 " "
71 NAME@[77; 78) 71 NAME@77..78
72 IDENT@[77; 78) "d" 72 IDENT@77..78 "d"
73 PARAM_LIST@[78; 100) 73 PARAM_LIST@78..100
74 L_PAREN@[78; 79) "(" 74 L_PAREN@78..79 "("
75 SELF_PARAM@[79; 91) 75 SELF_PARAM@79..91
76 AMP@[79; 80) "&" 76 AMP@79..80 "&"
77 LIFETIME@[80; 82) "\'a" 77 LIFETIME@80..82 "\'a"
78 WHITESPACE@[82; 83) " " 78 WHITESPACE@82..83 " "
79 MUT_KW@[83; 86) "mut" 79 MUT_KW@83..86 "mut"
80 WHITESPACE@[86; 87) " " 80 WHITESPACE@86..87 " "
81 SELF_KW@[87; 91) "self" 81 SELF_KW@87..91 "self"
82 COMMA@[91; 92) "," 82 COMMA@91..92 ","
83 WHITESPACE@[92; 93) " " 83 WHITESPACE@92..93 " "
84 PARAM@[93; 99) 84 PARAM@93..99
85 BIND_PAT@[93; 94) 85 BIND_PAT@93..94
86 NAME@[93; 94) 86 NAME@93..94
87 IDENT@[93; 94) "x" 87 IDENT@93..94 "x"
88 COLON@[94; 95) ":" 88 COLON@94..95 ":"
89 WHITESPACE@[95; 96) " " 89 WHITESPACE@95..96 " "
90 PATH_TYPE@[96; 99) 90 PATH_TYPE@96..99
91 PATH@[96; 99) 91 PATH@96..99
92 PATH_SEGMENT@[96; 99) 92 PATH_SEGMENT@96..99
93 NAME_REF@[96; 99) 93 NAME_REF@96..99
94 IDENT@[96; 99) "i32" 94 IDENT@96..99 "i32"
95 R_PAREN@[99; 100) ")" 95 R_PAREN@99..100 ")"
96 WHITESPACE@[100; 101) " " 96 WHITESPACE@100..101 " "
97 BLOCK_EXPR@[101; 103) 97 BLOCK_EXPR@101..103
98 BLOCK@[101; 103) 98 BLOCK@101..103
99 L_CURLY@[101; 102) "{" 99 L_CURLY@101..102 "{"
100 R_CURLY@[102; 103) "}" 100 R_CURLY@102..103 "}"
101 WHITESPACE@[103; 108) "\n " 101 WHITESPACE@103..108 "\n "
102 FN_DEF@[108; 125) 102 FN_DEF@108..125
103 FN_KW@[108; 110) "fn" 103 FN_KW@108..110 "fn"
104 WHITESPACE@[110; 111) " " 104 WHITESPACE@110..111 " "
105 NAME@[111; 112) 105 NAME@111..112
106 IDENT@[111; 112) "e" 106 IDENT@111..112 "e"
107 PARAM_LIST@[112; 122) 107 PARAM_LIST@112..122
108 L_PAREN@[112; 113) "(" 108 L_PAREN@112..113 "("
109 SELF_PARAM@[113; 121) 109 SELF_PARAM@113..121
110 MUT_KW@[113; 116) "mut" 110 MUT_KW@113..116 "mut"
111 WHITESPACE@[116; 117) " " 111 WHITESPACE@116..117 " "
112 SELF_KW@[117; 121) "self" 112 SELF_KW@117..121 "self"
113 R_PAREN@[121; 122) ")" 113 R_PAREN@121..122 ")"
114 WHITESPACE@[122; 123) " " 114 WHITESPACE@122..123 " "
115 BLOCK_EXPR@[123; 125) 115 BLOCK_EXPR@123..125
116 BLOCK@[123; 125) 116 BLOCK@123..125
117 L_CURLY@[123; 124) "{" 117 L_CURLY@123..124 "{"
118 R_CURLY@[124; 125) "}" 118 R_CURLY@124..125 "}"
119 WHITESPACE@[125; 126) "\n" 119 WHITESPACE@125..126 "\n"
120 R_CURLY@[126; 127) "}" 120 R_CURLY@126..127 "}"
121 WHITESPACE@[127; 128) "\n" 121 WHITESPACE@127..128 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast
index 027abf179..7cb9e1d55 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0007_type_param_bounds.rast
@@ -1,40 +1,40 @@
1SOURCE_FILE@[0; 35) 1SOURCE_FILE@0..35
2 STRUCT_DEF@[0; 34) 2 STRUCT_DEF@0..34
3 STRUCT_KW@[0; 6) "struct" 3 STRUCT_KW@0..6 "struct"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 NAME@[7; 8) 5 NAME@7..8
6 IDENT@[7; 8) "S" 6 IDENT@7..8 "S"
7 TYPE_PARAM_LIST@[8; 33) 7 TYPE_PARAM_LIST@8..33
8 L_ANGLE@[8; 9) "<" 8 L_ANGLE@8..9 "<"
9 TYPE_PARAM@[9; 32) 9 TYPE_PARAM@9..32
10 NAME@[9; 10) 10 NAME@9..10
11 IDENT@[9; 10) "T" 11 IDENT@9..10 "T"
12 COLON@[10; 11) ":" 12 COLON@10..11 ":"
13 WHITESPACE@[11; 12) " " 13 WHITESPACE@11..12 " "
14 TYPE_BOUND_LIST@[12; 32) 14 TYPE_BOUND_LIST@12..32
15 TYPE_BOUND@[12; 14) 15 TYPE_BOUND@12..14
16 LIFETIME@[12; 14) "\'a" 16 LIFETIME@12..14 "\'a"
17 WHITESPACE@[14; 15) " " 17 WHITESPACE@14..15 " "
18 PLUS@[15; 16) "+" 18 PLUS@15..16 "+"
19 WHITESPACE@[16; 17) " " 19 WHITESPACE@16..17 " "
20 TYPE_BOUND@[17; 23) 20 TYPE_BOUND@17..23
21 QUESTION@[17; 18) "?" 21 QUESTION@17..18 "?"
22 PATH_TYPE@[18; 23) 22 PATH_TYPE@18..23
23 PATH@[18; 23) 23 PATH@18..23
24 PATH_SEGMENT@[18; 23) 24 PATH_SEGMENT@18..23
25 NAME_REF@[18; 23) 25 NAME_REF@18..23
26 IDENT@[18; 23) "Sized" 26 IDENT@18..23 "Sized"
27 WHITESPACE@[23; 24) " " 27 WHITESPACE@23..24 " "
28 PLUS@[24; 25) "+" 28 PLUS@24..25 "+"
29 WHITESPACE@[25; 26) " " 29 WHITESPACE@25..26 " "
30 TYPE_BOUND@[26; 32) 30 TYPE_BOUND@26..32
31 L_PAREN@[26; 27) "(" 31 L_PAREN@26..27 "("
32 PATH_TYPE@[27; 31) 32 PATH_TYPE@27..31
33 PATH@[27; 31) 33 PATH@27..31
34 PATH_SEGMENT@[27; 31) 34 PATH_SEGMENT@27..31
35 NAME_REF@[27; 31) 35 NAME_REF@27..31
36 IDENT@[27; 31) "Copy" 36 IDENT@27..31 "Copy"
37 R_PAREN@[31; 32) ")" 37 R_PAREN@31..32 ")"
38 R_ANGLE@[32; 33) ">" 38 R_ANGLE@32..33 ">"
39 SEMICOLON@[33; 34) ";" 39 SEMICOLON@33..34 ";"
40 WHITESPACE@[34; 35) "\n" 40 WHITESPACE@34..35 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast
index f4697fed6..a8ddd20c9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0008_path_part.rast
@@ -1,97 +1,97 @@
1SOURCE_FILE@[0; 103) 1SOURCE_FILE@0..103
2 FN_DEF@[0; 102) 2 FN_DEF@0..102
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 102) 11 BLOCK_EXPR@9..102
12 BLOCK@[9; 102) 12 BLOCK@9..102
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 33) 15 LET_STMT@15..33
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 PATH_PAT@[19; 27) 18 PATH_PAT@19..27
19 PATH@[19; 27) 19 PATH@19..27
20 PATH@[19; 22) 20 PATH@19..22
21 PATH_SEGMENT@[19; 22) 21 PATH_SEGMENT@19..22
22 NAME_REF@[19; 22) 22 NAME_REF@19..22
23 IDENT@[19; 22) "foo" 23 IDENT@19..22 "foo"
24 COLON2@[22; 24) "::" 24 COLON2@22..24 "::"
25 PATH_SEGMENT@[24; 27) 25 PATH_SEGMENT@24..27
26 NAME_REF@[24; 27) 26 NAME_REF@24..27
27 IDENT@[24; 27) "Bar" 27 IDENT@24..27 "Bar"
28 WHITESPACE@[27; 28) " " 28 WHITESPACE@27..28 " "
29 EQ@[28; 29) "=" 29 EQ@28..29 "="
30 WHITESPACE@[29; 30) " " 30 WHITESPACE@29..30 " "
31 TUPLE_EXPR@[30; 32) 31 TUPLE_EXPR@30..32
32 L_PAREN@[30; 31) "(" 32 L_PAREN@30..31 "("
33 R_PAREN@[31; 32) ")" 33 R_PAREN@31..32 ")"
34 SEMICOLON@[32; 33) ";" 34 SEMICOLON@32..33 ";"
35 WHITESPACE@[33; 38) "\n " 35 WHITESPACE@33..38 "\n "
36 LET_STMT@[38; 53) 36 LET_STMT@38..53
37 LET_KW@[38; 41) "let" 37 LET_KW@38..41 "let"
38 WHITESPACE@[41; 42) " " 38 WHITESPACE@41..42 " "
39 PATH_PAT@[42; 47) 39 PATH_PAT@42..47
40 PATH@[42; 47) 40 PATH@42..47
41 PATH_SEGMENT@[42; 47) 41 PATH_SEGMENT@42..47
42 COLON2@[42; 44) "::" 42 COLON2@42..44 "::"
43 NAME_REF@[44; 47) 43 NAME_REF@44..47
44 IDENT@[44; 47) "Bar" 44 IDENT@44..47 "Bar"
45 WHITESPACE@[47; 48) " " 45 WHITESPACE@47..48 " "
46 EQ@[48; 49) "=" 46 EQ@48..49 "="
47 WHITESPACE@[49; 50) " " 47 WHITESPACE@49..50 " "
48 TUPLE_EXPR@[50; 52) 48 TUPLE_EXPR@50..52
49 L_PAREN@[50; 51) "(" 49 L_PAREN@50..51 "("
50 R_PAREN@[51; 52) ")" 50 R_PAREN@51..52 ")"
51 SEMICOLON@[52; 53) ";" 51 SEMICOLON@52..53 ";"
52 WHITESPACE@[53; 58) "\n " 52 WHITESPACE@53..58 "\n "
53 LET_STMT@[58; 78) 53 LET_STMT@58..78
54 LET_KW@[58; 61) "let" 54 LET_KW@58..61 "let"
55 WHITESPACE@[61; 62) " " 55 WHITESPACE@61..62 " "
56 RECORD_PAT@[62; 72) 56 RECORD_PAT@62..72
57 PATH@[62; 65) 57 PATH@62..65
58 PATH_SEGMENT@[62; 65) 58 PATH_SEGMENT@62..65
59 NAME_REF@[62; 65) 59 NAME_REF@62..65
60 IDENT@[62; 65) "Bar" 60 IDENT@62..65 "Bar"
61 WHITESPACE@[65; 66) " " 61 WHITESPACE@65..66 " "
62 RECORD_FIELD_PAT_LIST@[66; 72) 62 RECORD_FIELD_PAT_LIST@66..72
63 L_CURLY@[66; 67) "{" 63 L_CURLY@66..67 "{"
64 WHITESPACE@[67; 68) " " 64 WHITESPACE@67..68 " "
65 DOT2@[68; 70) ".." 65 DOT2@68..70 ".."
66 WHITESPACE@[70; 71) " " 66 WHITESPACE@70..71 " "
67 R_CURLY@[71; 72) "}" 67 R_CURLY@71..72 "}"
68 WHITESPACE@[72; 73) " " 68 WHITESPACE@72..73 " "
69 EQ@[73; 74) "=" 69 EQ@73..74 "="
70 WHITESPACE@[74; 75) " " 70 WHITESPACE@74..75 " "
71 TUPLE_EXPR@[75; 77) 71 TUPLE_EXPR@75..77
72 L_PAREN@[75; 76) "(" 72 L_PAREN@75..76 "("
73 R_PAREN@[76; 77) ")" 73 R_PAREN@76..77 ")"
74 SEMICOLON@[77; 78) ";" 74 SEMICOLON@77..78 ";"
75 WHITESPACE@[78; 83) "\n " 75 WHITESPACE@78..83 "\n "
76 LET_STMT@[83; 100) 76 LET_STMT@83..100
77 LET_KW@[83; 86) "let" 77 LET_KW@83..86 "let"
78 WHITESPACE@[86; 87) " " 78 WHITESPACE@86..87 " "
79 TUPLE_STRUCT_PAT@[87; 94) 79 TUPLE_STRUCT_PAT@87..94
80 PATH@[87; 90) 80 PATH@87..90
81 PATH_SEGMENT@[87; 90) 81 PATH_SEGMENT@87..90
82 NAME_REF@[87; 90) 82 NAME_REF@87..90
83 IDENT@[87; 90) "Bar" 83 IDENT@87..90 "Bar"
84 L_PAREN@[90; 91) "(" 84 L_PAREN@90..91 "("
85 DOT_DOT_PAT@[91; 93) 85 DOT_DOT_PAT@91..93
86 DOT2@[91; 93) ".." 86 DOT2@91..93 ".."
87 R_PAREN@[93; 94) ")" 87 R_PAREN@93..94 ")"
88 WHITESPACE@[94; 95) " " 88 WHITESPACE@94..95 " "
89 EQ@[95; 96) "=" 89 EQ@95..96 "="
90 WHITESPACE@[96; 97) " " 90 WHITESPACE@96..97 " "
91 TUPLE_EXPR@[97; 99) 91 TUPLE_EXPR@97..99
92 L_PAREN@[97; 98) "(" 92 L_PAREN@97..98 "("
93 R_PAREN@[98; 99) ")" 93 R_PAREN@98..99 ")"
94 SEMICOLON@[99; 100) ";" 94 SEMICOLON@99..100 ";"
95 WHITESPACE@[100; 101) "\n" 95 WHITESPACE@100..101 "\n"
96 R_CURLY@[101; 102) "}" 96 R_CURLY@101..102 "}"
97 WHITESPACE@[102; 103) "\n" 97 WHITESPACE@102..103 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast
index cc759310a..df8ada62a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0009_loop_expr.rast
@@ -1,26 +1,26 @@
1SOURCE_FILE@[0; 26) 1SOURCE_FILE@0..26
2 FN_DEF@[0; 25) 2 FN_DEF@0..25
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 25) 11 BLOCK_EXPR@9..25
12 BLOCK@[9; 25) 12 BLOCK@9..25
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 23) 15 EXPR_STMT@15..23
16 LOOP_EXPR@[15; 22) 16 LOOP_EXPR@15..22
17 LOOP_KW@[15; 19) "loop" 17 LOOP_KW@15..19 "loop"
18 WHITESPACE@[19; 20) " " 18 WHITESPACE@19..20 " "
19 BLOCK_EXPR@[20; 22) 19 BLOCK_EXPR@20..22
20 BLOCK@[20; 22) 20 BLOCK@20..22
21 L_CURLY@[20; 21) "{" 21 L_CURLY@20..21 "{"
22 R_CURLY@[21; 22) "}" 22 R_CURLY@21..22 "}"
23 SEMICOLON@[22; 23) ";" 23 SEMICOLON@22..23 ";"
24 WHITESPACE@[23; 24) "\n" 24 WHITESPACE@23..24 "\n"
25 R_CURLY@[24; 25) "}" 25 R_CURLY@24..25 "}"
26 WHITESPACE@[25; 26) "\n" 26 WHITESPACE@25..26 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0010_extern_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0010_extern_block.rast
index 506f56fff..869875875 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0010_extern_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0010_extern_block.rast
@@ -1,9 +1,9 @@
1SOURCE_FILE@[0; 10) 1SOURCE_FILE@0..10
2 EXTERN_BLOCK@[0; 9) 2 EXTERN_BLOCK@0..9
3 ABI@[0; 6) 3 ABI@0..6
4 EXTERN_KW@[0; 6) "extern" 4 EXTERN_KW@0..6 "extern"
5 WHITESPACE@[6; 7) " " 5 WHITESPACE@6..7 " "
6 EXTERN_ITEM_LIST@[7; 9) 6 EXTERN_ITEM_LIST@7..9
7 L_CURLY@[7; 8) "{" 7 L_CURLY@7..8 "{"
8 R_CURLY@[8; 9) "}" 8 R_CURLY@8..9 "}"
9 WHITESPACE@[9; 10) "\n" 9 WHITESPACE@9..10 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast
index c2fafe472..de01cc79e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0011_field_expr.rast
@@ -1,60 +1,60 @@
1SOURCE_FILE@[0; 48) 1SOURCE_FILE@0..48
2 FN_DEF@[0; 47) 2 FN_DEF@0..47
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 47) 11 BLOCK_EXPR@9..47
12 BLOCK@[9; 47) 12 BLOCK@9..47
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 21) 15 EXPR_STMT@15..21
16 FIELD_EXPR@[15; 20) 16 FIELD_EXPR@15..20
17 PATH_EXPR@[15; 16) 17 PATH_EXPR@15..16
18 PATH@[15; 16) 18 PATH@15..16
19 PATH_SEGMENT@[15; 16) 19 PATH_SEGMENT@15..16
20 NAME_REF@[15; 16) 20 NAME_REF@15..16
21 IDENT@[15; 16) "x" 21 IDENT@15..16 "x"
22 DOT@[16; 17) "." 22 DOT@16..17 "."
23 NAME_REF@[17; 20) 23 NAME_REF@17..20
24 IDENT@[17; 20) "foo" 24 IDENT@17..20 "foo"
25 SEMICOLON@[20; 21) ";" 25 SEMICOLON@20..21 ";"
26 WHITESPACE@[21; 26) "\n " 26 WHITESPACE@21..26 "\n "
27 EXPR_STMT@[26; 34) 27 EXPR_STMT@26..34
28 FIELD_EXPR@[26; 33) 28 FIELD_EXPR@26..33
29 FIELD_EXPR@[26; 29) 29 FIELD_EXPR@26..29
30 PATH_EXPR@[26; 27) 30 PATH_EXPR@26..27
31 PATH@[26; 27) 31 PATH@26..27
32 PATH_SEGMENT@[26; 27) 32 PATH_SEGMENT@26..27
33 NAME_REF@[26; 27) 33 NAME_REF@26..27
34 IDENT@[26; 27) "x" 34 IDENT@26..27 "x"
35 DOT@[27; 28) "." 35 DOT@27..28 "."
36 NAME_REF@[28; 29) 36 NAME_REF@28..29
37 INT_NUMBER@[28; 29) "0" 37 INT_NUMBER@28..29 "0"
38 DOT@[29; 30) "." 38 DOT@29..30 "."
39 NAME_REF@[30; 33) 39 NAME_REF@30..33
40 IDENT@[30; 33) "bar" 40 IDENT@30..33 "bar"
41 SEMICOLON@[33; 34) ";" 41 SEMICOLON@33..34 ";"
42 WHITESPACE@[34; 39) "\n " 42 WHITESPACE@34..39 "\n "
43 EXPR_STMT@[39; 45) 43 EXPR_STMT@39..45
44 CALL_EXPR@[39; 44) 44 CALL_EXPR@39..44
45 FIELD_EXPR@[39; 42) 45 FIELD_EXPR@39..42
46 PATH_EXPR@[39; 40) 46 PATH_EXPR@39..40
47 PATH@[39; 40) 47 PATH@39..40
48 PATH_SEGMENT@[39; 40) 48 PATH_SEGMENT@39..40
49 NAME_REF@[39; 40) 49 NAME_REF@39..40
50 IDENT@[39; 40) "x" 50 IDENT@39..40 "x"
51 DOT@[40; 41) "." 51 DOT@40..41 "."
52 NAME_REF@[41; 42) 52 NAME_REF@41..42
53 INT_NUMBER@[41; 42) "0" 53 INT_NUMBER@41..42 "0"
54 ARG_LIST@[42; 44) 54 ARG_LIST@42..44
55 L_PAREN@[42; 43) "(" 55 L_PAREN@42..43 "("
56 R_PAREN@[43; 44) ")" 56 R_PAREN@43..44 ")"
57 SEMICOLON@[44; 45) ";" 57 SEMICOLON@44..45 ";"
58 WHITESPACE@[45; 46) "\n" 58 WHITESPACE@45..46 "\n"
59 R_CURLY@[46; 47) "}" 59 R_CURLY@46..47 "}"
60 WHITESPACE@[47; 48) "\n" 60 WHITESPACE@47..48 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast
index 15d8c736d..283442a8b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0012_type_item_where_clause.rast
@@ -1,33 +1,33 @@
1SOURCE_FILE@[0; 31) 1SOURCE_FILE@0..31
2 TYPE_ALIAS_DEF@[0; 30) 2 TYPE_ALIAS_DEF@0..30
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 8) 5 NAME@5..8
6 IDENT@[5; 8) "Foo" 6 IDENT@5..8 "Foo"
7 WHITESPACE@[8; 9) " " 7 WHITESPACE@8..9 " "
8 WHERE_CLAUSE@[9; 24) 8 WHERE_CLAUSE@9..24
9 WHERE_KW@[9; 14) "where" 9 WHERE_KW@9..14 "where"
10 WHITESPACE@[14; 15) " " 10 WHITESPACE@14..15 " "
11 WHERE_PRED@[15; 24) 11 WHERE_PRED@15..24
12 PATH_TYPE@[15; 18) 12 PATH_TYPE@15..18
13 PATH@[15; 18) 13 PATH@15..18
14 PATH_SEGMENT@[15; 18) 14 PATH_SEGMENT@15..18
15 NAME_REF@[15; 18) 15 NAME_REF@15..18
16 IDENT@[15; 18) "Foo" 16 IDENT@15..18 "Foo"
17 COLON@[18; 19) ":" 17 COLON@18..19 ":"
18 WHITESPACE@[19; 20) " " 18 WHITESPACE@19..20 " "
19 TYPE_BOUND_LIST@[20; 24) 19 TYPE_BOUND_LIST@20..24
20 TYPE_BOUND@[20; 24) 20 TYPE_BOUND@20..24
21 PATH_TYPE@[20; 24) 21 PATH_TYPE@20..24
22 PATH@[20; 24) 22 PATH@20..24
23 PATH_SEGMENT@[20; 24) 23 PATH_SEGMENT@20..24
24 NAME_REF@[20; 24) 24 NAME_REF@20..24
25 IDENT@[20; 24) "Copy" 25 IDENT@20..24 "Copy"
26 WHITESPACE@[24; 25) " " 26 WHITESPACE@24..25 " "
27 EQ@[25; 26) "=" 27 EQ@25..26 "="
28 WHITESPACE@[26; 27) " " 28 WHITESPACE@26..27 " "
29 TUPLE_TYPE@[27; 29) 29 TUPLE_TYPE@27..29
30 L_PAREN@[27; 28) "(" 30 L_PAREN@27..28 "("
31 R_PAREN@[28; 29) ")" 31 R_PAREN@28..29 ")"
32 SEMICOLON@[29; 30) ";" 32 SEMICOLON@29..30 ";"
33 WHITESPACE@[30; 31) "\n" 33 WHITESPACE@30..31 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast b/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast
index a72d56495..e2e871dda 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0013_pointer_type_mut.rast
@@ -1,35 +1,35 @@
1SOURCE_FILE@[0; 36) 1SOURCE_FILE@0..36
2 TYPE_ALIAS_DEF@[0; 17) 2 TYPE_ALIAS_DEF@0..17
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "M" 6 IDENT@5..6 "M"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 POINTER_TYPE@[9; 16) 10 POINTER_TYPE@9..16
11 STAR@[9; 10) "*" 11 STAR@9..10 "*"
12 MUT_KW@[10; 13) "mut" 12 MUT_KW@10..13 "mut"
13 WHITESPACE@[13; 14) " " 13 WHITESPACE@13..14 " "
14 TUPLE_TYPE@[14; 16) 14 TUPLE_TYPE@14..16
15 L_PAREN@[14; 15) "(" 15 L_PAREN@14..15 "("
16 R_PAREN@[15; 16) ")" 16 R_PAREN@15..16 ")"
17 SEMICOLON@[16; 17) ";" 17 SEMICOLON@16..17 ";"
18 WHITESPACE@[17; 18) "\n" 18 WHITESPACE@17..18 "\n"
19 TYPE_ALIAS_DEF@[18; 35) 19 TYPE_ALIAS_DEF@18..35
20 TYPE_KW@[18; 22) "type" 20 TYPE_KW@18..22 "type"
21 WHITESPACE@[22; 23) " " 21 WHITESPACE@22..23 " "
22 NAME@[23; 24) 22 NAME@23..24
23 IDENT@[23; 24) "C" 23 IDENT@23..24 "C"
24 WHITESPACE@[24; 25) " " 24 WHITESPACE@24..25 " "
25 EQ@[25; 26) "=" 25 EQ@25..26 "="
26 WHITESPACE@[26; 27) " " 26 WHITESPACE@26..27 " "
27 POINTER_TYPE@[27; 34) 27 POINTER_TYPE@27..34
28 STAR@[27; 28) "*" 28 STAR@27..28 "*"
29 MUT_KW@[28; 31) "mut" 29 MUT_KW@28..31 "mut"
30 WHITESPACE@[31; 32) " " 30 WHITESPACE@31..32 " "
31 TUPLE_TYPE@[32; 34) 31 TUPLE_TYPE@32..34
32 L_PAREN@[32; 33) "(" 32 L_PAREN@32..33 "("
33 R_PAREN@[33; 34) ")" 33 R_PAREN@33..34 ")"
34 SEMICOLON@[34; 35) ";" 34 SEMICOLON@34..35 ";"
35 WHITESPACE@[35; 36) "\n" 35 WHITESPACE@35..36 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast
index 3c98467c7..a60940fcf 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0014_never_type.rast
@@ -1,13 +1,13 @@
1SOURCE_FILE@[0; 16) 1SOURCE_FILE@0..16
2 TYPE_ALIAS_DEF@[0; 15) 2 TYPE_ALIAS_DEF@0..15
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 10) 5 NAME@5..10
6 IDENT@[5; 10) "Never" 6 IDENT@5..10 "Never"
7 WHITESPACE@[10; 11) " " 7 WHITESPACE@10..11 " "
8 EQ@[11; 12) "=" 8 EQ@11..12 "="
9 WHITESPACE@[12; 13) " " 9 WHITESPACE@12..13 " "
10 NEVER_TYPE@[13; 14) 10 NEVER_TYPE@13..14
11 BANG@[13; 14) "!" 11 BANG@13..14 "!"
12 SEMICOLON@[14; 15) ";" 12 SEMICOLON@14..15 ";"
13 WHITESPACE@[15; 16) "\n" 13 WHITESPACE@15..16 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast
index adaece119..8ac307cb3 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0015_continue_expr.rast
@@ -1,37 +1,37 @@
1SOURCE_FILE@[0; 69) 1SOURCE_FILE@0..69
2 FN_DEF@[0; 68) 2 FN_DEF@0..68
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 68) 11 BLOCK_EXPR@9..68
12 BLOCK@[9; 68) 12 BLOCK@9..68
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LOOP_EXPR@[15; 66) 15 LOOP_EXPR@15..66
16 LOOP_KW@[15; 19) "loop" 16 LOOP_KW@15..19 "loop"
17 WHITESPACE@[19; 20) " " 17 WHITESPACE@19..20 " "
18 BLOCK_EXPR@[20; 66) 18 BLOCK_EXPR@20..66
19 BLOCK@[20; 66) 19 BLOCK@20..66
20 L_CURLY@[20; 21) "{" 20 L_CURLY@20..21 "{"
21 WHITESPACE@[21; 30) "\n " 21 WHITESPACE@21..30 "\n "
22 EXPR_STMT@[30; 39) 22 EXPR_STMT@30..39
23 CONTINUE_EXPR@[30; 38) 23 CONTINUE_EXPR@30..38
24 CONTINUE_KW@[30; 38) "continue" 24 CONTINUE_KW@30..38 "continue"
25 SEMICOLON@[38; 39) ";" 25 SEMICOLON@38..39 ";"
26 WHITESPACE@[39; 48) "\n " 26 WHITESPACE@39..48 "\n "
27 EXPR_STMT@[48; 60) 27 EXPR_STMT@48..60
28 CONTINUE_EXPR@[48; 59) 28 CONTINUE_EXPR@48..59
29 CONTINUE_KW@[48; 56) "continue" 29 CONTINUE_KW@48..56 "continue"
30 WHITESPACE@[56; 57) " " 30 WHITESPACE@56..57 " "
31 LIFETIME@[57; 59) "\'l" 31 LIFETIME@57..59 "\'l"
32 SEMICOLON@[59; 60) ";" 32 SEMICOLON@59..60 ";"
33 WHITESPACE@[60; 65) "\n " 33 WHITESPACE@60..65 "\n "
34 R_CURLY@[65; 66) "}" 34 R_CURLY@65..66 "}"
35 WHITESPACE@[66; 67) "\n" 35 WHITESPACE@66..67 "\n"
36 R_CURLY@[67; 68) "}" 36 R_CURLY@67..68 "}"
37 WHITESPACE@[68; 69) "\n" 37 WHITESPACE@68..69 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0016_unsafe_trait.rast b/crates/ra_syntax/test_data/parser/inline/ok/0016_unsafe_trait.rast
index 7b43f1294..d59c6006d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0016_unsafe_trait.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0016_unsafe_trait.rast
@@ -1,13 +1,13 @@
1SOURCE_FILE@[0; 18) 1SOURCE_FILE@0..18
2 TRAIT_DEF@[0; 17) 2 TRAIT_DEF@0..17
3 UNSAFE_KW@[0; 6) "unsafe" 3 UNSAFE_KW@0..6 "unsafe"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 TRAIT_KW@[7; 12) "trait" 5 TRAIT_KW@7..12 "trait"
6 WHITESPACE@[12; 13) " " 6 WHITESPACE@12..13 " "
7 NAME@[13; 14) 7 NAME@13..14
8 IDENT@[13; 14) "T" 8 IDENT@13..14 "T"
9 WHITESPACE@[14; 15) " " 9 WHITESPACE@14..15 " "
10 ITEM_LIST@[15; 17) 10 ITEM_LIST@15..17
11 L_CURLY@[15; 16) "{" 11 L_CURLY@15..16 "{"
12 R_CURLY@[16; 17) "}" 12 R_CURLY@16..17 "}"
13 WHITESPACE@[17; 18) "\n" 13 WHITESPACE@17..18 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast
index f4c86a05f..61a0b22f4 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0017_array_type.rast
@@ -1,21 +1,21 @@
1SOURCE_FILE@[0; 19) 1SOURCE_FILE@0..19
2 TYPE_ALIAS_DEF@[0; 18) 2 TYPE_ALIAS_DEF@0..18
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "T" 6 IDENT@5..6 "T"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 ARRAY_TYPE@[9; 17) 10 ARRAY_TYPE@9..17
11 L_BRACK@[9; 10) "[" 11 L_BRACK@9..10 "["
12 TUPLE_TYPE@[10; 12) 12 TUPLE_TYPE@10..12
13 L_PAREN@[10; 11) "(" 13 L_PAREN@10..11 "("
14 R_PAREN@[11; 12) ")" 14 R_PAREN@11..12 ")"
15 SEMICOLON@[12; 13) ";" 15 SEMICOLON@12..13 ";"
16 WHITESPACE@[13; 14) " " 16 WHITESPACE@13..14 " "
17 LITERAL@[14; 16) 17 LITERAL@14..16
18 INT_NUMBER@[14; 16) "92" 18 INT_NUMBER@14..16 "92"
19 R_BRACK@[16; 17) "]" 19 R_BRACK@16..17 "]"
20 SEMICOLON@[17; 18) ";" 20 SEMICOLON@17..18 ";"
21 WHITESPACE@[18; 19) "\n" 21 WHITESPACE@18..19 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast
index 89caee543..6f6400d00 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0018_arb_self_types.rast
@@ -1,74 +1,74 @@
1SOURCE_FILE@[0; 69) 1SOURCE_FILE@0..69
2 IMPL_DEF@[0; 68) 2 IMPL_DEF@0..68
3 IMPL_KW@[0; 4) "impl" 3 IMPL_KW@0..4 "impl"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 PATH_TYPE@[5; 6) 5 PATH_TYPE@5..6
6 PATH@[5; 6) 6 PATH@5..6
7 PATH_SEGMENT@[5; 6) 7 PATH_SEGMENT@5..6
8 NAME_REF@[5; 6) 8 NAME_REF@5..6
9 IDENT@[5; 6) "S" 9 IDENT@5..6 "S"
10 WHITESPACE@[6; 7) " " 10 WHITESPACE@6..7 " "
11 ITEM_LIST@[7; 68) 11 ITEM_LIST@7..68
12 L_CURLY@[7; 8) "{" 12 L_CURLY@7..8 "{"
13 WHITESPACE@[8; 13) "\n " 13 WHITESPACE@8..13 "\n "
14 FN_DEF@[13; 33) 14 FN_DEF@13..33
15 FN_KW@[13; 15) "fn" 15 FN_KW@13..15 "fn"
16 WHITESPACE@[15; 16) " " 16 WHITESPACE@15..16 " "
17 NAME@[16; 17) 17 NAME@16..17
18 IDENT@[16; 17) "a" 18 IDENT@16..17 "a"
19 PARAM_LIST@[17; 30) 19 PARAM_LIST@17..30
20 L_PAREN@[17; 18) "(" 20 L_PAREN@17..18 "("
21 SELF_PARAM@[18; 29) 21 SELF_PARAM@18..29
22 SELF_KW@[18; 22) "self" 22 SELF_KW@18..22 "self"
23 COLON@[22; 23) ":" 23 COLON@22..23 ":"
24 WHITESPACE@[23; 24) " " 24 WHITESPACE@23..24 " "
25 REFERENCE_TYPE@[24; 29) 25 REFERENCE_TYPE@24..29
26 AMP@[24; 25) "&" 26 AMP@24..25 "&"
27 PATH_TYPE@[25; 29) 27 PATH_TYPE@25..29
28 PATH@[25; 29) 28 PATH@25..29
29 PATH_SEGMENT@[25; 29) 29 PATH_SEGMENT@25..29
30 NAME_REF@[25; 29) 30 NAME_REF@25..29
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_EXPR@[31; 33) 34 BLOCK_EXPR@31..33
35 BLOCK@[31; 33) 35 BLOCK@31..33
36 L_CURLY@[31; 32) "{" 36 L_CURLY@31..32 "{"
37 R_CURLY@[32; 33) "}" 37 R_CURLY@32..33 "}"
38 WHITESPACE@[33; 38) "\n " 38 WHITESPACE@33..38 "\n "
39 FN_DEF@[38; 66) 39 FN_DEF@38..66
40 FN_KW@[38; 40) "fn" 40 FN_KW@38..40 "fn"
41 WHITESPACE@[40; 41) " " 41 WHITESPACE@40..41 " "
42 NAME@[41; 42) 42 NAME@41..42
43 IDENT@[41; 42) "b" 43 IDENT@41..42 "b"
44 PARAM_LIST@[42; 63) 44 PARAM_LIST@42..63
45 L_PAREN@[42; 43) "(" 45 L_PAREN@42..43 "("
46 SELF_PARAM@[43; 62) 46 SELF_PARAM@43..62
47 MUT_KW@[43; 46) "mut" 47 MUT_KW@43..46 "mut"
48 WHITESPACE@[46; 47) " " 48 WHITESPACE@46..47 " "
49 SELF_KW@[47; 51) "self" 49 SELF_KW@47..51 "self"
50 COLON@[51; 52) ":" 50 COLON@51..52 ":"
51 WHITESPACE@[52; 53) " " 51 WHITESPACE@52..53 " "
52 PATH_TYPE@[53; 62) 52 PATH_TYPE@53..62
53 PATH@[53; 62) 53 PATH@53..62
54 PATH_SEGMENT@[53; 62) 54 PATH_SEGMENT@53..62
55 NAME_REF@[53; 56) 55 NAME_REF@53..56
56 IDENT@[53; 56) "Box" 56 IDENT@53..56 "Box"
57 TYPE_ARG_LIST@[56; 62) 57 TYPE_ARG_LIST@56..62
58 L_ANGLE@[56; 57) "<" 58 L_ANGLE@56..57 "<"
59 TYPE_ARG@[57; 61) 59 TYPE_ARG@57..61
60 PATH_TYPE@[57; 61) 60 PATH_TYPE@57..61
61 PATH@[57; 61) 61 PATH@57..61
62 PATH_SEGMENT@[57; 61) 62 PATH_SEGMENT@57..61
63 NAME_REF@[57; 61) 63 NAME_REF@57..61
64 IDENT@[57; 61) "Self" 64 IDENT@57..61 "Self"
65 R_ANGLE@[61; 62) ">" 65 R_ANGLE@61..62 ">"
66 R_PAREN@[62; 63) ")" 66 R_PAREN@62..63 ")"
67 WHITESPACE@[63; 64) " " 67 WHITESPACE@63..64 " "
68 BLOCK_EXPR@[64; 66) 68 BLOCK_EXPR@64..66
69 BLOCK@[64; 66) 69 BLOCK@64..66
70 L_CURLY@[64; 65) "{" 70 L_CURLY@64..65 "{"
71 R_CURLY@[65; 66) "}" 71 R_CURLY@65..66 "}"
72 WHITESPACE@[66; 67) "\n" 72 WHITESPACE@66..67 "\n"
73 R_CURLY@[67; 68) "}" 73 R_CURLY@67..68 "}"
74 WHITESPACE@[68; 69) "\n" 74 WHITESPACE@68..69 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast
index 5a42f360c..ba422f1ae 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0019_unary_expr.rast
@@ -1,45 +1,45 @@
1SOURCE_FILE@[0; 44) 1SOURCE_FILE@0..44
2 FN_DEF@[0; 43) 2 FN_DEF@0..43
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 43) 11 BLOCK_EXPR@9..43
12 BLOCK@[9; 43) 12 BLOCK@9..43
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 20) 15 EXPR_STMT@15..20
16 PREFIX_EXPR@[15; 19) 16 PREFIX_EXPR@15..19
17 STAR@[15; 16) "*" 17 STAR@15..16 "*"
18 PREFIX_EXPR@[16; 19) 18 PREFIX_EXPR@16..19
19 STAR@[16; 17) "*" 19 STAR@16..17 "*"
20 REF_EXPR@[17; 19) 20 REF_EXPR@17..19
21 AMP@[17; 18) "&" 21 AMP@17..18 "&"
22 LITERAL@[18; 19) 22 LITERAL@18..19
23 INT_NUMBER@[18; 19) "1" 23 INT_NUMBER@18..19 "1"
24 SEMICOLON@[19; 20) ";" 24 SEMICOLON@19..20 ";"
25 WHITESPACE@[20; 25) "\n " 25 WHITESPACE@20..25 "\n "
26 EXPR_STMT@[25; 32) 26 EXPR_STMT@25..32
27 PREFIX_EXPR@[25; 31) 27 PREFIX_EXPR@25..31
28 BANG@[25; 26) "!" 28 BANG@25..26 "!"
29 PREFIX_EXPR@[26; 31) 29 PREFIX_EXPR@26..31
30 BANG@[26; 27) "!" 30 BANG@26..27 "!"
31 LITERAL@[27; 31) 31 LITERAL@27..31
32 TRUE_KW@[27; 31) "true" 32 TRUE_KW@27..31 "true"
33 SEMICOLON@[31; 32) ";" 33 SEMICOLON@31..32 ";"
34 WHITESPACE@[32; 37) "\n " 34 WHITESPACE@32..37 "\n "
35 EXPR_STMT@[37; 41) 35 EXPR_STMT@37..41
36 PREFIX_EXPR@[37; 40) 36 PREFIX_EXPR@37..40
37 MINUS@[37; 38) "-" 37 MINUS@37..38 "-"
38 PREFIX_EXPR@[38; 40) 38 PREFIX_EXPR@38..40
39 MINUS@[38; 39) "-" 39 MINUS@38..39 "-"
40 LITERAL@[39; 40) 40 LITERAL@39..40
41 INT_NUMBER@[39; 40) "1" 41 INT_NUMBER@39..40 "1"
42 SEMICOLON@[40; 41) ";" 42 SEMICOLON@40..41 ";"
43 WHITESPACE@[41; 42) "\n" 43 WHITESPACE@41..42 "\n"
44 R_CURLY@[42; 43) "}" 44 R_CURLY@42..43 "}"
45 WHITESPACE@[43; 44) "\n" 45 WHITESPACE@43..44 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast b/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast
index c1bedb37c..9e898b7b9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0020_use_star.rast
@@ -1,59 +1,59 @@
1SOURCE_FILE@[0; 60) 1SOURCE_FILE@0..60
2 USE_ITEM@[0; 6) 2 USE_ITEM@0..6
3 USE_KW@[0; 3) "use" 3 USE_KW@0..3 "use"
4 WHITESPACE@[3; 4) " " 4 WHITESPACE@3..4 " "
5 USE_TREE@[4; 5) 5 USE_TREE@4..5
6 STAR@[4; 5) "*" 6 STAR@4..5 "*"
7 SEMICOLON@[5; 6) ";" 7 SEMICOLON@5..6 ";"
8 WHITESPACE@[6; 7) "\n" 8 WHITESPACE@6..7 "\n"
9 USE_ITEM@[7; 15) 9 USE_ITEM@7..15
10 USE_KW@[7; 10) "use" 10 USE_KW@7..10 "use"
11 WHITESPACE@[10; 11) " " 11 WHITESPACE@10..11 " "
12 USE_TREE@[11; 14) 12 USE_TREE@11..14
13 COLON2@[11; 13) "::" 13 COLON2@11..13 "::"
14 STAR@[13; 14) "*" 14 STAR@13..14 "*"
15 SEMICOLON@[14; 15) ";" 15 SEMICOLON@14..15 ";"
16 WHITESPACE@[15; 16) "\n" 16 WHITESPACE@15..16 "\n"
17 USE_ITEM@[16; 36) 17 USE_ITEM@16..36
18 USE_KW@[16; 19) "use" 18 USE_KW@16..19 "use"
19 WHITESPACE@[19; 20) " " 19 WHITESPACE@19..20 " "
20 USE_TREE@[20; 35) 20 USE_TREE@20..35
21 PATH@[20; 30) 21 PATH@20..30
22 PATH@[20; 24) 22 PATH@20..24
23 PATH_SEGMENT@[20; 24) 23 PATH_SEGMENT@20..24
24 NAME_REF@[20; 24) 24 NAME_REF@20..24
25 IDENT@[20; 24) "some" 25 IDENT@20..24 "some"
26 COLON2@[24; 26) "::" 26 COLON2@24..26 "::"
27 PATH_SEGMENT@[26; 30) 27 PATH_SEGMENT@26..30
28 NAME_REF@[26; 30) 28 NAME_REF@26..30
29 IDENT@[26; 30) "path" 29 IDENT@26..30 "path"
30 COLON2@[30; 32) "::" 30 COLON2@30..32 "::"
31 USE_TREE_LIST@[32; 35) 31 USE_TREE_LIST@32..35
32 L_CURLY@[32; 33) "{" 32 L_CURLY@32..33 "{"
33 USE_TREE@[33; 34) 33 USE_TREE@33..34
34 STAR@[33; 34) "*" 34 STAR@33..34 "*"
35 R_CURLY@[34; 35) "}" 35 R_CURLY@34..35 "}"
36 SEMICOLON@[35; 36) ";" 36 SEMICOLON@35..36 ";"
37 WHITESPACE@[36; 37) "\n" 37 WHITESPACE@36..37 "\n"
38 USE_ITEM@[37; 59) 38 USE_ITEM@37..59
39 USE_KW@[37; 40) "use" 39 USE_KW@37..40 "use"
40 WHITESPACE@[40; 41) " " 40 WHITESPACE@40..41 " "
41 USE_TREE@[41; 58) 41 USE_TREE@41..58
42 PATH@[41; 51) 42 PATH@41..51
43 PATH@[41; 45) 43 PATH@41..45
44 PATH_SEGMENT@[41; 45) 44 PATH_SEGMENT@41..45
45 NAME_REF@[41; 45) 45 NAME_REF@41..45
46 IDENT@[41; 45) "some" 46 IDENT@41..45 "some"
47 COLON2@[45; 47) "::" 47 COLON2@45..47 "::"
48 PATH_SEGMENT@[47; 51) 48 PATH_SEGMENT@47..51
49 NAME_REF@[47; 51) 49 NAME_REF@47..51
50 IDENT@[47; 51) "path" 50 IDENT@47..51 "path"
51 COLON2@[51; 53) "::" 51 COLON2@51..53 "::"
52 USE_TREE_LIST@[53; 58) 52 USE_TREE_LIST@53..58
53 L_CURLY@[53; 54) "{" 53 L_CURLY@53..54 "{"
54 USE_TREE@[54; 57) 54 USE_TREE@54..57
55 COLON2@[54; 56) "::" 55 COLON2@54..56 "::"
56 STAR@[56; 57) "*" 56 STAR@56..57 "*"
57 R_CURLY@[57; 58) "}" 57 R_CURLY@57..58 "}"
58 SEMICOLON@[58; 59) ";" 58 SEMICOLON@58..59 ";"
59 WHITESPACE@[59; 60) "\n" 59 WHITESPACE@59..60 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
index 767a49ce6..de22b22dd 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0021_impl_item_list.rast
@@ -1,80 +1,80 @@
1SOURCE_FILE@[0; 89) 1SOURCE_FILE@0..89
2 IMPL_DEF@[0; 88) 2 IMPL_DEF@0..88
3 IMPL_KW@[0; 4) "impl" 3 IMPL_KW@0..4 "impl"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 PATH_TYPE@[5; 6) 5 PATH_TYPE@5..6
6 PATH@[5; 6) 6 PATH@5..6
7 PATH_SEGMENT@[5; 6) 7 PATH_SEGMENT@5..6
8 NAME_REF@[5; 6) 8 NAME_REF@5..6
9 IDENT@[5; 6) "F" 9 IDENT@5..6 "F"
10 WHITESPACE@[6; 7) " " 10 WHITESPACE@6..7 " "
11 ITEM_LIST@[7; 88) 11 ITEM_LIST@7..88
12 L_CURLY@[7; 8) "{" 12 L_CURLY@7..8 "{"
13 WHITESPACE@[8; 13) "\n " 13 WHITESPACE@8..13 "\n "
14 TYPE_ALIAS_DEF@[13; 26) 14 TYPE_ALIAS_DEF@13..26
15 TYPE_KW@[13; 17) "type" 15 TYPE_KW@13..17 "type"
16 WHITESPACE@[17; 18) " " 16 WHITESPACE@17..18 " "
17 NAME@[18; 19) 17 NAME@18..19
18 IDENT@[18; 19) "A" 18 IDENT@18..19 "A"
19 WHITESPACE@[19; 20) " " 19 WHITESPACE@19..20 " "
20 EQ@[20; 21) "=" 20 EQ@20..21 "="
21 WHITESPACE@[21; 22) " " 21 WHITESPACE@21..22 " "
22 PATH_TYPE@[22; 25) 22 PATH_TYPE@22..25
23 PATH@[22; 25) 23 PATH@22..25
24 PATH_SEGMENT@[22; 25) 24 PATH_SEGMENT@22..25
25 NAME_REF@[22; 25) 25 NAME_REF@22..25
26 IDENT@[22; 25) "i32" 26 IDENT@22..25 "i32"
27 SEMICOLON@[25; 26) ";" 27 SEMICOLON@25..26 ";"
28 WHITESPACE@[26; 31) "\n " 28 WHITESPACE@26..31 "\n "
29 CONST_DEF@[31; 49) 29 CONST_DEF@31..49
30 CONST_KW@[31; 36) "const" 30 CONST_KW@31..36 "const"
31 WHITESPACE@[36; 37) " " 31 WHITESPACE@36..37 " "
32 NAME@[37; 38) 32 NAME@37..38
33 IDENT@[37; 38) "B" 33 IDENT@37..38 "B"
34 COLON@[38; 39) ":" 34 COLON@38..39 ":"
35 WHITESPACE@[39; 40) " " 35 WHITESPACE@39..40 " "
36 PATH_TYPE@[40; 43) 36 PATH_TYPE@40..43
37 PATH@[40; 43) 37 PATH@40..43
38 PATH_SEGMENT@[40; 43) 38 PATH_SEGMENT@40..43
39 NAME_REF@[40; 43) 39 NAME_REF@40..43
40 IDENT@[40; 43) "i32" 40 IDENT@40..43 "i32"
41 WHITESPACE@[43; 44) " " 41 WHITESPACE@43..44 " "
42 EQ@[44; 45) "=" 42 EQ@44..45 "="
43 WHITESPACE@[45; 46) " " 43 WHITESPACE@45..46 " "
44 LITERAL@[46; 48) 44 LITERAL@46..48
45 INT_NUMBER@[46; 48) "92" 45 INT_NUMBER@46..48 "92"
46 SEMICOLON@[48; 49) ";" 46 SEMICOLON@48..49 ";"
47 WHITESPACE@[49; 54) "\n " 47 WHITESPACE@49..54 "\n "
48 FN_DEF@[54; 65) 48 FN_DEF@54..65
49 FN_KW@[54; 56) "fn" 49 FN_KW@54..56 "fn"
50 WHITESPACE@[56; 57) " " 50 WHITESPACE@56..57 " "
51 NAME@[57; 60) 51 NAME@57..60
52 IDENT@[57; 60) "foo" 52 IDENT@57..60 "foo"
53 PARAM_LIST@[60; 62) 53 PARAM_LIST@60..62
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_EXPR@[63; 65) 57 BLOCK_EXPR@63..65
58 BLOCK@[63; 65) 58 BLOCK@63..65
59 L_CURLY@[63; 64) "{" 59 L_CURLY@63..64 "{"
60 R_CURLY@[64; 65) "}" 60 R_CURLY@64..65 "}"
61 WHITESPACE@[65; 70) "\n " 61 WHITESPACE@65..70 "\n "
62 FN_DEF@[70; 86) 62 FN_DEF@70..86
63 FN_KW@[70; 72) "fn" 63 FN_KW@70..72 "fn"
64 WHITESPACE@[72; 73) " " 64 WHITESPACE@72..73 " "
65 NAME@[73; 76) 65 NAME@73..76
66 IDENT@[73; 76) "bar" 66 IDENT@73..76 "bar"
67 PARAM_LIST@[76; 83) 67 PARAM_LIST@76..83
68 L_PAREN@[76; 77) "(" 68 L_PAREN@76..77 "("
69 SELF_PARAM@[77; 82) 69 SELF_PARAM@77..82
70 AMP@[77; 78) "&" 70 AMP@77..78 "&"
71 SELF_KW@[78; 82) "self" 71 SELF_KW@78..82 "self"
72 R_PAREN@[82; 83) ")" 72 R_PAREN@82..83 ")"
73 WHITESPACE@[83; 84) " " 73 WHITESPACE@83..84 " "
74 BLOCK_EXPR@[84; 86) 74 BLOCK_EXPR@84..86
75 BLOCK@[84; 86) 75 BLOCK@84..86
76 L_CURLY@[84; 85) "{" 76 L_CURLY@84..85 "{"
77 R_CURLY@[85; 86) "}" 77 R_CURLY@85..86 "}"
78 WHITESPACE@[86; 87) "\n" 78 WHITESPACE@86..87 "\n"
79 R_CURLY@[87; 88) "}" 79 R_CURLY@87..88 "}"
80 WHITESPACE@[88; 89) "\n" 80 WHITESPACE@88..89 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast b/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast
index e0fc96d33..1b810607e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0022_crate_visibility.rast
@@ -1,53 +1,53 @@
1SOURCE_FILE@[0; 81) 1SOURCE_FILE@0..81
2 STRUCT_DEF@[0; 20) 2 STRUCT_DEF@0..20
3 VISIBILITY@[0; 10) 3 VISIBILITY@0..10
4 PUB_KW@[0; 3) "pub" 4 PUB_KW@0..3 "pub"
5 L_PAREN@[3; 4) "(" 5 L_PAREN@3..4 "("
6 CRATE_KW@[4; 9) "crate" 6 CRATE_KW@4..9 "crate"
7 R_PAREN@[9; 10) ")" 7 R_PAREN@9..10 ")"
8 WHITESPACE@[10; 11) " " 8 WHITESPACE@10..11 " "
9 STRUCT_KW@[11; 17) "struct" 9 STRUCT_KW@11..17 "struct"
10 WHITESPACE@[17; 18) " " 10 WHITESPACE@17..18 " "
11 NAME@[18; 19) 11 NAME@18..19
12 IDENT@[18; 19) "S" 12 IDENT@18..19 "S"
13 SEMICOLON@[19; 20) ";" 13 SEMICOLON@19..20 ";"
14 WHITESPACE@[20; 21) "\n" 14 WHITESPACE@20..21 "\n"
15 STRUCT_DEF@[21; 40) 15 STRUCT_DEF@21..40
16 VISIBILITY@[21; 30) 16 VISIBILITY@21..30
17 PUB_KW@[21; 24) "pub" 17 PUB_KW@21..24 "pub"
18 L_PAREN@[24; 25) "(" 18 L_PAREN@24..25 "("
19 SELF_KW@[25; 29) "self" 19 SELF_KW@25..29 "self"
20 R_PAREN@[29; 30) ")" 20 R_PAREN@29..30 ")"
21 WHITESPACE@[30; 31) " " 21 WHITESPACE@30..31 " "
22 STRUCT_KW@[31; 37) "struct" 22 STRUCT_KW@31..37 "struct"
23 WHITESPACE@[37; 38) " " 23 WHITESPACE@37..38 " "
24 NAME@[38; 39) 24 NAME@38..39
25 IDENT@[38; 39) "S" 25 IDENT@38..39 "S"
26 SEMICOLON@[39; 40) ";" 26 SEMICOLON@39..40 ";"
27 WHITESPACE@[40; 41) "\n" 27 WHITESPACE@40..41 "\n"
28 STRUCT_DEF@[41; 60) 28 STRUCT_DEF@41..60
29 VISIBILITY@[41; 50) 29 VISIBILITY@41..50
30 PUB_KW@[41; 44) "pub" 30 PUB_KW@41..44 "pub"
31 L_PAREN@[44; 45) "(" 31 L_PAREN@44..45 "("
32 SELF_KW@[45; 49) "self" 32 SELF_KW@45..49 "self"
33 R_PAREN@[49; 50) ")" 33 R_PAREN@49..50 ")"
34 WHITESPACE@[50; 51) " " 34 WHITESPACE@50..51 " "
35 STRUCT_KW@[51; 57) "struct" 35 STRUCT_KW@51..57 "struct"
36 WHITESPACE@[57; 58) " " 36 WHITESPACE@57..58 " "
37 NAME@[58; 59) 37 NAME@58..59
38 IDENT@[58; 59) "S" 38 IDENT@58..59 "S"
39 SEMICOLON@[59; 60) ";" 39 SEMICOLON@59..60 ";"
40 WHITESPACE@[60; 61) "\n" 40 WHITESPACE@60..61 "\n"
41 STRUCT_DEF@[61; 80) 41 STRUCT_DEF@61..80
42 VISIBILITY@[61; 70) 42 VISIBILITY@61..70
43 PUB_KW@[61; 64) "pub" 43 PUB_KW@61..64 "pub"
44 L_PAREN@[64; 65) "(" 44 L_PAREN@64..65 "("
45 SELF_KW@[65; 69) "self" 45 SELF_KW@65..69 "self"
46 R_PAREN@[69; 70) ")" 46 R_PAREN@69..70 ")"
47 WHITESPACE@[70; 71) " " 47 WHITESPACE@70..71 " "
48 STRUCT_KW@[71; 77) "struct" 48 STRUCT_KW@71..77 "struct"
49 WHITESPACE@[77; 78) " " 49 WHITESPACE@77..78 " "
50 NAME@[78; 79) 50 NAME@78..79
51 IDENT@[78; 79) "S" 51 IDENT@78..79 "S"
52 SEMICOLON@[79; 80) ";" 52 SEMICOLON@79..80 ";"
53 WHITESPACE@[80; 81) "\n" 53 WHITESPACE@80..81 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast
index b7acc3f07..17687617b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0023_placeholder_type.rast
@@ -1,13 +1,13 @@
1SOURCE_FILE@[0; 22) 1SOURCE_FILE@0..22
2 TYPE_ALIAS_DEF@[0; 21) 2 TYPE_ALIAS_DEF@0..21
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 16) 5 NAME@5..16
6 IDENT@[5; 16) "Placeholder" 6 IDENT@5..16 "Placeholder"
7 WHITESPACE@[16; 17) " " 7 WHITESPACE@16..17 " "
8 EQ@[17; 18) "=" 8 EQ@17..18 "="
9 WHITESPACE@[18; 19) " " 9 WHITESPACE@18..19 " "
10 PLACEHOLDER_TYPE@[19; 20) 10 PLACEHOLDER_TYPE@19..20
11 UNDERSCORE@[19; 20) "_" 11 UNDERSCORE@19..20 "_"
12 SEMICOLON@[20; 21) ";" 12 SEMICOLON@20..21 ";"
13 WHITESPACE@[21; 22) "\n" 13 WHITESPACE@21..22 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast
index 430e4a999..7da292a2d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0024_slice_pat.rast
@@ -1,42 +1,42 @@
1SOURCE_FILE@[0; 39) 1SOURCE_FILE@0..39
2 FN_DEF@[0; 38) 2 FN_DEF@0..38
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 38) 11 BLOCK_EXPR@10..38
12 BLOCK@[10; 38) 12 BLOCK@10..38
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 LET_STMT@[16; 36) 15 LET_STMT@16..36
16 LET_KW@[16; 19) "let" 16 LET_KW@16..19 "let"
17 WHITESPACE@[19; 20) " " 17 WHITESPACE@19..20 " "
18 SLICE_PAT@[20; 30) 18 SLICE_PAT@20..30
19 L_BRACK@[20; 21) "[" 19 L_BRACK@20..21 "["
20 BIND_PAT@[21; 22) 20 BIND_PAT@21..22
21 NAME@[21; 22) 21 NAME@21..22
22 IDENT@[21; 22) "a" 22 IDENT@21..22 "a"
23 COMMA@[22; 23) "," 23 COMMA@22..23 ","
24 WHITESPACE@[23; 24) " " 24 WHITESPACE@23..24 " "
25 BIND_PAT@[24; 25) 25 BIND_PAT@24..25
26 NAME@[24; 25) 26 NAME@24..25
27 IDENT@[24; 25) "b" 27 IDENT@24..25 "b"
28 COMMA@[25; 26) "," 28 COMMA@25..26 ","
29 WHITESPACE@[26; 27) " " 29 WHITESPACE@26..27 " "
30 DOT_DOT_PAT@[27; 29) 30 DOT_DOT_PAT@27..29
31 DOT2@[27; 29) ".." 31 DOT2@27..29 ".."
32 R_BRACK@[29; 30) "]" 32 R_BRACK@29..30 "]"
33 WHITESPACE@[30; 31) " " 33 WHITESPACE@30..31 " "
34 EQ@[31; 32) "=" 34 EQ@31..32 "="
35 WHITESPACE@[32; 33) " " 35 WHITESPACE@32..33 " "
36 ARRAY_EXPR@[33; 35) 36 ARRAY_EXPR@33..35
37 L_BRACK@[33; 34) "[" 37 L_BRACK@33..34 "["
38 R_BRACK@[34; 35) "]" 38 R_BRACK@34..35 "]"
39 SEMICOLON@[35; 36) ";" 39 SEMICOLON@35..36 ";"
40 WHITESPACE@[36; 37) "\n" 40 WHITESPACE@36..37 "\n"
41 R_CURLY@[37; 38) "}" 41 R_CURLY@37..38 "}"
42 WHITESPACE@[38; 39) "\n" 42 WHITESPACE@38..39 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast
index 4eee1e7f1..0a6d77f45 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0025_slice_type.rast
@@ -1,17 +1,17 @@
1SOURCE_FILE@[0; 15) 1SOURCE_FILE@0..15
2 TYPE_ALIAS_DEF@[0; 14) 2 TYPE_ALIAS_DEF@0..14
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "T" 6 IDENT@5..6 "T"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 SLICE_TYPE@[9; 13) 10 SLICE_TYPE@9..13
11 L_BRACK@[9; 10) "[" 11 L_BRACK@9..10 "["
12 TUPLE_TYPE@[10; 12) 12 TUPLE_TYPE@10..12
13 L_PAREN@[10; 11) "(" 13 L_PAREN@10..11 "("
14 R_PAREN@[11; 12) ")" 14 R_PAREN@11..12 ")"
15 R_BRACK@[12; 13) "]" 15 R_BRACK@12..13 "]"
16 SEMICOLON@[13; 14) ";" 16 SEMICOLON@13..14 ";"
17 WHITESPACE@[14; 15) "\n" 17 WHITESPACE@14..15 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast
index d8d82dacc..574942f06 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0026_tuple_pat_fields.rast
@@ -1,105 +1,105 @@
1SOURCE_FILE@[0; 97) 1SOURCE_FILE@0..97
2 FN_DEF@[0; 96) 2 FN_DEF@0..96
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 96) 11 BLOCK_EXPR@9..96
12 BLOCK@[9; 96) 12 BLOCK@9..96
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 28) 15 LET_STMT@15..28
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 TUPLE_STRUCT_PAT@[19; 22) 18 TUPLE_STRUCT_PAT@19..22
19 PATH@[19; 20) 19 PATH@19..20
20 PATH_SEGMENT@[19; 20) 20 PATH_SEGMENT@19..20
21 NAME_REF@[19; 20) 21 NAME_REF@19..20
22 IDENT@[19; 20) "S" 22 IDENT@19..20 "S"
23 L_PAREN@[20; 21) "(" 23 L_PAREN@20..21 "("
24 R_PAREN@[21; 22) ")" 24 R_PAREN@21..22 ")"
25 WHITESPACE@[22; 23) " " 25 WHITESPACE@22..23 " "
26 EQ@[23; 24) "=" 26 EQ@23..24 "="
27 WHITESPACE@[24; 25) " " 27 WHITESPACE@24..25 " "
28 TUPLE_EXPR@[25; 27) 28 TUPLE_EXPR@25..27
29 L_PAREN@[25; 26) "(" 29 L_PAREN@25..26 "("
30 R_PAREN@[26; 27) ")" 30 R_PAREN@26..27 ")"
31 SEMICOLON@[27; 28) ";" 31 SEMICOLON@27..28 ";"
32 WHITESPACE@[28; 33) "\n " 32 WHITESPACE@28..33 "\n "
33 LET_STMT@[33; 47) 33 LET_STMT@33..47
34 LET_KW@[33; 36) "let" 34 LET_KW@33..36 "let"
35 WHITESPACE@[36; 37) " " 35 WHITESPACE@36..37 " "
36 TUPLE_STRUCT_PAT@[37; 41) 36 TUPLE_STRUCT_PAT@37..41
37 PATH@[37; 38) 37 PATH@37..38
38 PATH_SEGMENT@[37; 38) 38 PATH_SEGMENT@37..38
39 NAME_REF@[37; 38) 39 NAME_REF@37..38
40 IDENT@[37; 38) "S" 40 IDENT@37..38 "S"
41 L_PAREN@[38; 39) "(" 41 L_PAREN@38..39 "("
42 PLACEHOLDER_PAT@[39; 40) 42 PLACEHOLDER_PAT@39..40
43 UNDERSCORE@[39; 40) "_" 43 UNDERSCORE@39..40 "_"
44 R_PAREN@[40; 41) ")" 44 R_PAREN@40..41 ")"
45 WHITESPACE@[41; 42) " " 45 WHITESPACE@41..42 " "
46 EQ@[42; 43) "=" 46 EQ@42..43 "="
47 WHITESPACE@[43; 44) " " 47 WHITESPACE@43..44 " "
48 TUPLE_EXPR@[44; 46) 48 TUPLE_EXPR@44..46
49 L_PAREN@[44; 45) "(" 49 L_PAREN@44..45 "("
50 R_PAREN@[45; 46) ")" 50 R_PAREN@45..46 ")"
51 SEMICOLON@[46; 47) ";" 51 SEMICOLON@46..47 ";"
52 WHITESPACE@[47; 52) "\n " 52 WHITESPACE@47..52 "\n "
53 LET_STMT@[52; 67) 53 LET_STMT@52..67
54 LET_KW@[52; 55) "let" 54 LET_KW@52..55 "let"
55 WHITESPACE@[55; 56) " " 55 WHITESPACE@55..56 " "
56 TUPLE_STRUCT_PAT@[56; 61) 56 TUPLE_STRUCT_PAT@56..61
57 PATH@[56; 57) 57 PATH@56..57
58 PATH_SEGMENT@[56; 57) 58 PATH_SEGMENT@56..57
59 NAME_REF@[56; 57) 59 NAME_REF@56..57
60 IDENT@[56; 57) "S" 60 IDENT@56..57 "S"
61 L_PAREN@[57; 58) "(" 61 L_PAREN@57..58 "("
62 PLACEHOLDER_PAT@[58; 59) 62 PLACEHOLDER_PAT@58..59
63 UNDERSCORE@[58; 59) "_" 63 UNDERSCORE@58..59 "_"
64 COMMA@[59; 60) "," 64 COMMA@59..60 ","
65 R_PAREN@[60; 61) ")" 65 R_PAREN@60..61 ")"
66 WHITESPACE@[61; 62) " " 66 WHITESPACE@61..62 " "
67 EQ@[62; 63) "=" 67 EQ@62..63 "="
68 WHITESPACE@[63; 64) " " 68 WHITESPACE@63..64 " "
69 TUPLE_EXPR@[64; 66) 69 TUPLE_EXPR@64..66
70 L_PAREN@[64; 65) "(" 70 L_PAREN@64..65 "("
71 R_PAREN@[65; 66) ")" 71 R_PAREN@65..66 ")"
72 SEMICOLON@[66; 67) ";" 72 SEMICOLON@66..67 ";"
73 WHITESPACE@[67; 72) "\n " 73 WHITESPACE@67..72 "\n "
74 LET_STMT@[72; 94) 74 LET_STMT@72..94
75 LET_KW@[72; 75) "let" 75 LET_KW@72..75 "let"
76 WHITESPACE@[75; 76) " " 76 WHITESPACE@75..76 " "
77 TUPLE_STRUCT_PAT@[76; 88) 77 TUPLE_STRUCT_PAT@76..88
78 PATH@[76; 77) 78 PATH@76..77
79 PATH_SEGMENT@[76; 77) 79 PATH_SEGMENT@76..77
80 NAME_REF@[76; 77) 80 NAME_REF@76..77
81 IDENT@[76; 77) "S" 81 IDENT@76..77 "S"
82 L_PAREN@[77; 78) "(" 82 L_PAREN@77..78 "("
83 PLACEHOLDER_PAT@[78; 79) 83 PLACEHOLDER_PAT@78..79
84 UNDERSCORE@[78; 79) "_" 84 UNDERSCORE@78..79 "_"
85 COMMA@[79; 80) "," 85 COMMA@79..80 ","
86 WHITESPACE@[80; 81) " " 86 WHITESPACE@80..81 " "
87 DOT_DOT_PAT@[81; 83) 87 DOT_DOT_PAT@81..83
88 DOT2@[81; 83) ".." 88 DOT2@81..83 ".."
89 WHITESPACE@[83; 84) " " 89 WHITESPACE@83..84 " "
90 COMMA@[84; 85) "," 90 COMMA@84..85 ","
91 WHITESPACE@[85; 86) " " 91 WHITESPACE@85..86 " "
92 BIND_PAT@[86; 87) 92 BIND_PAT@86..87
93 NAME@[86; 87) 93 NAME@86..87
94 IDENT@[86; 87) "x" 94 IDENT@86..87 "x"
95 R_PAREN@[87; 88) ")" 95 R_PAREN@87..88 ")"
96 WHITESPACE@[88; 89) " " 96 WHITESPACE@88..89 " "
97 EQ@[89; 90) "=" 97 EQ@89..90 "="
98 WHITESPACE@[90; 91) " " 98 WHITESPACE@90..91 " "
99 TUPLE_EXPR@[91; 93) 99 TUPLE_EXPR@91..93
100 L_PAREN@[91; 92) "(" 100 L_PAREN@91..92 "("
101 R_PAREN@[92; 93) ")" 101 R_PAREN@92..93 ")"
102 SEMICOLON@[93; 94) ";" 102 SEMICOLON@93..94 ";"
103 WHITESPACE@[94; 95) "\n" 103 WHITESPACE@94..95 "\n"
104 R_CURLY@[95; 96) "}" 104 R_CURLY@95..96 "}"
105 WHITESPACE@[96; 97) "\n" 105 WHITESPACE@96..97 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast
index ac6ab31f2..1927438bb 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0027_ref_pat.rast
@@ -1,50 +1,50 @@
1SOURCE_FILE@[0; 52) 1SOURCE_FILE@0..52
2 FN_DEF@[0; 51) 2 FN_DEF@0..51
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 51) 11 BLOCK_EXPR@10..51
12 BLOCK@[10; 51) 12 BLOCK@10..51
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 LET_STMT@[16; 28) 15 LET_STMT@16..28
16 LET_KW@[16; 19) "let" 16 LET_KW@16..19 "let"
17 WHITESPACE@[19; 20) " " 17 WHITESPACE@19..20 " "
18 REF_PAT@[20; 22) 18 REF_PAT@20..22
19 AMP@[20; 21) "&" 19 AMP@20..21 "&"
20 BIND_PAT@[21; 22) 20 BIND_PAT@21..22
21 NAME@[21; 22) 21 NAME@21..22
22 IDENT@[21; 22) "a" 22 IDENT@21..22 "a"
23 WHITESPACE@[22; 23) " " 23 WHITESPACE@22..23 " "
24 EQ@[23; 24) "=" 24 EQ@23..24 "="
25 WHITESPACE@[24; 25) " " 25 WHITESPACE@24..25 " "
26 TUPLE_EXPR@[25; 27) 26 TUPLE_EXPR@25..27
27 L_PAREN@[25; 26) "(" 27 L_PAREN@25..26 "("
28 R_PAREN@[26; 27) ")" 28 R_PAREN@26..27 ")"
29 SEMICOLON@[27; 28) ";" 29 SEMICOLON@27..28 ";"
30 WHITESPACE@[28; 33) "\n " 30 WHITESPACE@28..33 "\n "
31 LET_STMT@[33; 49) 31 LET_STMT@33..49
32 LET_KW@[33; 36) "let" 32 LET_KW@33..36 "let"
33 WHITESPACE@[36; 37) " " 33 WHITESPACE@36..37 " "
34 REF_PAT@[37; 43) 34 REF_PAT@37..43
35 AMP@[37; 38) "&" 35 AMP@37..38 "&"
36 MUT_KW@[38; 41) "mut" 36 MUT_KW@38..41 "mut"
37 WHITESPACE@[41; 42) " " 37 WHITESPACE@41..42 " "
38 BIND_PAT@[42; 43) 38 BIND_PAT@42..43
39 NAME@[42; 43) 39 NAME@42..43
40 IDENT@[42; 43) "b" 40 IDENT@42..43 "b"
41 WHITESPACE@[43; 44) " " 41 WHITESPACE@43..44 " "
42 EQ@[44; 45) "=" 42 EQ@44..45 "="
43 WHITESPACE@[45; 46) " " 43 WHITESPACE@45..46 " "
44 TUPLE_EXPR@[46; 48) 44 TUPLE_EXPR@46..48
45 L_PAREN@[46; 47) "(" 45 L_PAREN@46..47 "("
46 R_PAREN@[47; 48) ")" 46 R_PAREN@47..48 ")"
47 SEMICOLON@[48; 49) ";" 47 SEMICOLON@48..49 ";"
48 WHITESPACE@[49; 50) "\n" 48 WHITESPACE@49..50 "\n"
49 R_CURLY@[50; 51) "}" 49 R_CURLY@50..51 "}"
50 WHITESPACE@[51; 52) "\n" 50 WHITESPACE@51..52 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast
index 3371cab82..93f5c738c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0028_impl_trait_type.rast
@@ -1,43 +1,43 @@
1SOURCE_FILE@[0; 43) 1SOURCE_FILE@0..43
2 TYPE_ALIAS_DEF@[0; 42) 2 TYPE_ALIAS_DEF@0..42
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "A" 6 IDENT@5..6 "A"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 IMPL_TRAIT_TYPE@[9; 41) 10 IMPL_TRAIT_TYPE@9..41
11 IMPL_KW@[9; 13) "impl" 11 IMPL_KW@9..13 "impl"
12 WHITESPACE@[13; 14) " " 12 WHITESPACE@13..14 " "
13 TYPE_BOUND_LIST@[14; 41) 13 TYPE_BOUND_LIST@14..41
14 TYPE_BOUND@[14; 36) 14 TYPE_BOUND@14..36
15 PATH_TYPE@[14; 36) 15 PATH_TYPE@14..36
16 PATH@[14; 36) 16 PATH@14..36
17 PATH_SEGMENT@[14; 36) 17 PATH_SEGMENT@14..36
18 NAME_REF@[14; 22) 18 NAME_REF@14..22
19 IDENT@[14; 22) "Iterator" 19 IDENT@14..22 "Iterator"
20 TYPE_ARG_LIST@[22; 36) 20 TYPE_ARG_LIST@22..36
21 L_ANGLE@[22; 23) "<" 21 L_ANGLE@22..23 "<"
22 ASSOC_TYPE_ARG@[23; 35) 22 ASSOC_TYPE_ARG@23..35
23 NAME_REF@[23; 27) 23 NAME_REF@23..27
24 IDENT@[23; 27) "Item" 24 IDENT@23..27 "Item"
25 EQ@[27; 28) "=" 25 EQ@27..28 "="
26 PATH_TYPE@[28; 35) 26 PATH_TYPE@28..35
27 PATH@[28; 35) 27 PATH@28..35
28 PATH_SEGMENT@[28; 35) 28 PATH_SEGMENT@28..35
29 NAME_REF@[28; 31) 29 NAME_REF@28..31
30 IDENT@[28; 31) "Foo" 30 IDENT@28..31 "Foo"
31 TYPE_ARG_LIST@[31; 35) 31 TYPE_ARG_LIST@31..35
32 L_ANGLE@[31; 32) "<" 32 L_ANGLE@31..32 "<"
33 LIFETIME_ARG@[32; 34) 33 LIFETIME_ARG@32..34
34 LIFETIME@[32; 34) "\'a" 34 LIFETIME@32..34 "\'a"
35 R_ANGLE@[34; 35) ">" 35 R_ANGLE@34..35 ">"
36 R_ANGLE@[35; 36) ">" 36 R_ANGLE@35..36 ">"
37 WHITESPACE@[36; 37) " " 37 WHITESPACE@36..37 " "
38 PLUS@[37; 38) "+" 38 PLUS@37..38 "+"
39 WHITESPACE@[38; 39) " " 39 WHITESPACE@38..39 " "
40 TYPE_BOUND@[39; 41) 40 TYPE_BOUND@39..41
41 LIFETIME@[39; 41) "\'a" 41 LIFETIME@39..41 "\'a"
42 SEMICOLON@[41; 42) ";" 42 SEMICOLON@41..42 ";"
43 WHITESPACE@[42; 43) "\n" 43 WHITESPACE@42..43 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast
index e9ca214bb..9effb345f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0029_cast_expr.rast
@@ -1,90 +1,90 @@
1SOURCE_FILE@[0; 89) 1SOURCE_FILE@0..89
2 FN_DEF@[0; 88) 2 FN_DEF@0..88
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 88) 11 BLOCK_EXPR@9..88
12 BLOCK@[9; 88) 12 BLOCK@9..88
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 25) 15 EXPR_STMT@15..25
16 CAST_EXPR@[15; 24) 16 CAST_EXPR@15..24
17 LITERAL@[15; 17) 17 LITERAL@15..17
18 INT_NUMBER@[15; 17) "82" 18 INT_NUMBER@15..17 "82"
19 WHITESPACE@[17; 18) " " 19 WHITESPACE@17..18 " "
20 AS_KW@[18; 20) "as" 20 AS_KW@18..20 "as"
21 WHITESPACE@[20; 21) " " 21 WHITESPACE@20..21 " "
22 PATH_TYPE@[21; 24) 22 PATH_TYPE@21..24
23 PATH@[21; 24) 23 PATH@21..24
24 PATH_SEGMENT@[21; 24) 24 PATH_SEGMENT@21..24
25 NAME_REF@[21; 24) 25 NAME_REF@21..24
26 IDENT@[21; 24) "i32" 26 IDENT@21..24 "i32"
27 SEMICOLON@[24; 25) ";" 27 SEMICOLON@24..25 ";"
28 WHITESPACE@[25; 30) "\n " 28 WHITESPACE@25..30 "\n "
29 EXPR_STMT@[30; 43) 29 EXPR_STMT@30..43
30 BIN_EXPR@[30; 42) 30 BIN_EXPR@30..42
31 CAST_EXPR@[30; 38) 31 CAST_EXPR@30..38
32 LITERAL@[30; 32) 32 LITERAL@30..32
33 INT_NUMBER@[30; 32) "81" 33 INT_NUMBER@30..32 "81"
34 WHITESPACE@[32; 33) " " 34 WHITESPACE@32..33 " "
35 AS_KW@[33; 35) "as" 35 AS_KW@33..35 "as"
36 WHITESPACE@[35; 36) " " 36 WHITESPACE@35..36 " "
37 PATH_TYPE@[36; 38) 37 PATH_TYPE@36..38
38 PATH@[36; 38) 38 PATH@36..38
39 PATH_SEGMENT@[36; 38) 39 PATH_SEGMENT@36..38
40 NAME_REF@[36; 38) 40 NAME_REF@36..38
41 IDENT@[36; 38) "i8" 41 IDENT@36..38 "i8"
42 WHITESPACE@[38; 39) " " 42 WHITESPACE@38..39 " "
43 PLUS@[39; 40) "+" 43 PLUS@39..40 "+"
44 WHITESPACE@[40; 41) " " 44 WHITESPACE@40..41 " "
45 LITERAL@[41; 42) 45 LITERAL@41..42
46 INT_NUMBER@[41; 42) "1" 46 INT_NUMBER@41..42 "1"
47 SEMICOLON@[42; 43) ";" 47 SEMICOLON@42..43 ";"
48 WHITESPACE@[43; 48) "\n " 48 WHITESPACE@43..48 "\n "
49 EXPR_STMT@[48; 62) 49 EXPR_STMT@48..62
50 BIN_EXPR@[48; 61) 50 BIN_EXPR@48..61
51 CAST_EXPR@[48; 57) 51 CAST_EXPR@48..57
52 LITERAL@[48; 50) 52 LITERAL@48..50
53 INT_NUMBER@[48; 50) "79" 53 INT_NUMBER@48..50 "79"
54 WHITESPACE@[50; 51) " " 54 WHITESPACE@50..51 " "
55 AS_KW@[51; 53) "as" 55 AS_KW@51..53 "as"
56 WHITESPACE@[53; 54) " " 56 WHITESPACE@53..54 " "
57 PATH_TYPE@[54; 57) 57 PATH_TYPE@54..57
58 PATH@[54; 57) 58 PATH@54..57
59 PATH_SEGMENT@[54; 57) 59 PATH_SEGMENT@54..57
60 NAME_REF@[54; 57) 60 NAME_REF@54..57
61 IDENT@[54; 57) "i16" 61 IDENT@54..57 "i16"
62 WHITESPACE@[57; 58) " " 62 WHITESPACE@57..58 " "
63 MINUS@[58; 59) "-" 63 MINUS@58..59 "-"
64 WHITESPACE@[59; 60) " " 64 WHITESPACE@59..60 " "
65 LITERAL@[60; 61) 65 LITERAL@60..61
66 INT_NUMBER@[60; 61) "1" 66 INT_NUMBER@60..61 "1"
67 SEMICOLON@[61; 62) ";" 67 SEMICOLON@61..62 ";"
68 WHITESPACE@[62; 67) "\n " 68 WHITESPACE@62..67 "\n "
69 EXPR_STMT@[67; 86) 69 EXPR_STMT@67..86
70 BIN_EXPR@[67; 85) 70 BIN_EXPR@67..85
71 CAST_EXPR@[67; 77) 71 CAST_EXPR@67..77
72 LITERAL@[67; 71) 72 LITERAL@67..71
73 INT_NUMBER@[67; 71) "0x36" 73 INT_NUMBER@67..71 "0x36"
74 WHITESPACE@[71; 72) " " 74 WHITESPACE@71..72 " "
75 AS_KW@[72; 74) "as" 75 AS_KW@72..74 "as"
76 WHITESPACE@[74; 75) " " 76 WHITESPACE@74..75 " "
77 PATH_TYPE@[75; 77) 77 PATH_TYPE@75..77
78 PATH@[75; 77) 78 PATH@75..77
79 PATH_SEGMENT@[75; 77) 79 PATH_SEGMENT@75..77
80 NAME_REF@[75; 77) 80 NAME_REF@75..77
81 IDENT@[75; 77) "u8" 81 IDENT@75..77 "u8"
82 WHITESPACE@[77; 78) " " 82 WHITESPACE@77..78 " "
83 LTEQ@[78; 80) "<=" 83 LTEQ@78..80 "<="
84 WHITESPACE@[80; 81) " " 84 WHITESPACE@80..81 " "
85 LITERAL@[81; 85) 85 LITERAL@81..85
86 INT_NUMBER@[81; 85) "0x37" 86 INT_NUMBER@81..85 "0x37"
87 SEMICOLON@[85; 86) ";" 87 SEMICOLON@85..86 ";"
88 WHITESPACE@[86; 87) "\n" 88 WHITESPACE@86..87 "\n"
89 R_CURLY@[87; 88) "}" 89 R_CURLY@87..88 "}"
90 WHITESPACE@[88; 89) "\n" 90 WHITESPACE@88..89 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast
index 6fd49c7bc..b6759541e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0030_cond.rast
@@ -1,209 +1,209 @@
1SOURCE_FILE@[0; 197) 1SOURCE_FILE@0..197
2 FN_DEF@[0; 37) 2 FN_DEF@0..37
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 37) 11 BLOCK_EXPR@9..37
12 BLOCK@[9; 37) 12 BLOCK@9..37
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 11) " " 14 WHITESPACE@10..11 " "
15 IF_EXPR@[11; 35) 15 IF_EXPR@11..35
16 IF_KW@[11; 13) "if" 16 IF_KW@11..13 "if"
17 WHITESPACE@[13; 14) " " 17 WHITESPACE@13..14 " "
18 CONDITION@[14; 32) 18 CONDITION@14..32
19 LET_KW@[14; 17) "let" 19 LET_KW@14..17 "let"
20 WHITESPACE@[17; 18) " " 20 WHITESPACE@17..18 " "
21 TUPLE_STRUCT_PAT@[18; 25) 21 TUPLE_STRUCT_PAT@18..25
22 PATH@[18; 22) 22 PATH@18..22
23 PATH_SEGMENT@[18; 22) 23 PATH_SEGMENT@18..22
24 NAME_REF@[18; 22) 24 NAME_REF@18..22
25 IDENT@[18; 22) "Some" 25 IDENT@18..22 "Some"
26 L_PAREN@[22; 23) "(" 26 L_PAREN@22..23 "("
27 PLACEHOLDER_PAT@[23; 24) 27 PLACEHOLDER_PAT@23..24
28 UNDERSCORE@[23; 24) "_" 28 UNDERSCORE@23..24 "_"
29 R_PAREN@[24; 25) ")" 29 R_PAREN@24..25 ")"
30 WHITESPACE@[25; 26) " " 30 WHITESPACE@25..26 " "
31 EQ@[26; 27) "=" 31 EQ@26..27 "="
32 WHITESPACE@[27; 28) " " 32 WHITESPACE@27..28 " "
33 PATH_EXPR@[28; 32) 33 PATH_EXPR@28..32
34 PATH@[28; 32) 34 PATH@28..32
35 PATH_SEGMENT@[28; 32) 35 PATH_SEGMENT@28..32
36 NAME_REF@[28; 32) 36 NAME_REF@28..32
37 IDENT@[28; 32) "None" 37 IDENT@28..32 "None"
38 WHITESPACE@[32; 33) " " 38 WHITESPACE@32..33 " "
39 BLOCK_EXPR@[33; 35) 39 BLOCK_EXPR@33..35
40 BLOCK@[33; 35) 40 BLOCK@33..35
41 L_CURLY@[33; 34) "{" 41 L_CURLY@33..34 "{"
42 R_CURLY@[34; 35) "}" 42 R_CURLY@34..35 "}"
43 WHITESPACE@[35; 36) " " 43 WHITESPACE@35..36 " "
44 R_CURLY@[36; 37) "}" 44 R_CURLY@36..37 "}"
45 WHITESPACE@[37; 38) "\n" 45 WHITESPACE@37..38 "\n"
46 FN_DEF@[38; 196) 46 FN_DEF@38..196
47 FN_KW@[38; 40) "fn" 47 FN_KW@38..40 "fn"
48 WHITESPACE@[40; 41) " " 48 WHITESPACE@40..41 " "
49 NAME@[41; 44) 49 NAME@41..44
50 IDENT@[41; 44) "bar" 50 IDENT@41..44 "bar"
51 PARAM_LIST@[44; 46) 51 PARAM_LIST@44..46
52 L_PAREN@[44; 45) "(" 52 L_PAREN@44..45 "("
53 R_PAREN@[45; 46) ")" 53 R_PAREN@45..46 ")"
54 WHITESPACE@[46; 47) " " 54 WHITESPACE@46..47 " "
55 BLOCK_EXPR@[47; 196) 55 BLOCK_EXPR@47..196
56 BLOCK@[47; 196) 56 BLOCK@47..196
57 L_CURLY@[47; 48) "{" 57 L_CURLY@47..48 "{"
58 WHITESPACE@[48; 53) "\n " 58 WHITESPACE@48..53 "\n "
59 EXPR_STMT@[53; 87) 59 EXPR_STMT@53..87
60 IF_EXPR@[53; 87) 60 IF_EXPR@53..87
61 IF_KW@[53; 55) "if" 61 IF_KW@53..55 "if"
62 WHITESPACE@[55; 56) " " 62 WHITESPACE@55..56 " "
63 CONDITION@[56; 84) 63 CONDITION@56..84
64 LET_KW@[56; 59) "let" 64 LET_KW@56..59 "let"
65 WHITESPACE@[59; 60) " " 65 WHITESPACE@59..60 " "
66 OR_PAT@[60; 77) 66 OR_PAT@60..77
67 TUPLE_STRUCT_PAT@[60; 67) 67 TUPLE_STRUCT_PAT@60..67
68 PATH@[60; 64) 68 PATH@60..64
69 PATH_SEGMENT@[60; 64) 69 PATH_SEGMENT@60..64
70 NAME_REF@[60; 64) 70 NAME_REF@60..64
71 IDENT@[60; 64) "Some" 71 IDENT@60..64 "Some"
72 L_PAREN@[64; 65) "(" 72 L_PAREN@64..65 "("
73 PLACEHOLDER_PAT@[65; 66) 73 PLACEHOLDER_PAT@65..66
74 UNDERSCORE@[65; 66) "_" 74 UNDERSCORE@65..66 "_"
75 R_PAREN@[66; 67) ")" 75 R_PAREN@66..67 ")"
76 WHITESPACE@[67; 68) " " 76 WHITESPACE@67..68 " "
77 PIPE@[68; 69) "|" 77 PIPE@68..69 "|"
78 WHITESPACE@[69; 70) " " 78 WHITESPACE@69..70 " "
79 TUPLE_STRUCT_PAT@[70; 77) 79 TUPLE_STRUCT_PAT@70..77
80 PATH@[70; 74) 80 PATH@70..74
81 PATH_SEGMENT@[70; 74) 81 PATH_SEGMENT@70..74
82 NAME_REF@[70; 74) 82 NAME_REF@70..74
83 IDENT@[70; 74) "Some" 83 IDENT@70..74 "Some"
84 L_PAREN@[74; 75) "(" 84 L_PAREN@74..75 "("
85 PLACEHOLDER_PAT@[75; 76) 85 PLACEHOLDER_PAT@75..76
86 UNDERSCORE@[75; 76) "_" 86 UNDERSCORE@75..76 "_"
87 R_PAREN@[76; 77) ")" 87 R_PAREN@76..77 ")"
88 WHITESPACE@[77; 78) " " 88 WHITESPACE@77..78 " "
89 EQ@[78; 79) "=" 89 EQ@78..79 "="
90 WHITESPACE@[79; 80) " " 90 WHITESPACE@79..80 " "
91 PATH_EXPR@[80; 84) 91 PATH_EXPR@80..84
92 PATH@[80; 84) 92 PATH@80..84
93 PATH_SEGMENT@[80; 84) 93 PATH_SEGMENT@80..84
94 NAME_REF@[80; 84) 94 NAME_REF@80..84
95 IDENT@[80; 84) "None" 95 IDENT@80..84 "None"
96 WHITESPACE@[84; 85) " " 96 WHITESPACE@84..85 " "
97 BLOCK_EXPR@[85; 87) 97 BLOCK_EXPR@85..87
98 BLOCK@[85; 87) 98 BLOCK@85..87
99 L_CURLY@[85; 86) "{" 99 L_CURLY@85..86 "{"
100 R_CURLY@[86; 87) "}" 100 R_CURLY@86..87 "}"
101 WHITESPACE@[87; 92) "\n " 101 WHITESPACE@87..92 "\n "
102 EXPR_STMT@[92; 118) 102 EXPR_STMT@92..118
103 IF_EXPR@[92; 118) 103 IF_EXPR@92..118
104 IF_KW@[92; 94) "if" 104 IF_KW@92..94 "if"
105 WHITESPACE@[94; 95) " " 105 WHITESPACE@94..95 " "
106 CONDITION@[95; 115) 106 CONDITION@95..115
107 LET_KW@[95; 98) "let" 107 LET_KW@95..98 "let"
108 WHITESPACE@[98; 99) " " 108 WHITESPACE@98..99 " "
109 PIPE@[99; 100) "|" 109 PIPE@99..100 "|"
110 WHITESPACE@[100; 101) " " 110 WHITESPACE@100..101 " "
111 TUPLE_STRUCT_PAT@[101; 108) 111 TUPLE_STRUCT_PAT@101..108
112 PATH@[101; 105) 112 PATH@101..105
113 PATH_SEGMENT@[101; 105) 113 PATH_SEGMENT@101..105
114 NAME_REF@[101; 105) 114 NAME_REF@101..105
115 IDENT@[101; 105) "Some" 115 IDENT@101..105 "Some"
116 L_PAREN@[105; 106) "(" 116 L_PAREN@105..106 "("
117 PLACEHOLDER_PAT@[106; 107) 117 PLACEHOLDER_PAT@106..107
118 UNDERSCORE@[106; 107) "_" 118 UNDERSCORE@106..107 "_"
119 R_PAREN@[107; 108) ")" 119 R_PAREN@107..108 ")"
120 WHITESPACE@[108; 109) " " 120 WHITESPACE@108..109 " "
121 EQ@[109; 110) "=" 121 EQ@109..110 "="
122 WHITESPACE@[110; 111) " " 122 WHITESPACE@110..111 " "
123 PATH_EXPR@[111; 115) 123 PATH_EXPR@111..115
124 PATH@[111; 115) 124 PATH@111..115
125 PATH_SEGMENT@[111; 115) 125 PATH_SEGMENT@111..115
126 NAME_REF@[111; 115) 126 NAME_REF@111..115
127 IDENT@[111; 115) "None" 127 IDENT@111..115 "None"
128 WHITESPACE@[115; 116) " " 128 WHITESPACE@115..116 " "
129 BLOCK_EXPR@[116; 118) 129 BLOCK_EXPR@116..118
130 BLOCK@[116; 118) 130 BLOCK@116..118
131 L_CURLY@[116; 117) "{" 131 L_CURLY@116..117 "{"
132 R_CURLY@[117; 118) "}" 132 R_CURLY@117..118 "}"
133 WHITESPACE@[118; 123) "\n " 133 WHITESPACE@118..123 "\n "
134 EXPR_STMT@[123; 160) 134 EXPR_STMT@123..160
135 WHILE_EXPR@[123; 160) 135 WHILE_EXPR@123..160
136 WHILE_KW@[123; 128) "while" 136 WHILE_KW@123..128 "while"
137 WHITESPACE@[128; 129) " " 137 WHITESPACE@128..129 " "
138 CONDITION@[129; 157) 138 CONDITION@129..157
139 LET_KW@[129; 132) "let" 139 LET_KW@129..132 "let"
140 WHITESPACE@[132; 133) " " 140 WHITESPACE@132..133 " "
141 OR_PAT@[133; 150) 141 OR_PAT@133..150
142 TUPLE_STRUCT_PAT@[133; 140) 142 TUPLE_STRUCT_PAT@133..140
143 PATH@[133; 137) 143 PATH@133..137
144 PATH_SEGMENT@[133; 137) 144 PATH_SEGMENT@133..137
145 NAME_REF@[133; 137) 145 NAME_REF@133..137
146 IDENT@[133; 137) "Some" 146 IDENT@133..137 "Some"
147 L_PAREN@[137; 138) "(" 147 L_PAREN@137..138 "("
148 PLACEHOLDER_PAT@[138; 139) 148 PLACEHOLDER_PAT@138..139
149 UNDERSCORE@[138; 139) "_" 149 UNDERSCORE@138..139 "_"
150 R_PAREN@[139; 140) ")" 150 R_PAREN@139..140 ")"
151 WHITESPACE@[140; 141) " " 151 WHITESPACE@140..141 " "
152 PIPE@[141; 142) "|" 152 PIPE@141..142 "|"
153 WHITESPACE@[142; 143) " " 153 WHITESPACE@142..143 " "
154 TUPLE_STRUCT_PAT@[143; 150) 154 TUPLE_STRUCT_PAT@143..150
155 PATH@[143; 147) 155 PATH@143..147
156 PATH_SEGMENT@[143; 147) 156 PATH_SEGMENT@143..147
157 NAME_REF@[143; 147) 157 NAME_REF@143..147
158 IDENT@[143; 147) "Some" 158 IDENT@143..147 "Some"
159 L_PAREN@[147; 148) "(" 159 L_PAREN@147..148 "("
160 PLACEHOLDER_PAT@[148; 149) 160 PLACEHOLDER_PAT@148..149
161 UNDERSCORE@[148; 149) "_" 161 UNDERSCORE@148..149 "_"
162 R_PAREN@[149; 150) ")" 162 R_PAREN@149..150 ")"
163 WHITESPACE@[150; 151) " " 163 WHITESPACE@150..151 " "
164 EQ@[151; 152) "=" 164 EQ@151..152 "="
165 WHITESPACE@[152; 153) " " 165 WHITESPACE@152..153 " "
166 PATH_EXPR@[153; 157) 166 PATH_EXPR@153..157
167 PATH@[153; 157) 167 PATH@153..157
168 PATH_SEGMENT@[153; 157) 168 PATH_SEGMENT@153..157
169 NAME_REF@[153; 157) 169 NAME_REF@153..157
170 IDENT@[153; 157) "None" 170 IDENT@153..157 "None"
171 WHITESPACE@[157; 158) " " 171 WHITESPACE@157..158 " "
172 BLOCK_EXPR@[158; 160) 172 BLOCK_EXPR@158..160
173 BLOCK@[158; 160) 173 BLOCK@158..160
174 L_CURLY@[158; 159) "{" 174 L_CURLY@158..159 "{"
175 R_CURLY@[159; 160) "}" 175 R_CURLY@159..160 "}"
176 WHITESPACE@[160; 165) "\n " 176 WHITESPACE@160..165 "\n "
177 WHILE_EXPR@[165; 194) 177 WHILE_EXPR@165..194
178 WHILE_KW@[165; 170) "while" 178 WHILE_KW@165..170 "while"
179 WHITESPACE@[170; 171) " " 179 WHITESPACE@170..171 " "
180 CONDITION@[171; 191) 180 CONDITION@171..191
181 LET_KW@[171; 174) "let" 181 LET_KW@171..174 "let"
182 WHITESPACE@[174; 175) " " 182 WHITESPACE@174..175 " "
183 PIPE@[175; 176) "|" 183 PIPE@175..176 "|"
184 WHITESPACE@[176; 177) " " 184 WHITESPACE@176..177 " "
185 TUPLE_STRUCT_PAT@[177; 184) 185 TUPLE_STRUCT_PAT@177..184
186 PATH@[177; 181) 186 PATH@177..181
187 PATH_SEGMENT@[177; 181) 187 PATH_SEGMENT@177..181
188 NAME_REF@[177; 181) 188 NAME_REF@177..181
189 IDENT@[177; 181) "Some" 189 IDENT@177..181 "Some"
190 L_PAREN@[181; 182) "(" 190 L_PAREN@181..182 "("
191 PLACEHOLDER_PAT@[182; 183) 191 PLACEHOLDER_PAT@182..183
192 UNDERSCORE@[182; 183) "_" 192 UNDERSCORE@182..183 "_"
193 R_PAREN@[183; 184) ")" 193 R_PAREN@183..184 ")"
194 WHITESPACE@[184; 185) " " 194 WHITESPACE@184..185 " "
195 EQ@[185; 186) "=" 195 EQ@185..186 "="
196 WHITESPACE@[186; 187) " " 196 WHITESPACE@186..187 " "
197 PATH_EXPR@[187; 191) 197 PATH_EXPR@187..191
198 PATH@[187; 191) 198 PATH@187..191
199 PATH_SEGMENT@[187; 191) 199 PATH_SEGMENT@187..191
200 NAME_REF@[187; 191) 200 NAME_REF@187..191
201 IDENT@[187; 191) "None" 201 IDENT@187..191 "None"
202 WHITESPACE@[191; 192) " " 202 WHITESPACE@191..192 " "
203 BLOCK_EXPR@[192; 194) 203 BLOCK_EXPR@192..194
204 BLOCK@[192; 194) 204 BLOCK@192..194
205 L_CURLY@[192; 193) "{" 205 L_CURLY@192..193 "{"
206 R_CURLY@[193; 194) "}" 206 R_CURLY@193..194 "}"
207 WHITESPACE@[194; 195) "\n" 207 WHITESPACE@194..195 "\n"
208 R_CURLY@[195; 196) "}" 208 R_CURLY@195..196 "}"
209 WHITESPACE@[196; 197) "\n" 209 WHITESPACE@196..197 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast
index aaef408cc..e5138a599 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0031_while_expr.rast
@@ -1,89 +1,89 @@
1SOURCE_FILE@[0; 93) 1SOURCE_FILE@0..93
2 FN_DEF@[0; 92) 2 FN_DEF@0..92
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 92) 11 BLOCK_EXPR@9..92
12 BLOCK@[9; 92) 12 BLOCK@9..92
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 29) 15 EXPR_STMT@15..29
16 WHILE_EXPR@[15; 28) 16 WHILE_EXPR@15..28
17 WHILE_KW@[15; 20) "while" 17 WHILE_KW@15..20 "while"
18 WHITESPACE@[20; 21) " " 18 WHITESPACE@20..21 " "
19 CONDITION@[21; 25) 19 CONDITION@21..25
20 LITERAL@[21; 25) 20 LITERAL@21..25
21 TRUE_KW@[21; 25) "true" 21 TRUE_KW@21..25 "true"
22 WHITESPACE@[25; 26) " " 22 WHITESPACE@25..26 " "
23 BLOCK_EXPR@[26; 28) 23 BLOCK_EXPR@26..28
24 BLOCK@[26; 28) 24 BLOCK@26..28
25 L_CURLY@[26; 27) "{" 25 L_CURLY@26..27 "{"
26 R_CURLY@[27; 28) "}" 26 R_CURLY@27..28 "}"
27 SEMICOLON@[28; 29) ";" 27 SEMICOLON@28..29 ";"
28 WHITESPACE@[29; 34) "\n " 28 WHITESPACE@29..34 "\n "
29 EXPR_STMT@[34; 67) 29 EXPR_STMT@34..67
30 WHILE_EXPR@[34; 66) 30 WHILE_EXPR@34..66
31 WHILE_KW@[34; 39) "while" 31 WHILE_KW@34..39 "while"
32 WHITESPACE@[39; 40) " " 32 WHITESPACE@39..40 " "
33 CONDITION@[40; 63) 33 CONDITION@40..63
34 LET_KW@[40; 43) "let" 34 LET_KW@40..43 "let"
35 WHITESPACE@[43; 44) " " 35 WHITESPACE@43..44 " "
36 TUPLE_STRUCT_PAT@[44; 51) 36 TUPLE_STRUCT_PAT@44..51
37 PATH@[44; 48) 37 PATH@44..48
38 PATH_SEGMENT@[44; 48) 38 PATH_SEGMENT@44..48
39 NAME_REF@[44; 48) 39 NAME_REF@44..48
40 IDENT@[44; 48) "Some" 40 IDENT@44..48 "Some"
41 L_PAREN@[48; 49) "(" 41 L_PAREN@48..49 "("
42 BIND_PAT@[49; 50) 42 BIND_PAT@49..50
43 NAME@[49; 50) 43 NAME@49..50
44 IDENT@[49; 50) "x" 44 IDENT@49..50 "x"
45 R_PAREN@[50; 51) ")" 45 R_PAREN@50..51 ")"
46 WHITESPACE@[51; 52) " " 46 WHITESPACE@51..52 " "
47 EQ@[52; 53) "=" 47 EQ@52..53 "="
48 WHITESPACE@[53; 54) " " 48 WHITESPACE@53..54 " "
49 METHOD_CALL_EXPR@[54; 63) 49 METHOD_CALL_EXPR@54..63
50 PATH_EXPR@[54; 56) 50 PATH_EXPR@54..56
51 PATH@[54; 56) 51 PATH@54..56
52 PATH_SEGMENT@[54; 56) 52 PATH_SEGMENT@54..56
53 NAME_REF@[54; 56) 53 NAME_REF@54..56
54 IDENT@[54; 56) "it" 54 IDENT@54..56 "it"
55 DOT@[56; 57) "." 55 DOT@56..57 "."
56 NAME_REF@[57; 61) 56 NAME_REF@57..61
57 IDENT@[57; 61) "next" 57 IDENT@57..61 "next"
58 ARG_LIST@[61; 63) 58 ARG_LIST@61..63
59 L_PAREN@[61; 62) "(" 59 L_PAREN@61..62 "("
60 R_PAREN@[62; 63) ")" 60 R_PAREN@62..63 ")"
61 WHITESPACE@[63; 64) " " 61 WHITESPACE@63..64 " "
62 BLOCK_EXPR@[64; 66) 62 BLOCK_EXPR@64..66
63 BLOCK@[64; 66) 63 BLOCK@64..66
64 L_CURLY@[64; 65) "{" 64 L_CURLY@64..65 "{"
65 R_CURLY@[65; 66) "}" 65 R_CURLY@65..66 "}"
66 SEMICOLON@[66; 67) ";" 66 SEMICOLON@66..67 ";"
67 WHITESPACE@[67; 72) "\n " 67 WHITESPACE@67..72 "\n "
68 EXPR_STMT@[72; 90) 68 EXPR_STMT@72..90
69 WHILE_EXPR@[72; 89) 69 WHILE_EXPR@72..89
70 WHILE_KW@[72; 77) "while" 70 WHILE_KW@72..77 "while"
71 WHITESPACE@[77; 78) " " 71 WHITESPACE@77..78 " "
72 CONDITION@[78; 86) 72 CONDITION@78..86
73 BLOCK_EXPR@[78; 86) 73 BLOCK_EXPR@78..86
74 BLOCK@[78; 86) 74 BLOCK@78..86
75 L_CURLY@[78; 79) "{" 75 L_CURLY@78..79 "{"
76 WHITESPACE@[79; 80) " " 76 WHITESPACE@79..80 " "
77 LITERAL@[80; 84) 77 LITERAL@80..84
78 TRUE_KW@[80; 84) "true" 78 TRUE_KW@80..84 "true"
79 WHITESPACE@[84; 85) " " 79 WHITESPACE@84..85 " "
80 R_CURLY@[85; 86) "}" 80 R_CURLY@85..86 "}"
81 WHITESPACE@[86; 87) " " 81 WHITESPACE@86..87 " "
82 BLOCK_EXPR@[87; 89) 82 BLOCK_EXPR@87..89
83 BLOCK@[87; 89) 83 BLOCK@87..89
84 L_CURLY@[87; 88) "{" 84 L_CURLY@87..88 "{"
85 R_CURLY@[88; 89) "}" 85 R_CURLY@88..89 "}"
86 SEMICOLON@[89; 90) ";" 86 SEMICOLON@89..90 ";"
87 WHITESPACE@[90; 91) "\n" 87 WHITESPACE@90..91 "\n"
88 R_CURLY@[91; 92) "}" 88 R_CURLY@91..92 "}"
89 WHITESPACE@[92; 93) "\n" 89 WHITESPACE@92..93 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast
index bad769850..72705e148 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0032_fn_pointer_type.rast
@@ -1,98 +1,98 @@
1SOURCE_FILE@[0; 113) 1SOURCE_FILE@0..113
2 TYPE_ALIAS_DEF@[0; 14) 2 TYPE_ALIAS_DEF@0..14
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "A" 6 IDENT@5..6 "A"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 FN_POINTER_TYPE@[9; 13) 10 FN_POINTER_TYPE@9..13
11 FN_KW@[9; 11) "fn" 11 FN_KW@9..11 "fn"
12 PARAM_LIST@[11; 13) 12 PARAM_LIST@11..13
13 L_PAREN@[11; 12) "(" 13 L_PAREN@11..12 "("
14 R_PAREN@[12; 13) ")" 14 R_PAREN@12..13 ")"
15 SEMICOLON@[13; 14) ";" 15 SEMICOLON@13..14 ";"
16 WHITESPACE@[14; 15) "\n" 16 WHITESPACE@14..15 "\n"
17 TYPE_ALIAS_DEF@[15; 36) 17 TYPE_ALIAS_DEF@15..36
18 TYPE_KW@[15; 19) "type" 18 TYPE_KW@15..19 "type"
19 WHITESPACE@[19; 20) " " 19 WHITESPACE@19..20 " "
20 NAME@[20; 21) 20 NAME@20..21
21 IDENT@[20; 21) "B" 21 IDENT@20..21 "B"
22 WHITESPACE@[21; 22) " " 22 WHITESPACE@21..22 " "
23 EQ@[22; 23) "=" 23 EQ@22..23 "="
24 WHITESPACE@[23; 24) " " 24 WHITESPACE@23..24 " "
25 FN_POINTER_TYPE@[24; 35) 25 FN_POINTER_TYPE@24..35
26 UNSAFE_KW@[24; 30) "unsafe" 26 UNSAFE_KW@24..30 "unsafe"
27 WHITESPACE@[30; 31) " " 27 WHITESPACE@30..31 " "
28 FN_KW@[31; 33) "fn" 28 FN_KW@31..33 "fn"
29 PARAM_LIST@[33; 35) 29 PARAM_LIST@33..35
30 L_PAREN@[33; 34) "(" 30 L_PAREN@33..34 "("
31 R_PAREN@[34; 35) ")" 31 R_PAREN@34..35 ")"
32 SEMICOLON@[35; 36) ";" 32 SEMICOLON@35..36 ";"
33 WHITESPACE@[36; 37) "\n" 33 WHITESPACE@36..37 "\n"
34 TYPE_ALIAS_DEF@[37; 69) 34 TYPE_ALIAS_DEF@37..69
35 TYPE_KW@[37; 41) "type" 35 TYPE_KW@37..41 "type"
36 WHITESPACE@[41; 42) " " 36 WHITESPACE@41..42 " "
37 NAME@[42; 43) 37 NAME@42..43
38 IDENT@[42; 43) "C" 38 IDENT@42..43 "C"
39 WHITESPACE@[43; 44) " " 39 WHITESPACE@43..44 " "
40 EQ@[44; 45) "=" 40 EQ@44..45 "="
41 WHITESPACE@[45; 46) " " 41 WHITESPACE@45..46 " "
42 FN_POINTER_TYPE@[46; 68) 42 FN_POINTER_TYPE@46..68
43 UNSAFE_KW@[46; 52) "unsafe" 43 UNSAFE_KW@46..52 "unsafe"
44 WHITESPACE@[52; 53) " " 44 WHITESPACE@52..53 " "
45 ABI@[53; 63) 45 ABI@53..63
46 EXTERN_KW@[53; 59) "extern" 46 EXTERN_KW@53..59 "extern"
47 WHITESPACE@[59; 60) " " 47 WHITESPACE@59..60 " "
48 STRING@[60; 63) "\"C\"" 48 STRING@60..63 "\"C\""
49 WHITESPACE@[63; 64) " " 49 WHITESPACE@63..64 " "
50 FN_KW@[64; 66) "fn" 50 FN_KW@64..66 "fn"
51 PARAM_LIST@[66; 68) 51 PARAM_LIST@66..68
52 L_PAREN@[66; 67) "(" 52 L_PAREN@66..67 "("
53 R_PAREN@[67; 68) ")" 53 R_PAREN@67..68 ")"
54 SEMICOLON@[68; 69) ";" 54 SEMICOLON@68..69 ";"
55 WHITESPACE@[69; 70) "\n" 55 WHITESPACE@69..70 "\n"
56 TYPE_ALIAS_DEF@[70; 112) 56 TYPE_ALIAS_DEF@70..112
57 TYPE_KW@[70; 74) "type" 57 TYPE_KW@70..74 "type"
58 WHITESPACE@[74; 75) " " 58 WHITESPACE@74..75 " "
59 NAME@[75; 76) 59 NAME@75..76
60 IDENT@[75; 76) "D" 60 IDENT@75..76 "D"
61 WHITESPACE@[76; 77) " " 61 WHITESPACE@76..77 " "
62 EQ@[77; 78) "=" 62 EQ@77..78 "="
63 WHITESPACE@[78; 79) " " 63 WHITESPACE@78..79 " "
64 FN_POINTER_TYPE@[79; 111) 64 FN_POINTER_TYPE@79..111
65 ABI@[79; 89) 65 ABI@79..89
66 EXTERN_KW@[79; 85) "extern" 66 EXTERN_KW@79..85 "extern"
67 WHITESPACE@[85; 86) " " 67 WHITESPACE@85..86 " "
68 STRING@[86; 89) "\"C\"" 68 STRING@86..89 "\"C\""
69 WHITESPACE@[89; 90) " " 69 WHITESPACE@89..90 " "
70 FN_KW@[90; 92) "fn" 70 FN_KW@90..92 "fn"
71 WHITESPACE@[92; 93) " " 71 WHITESPACE@92..93 " "
72 PARAM_LIST@[93; 105) 72 PARAM_LIST@93..105
73 L_PAREN@[93; 94) "(" 73 L_PAREN@93..94 "("
74 WHITESPACE@[94; 95) " " 74 WHITESPACE@94..95 " "
75 PARAM@[95; 97) 75 PARAM@95..97
76 PATH_TYPE@[95; 97) 76 PATH_TYPE@95..97
77 PATH@[95; 97) 77 PATH@95..97
78 PATH_SEGMENT@[95; 97) 78 PATH_SEGMENT@95..97
79 NAME_REF@[95; 97) 79 NAME_REF@95..97
80 IDENT@[95; 97) "u8" 80 IDENT@95..97 "u8"
81 WHITESPACE@[97; 98) " " 81 WHITESPACE@97..98 " "
82 COMMA@[98; 99) "," 82 COMMA@98..99 ","
83 WHITESPACE@[99; 100) " " 83 WHITESPACE@99..100 " "
84 PARAM@[100; 103) 84 PARAM@100..103
85 DOT3@[100; 103) "..." 85 DOT3@100..103 "..."
86 WHITESPACE@[103; 104) " " 86 WHITESPACE@103..104 " "
87 R_PAREN@[104; 105) ")" 87 R_PAREN@104..105 ")"
88 WHITESPACE@[105; 106) " " 88 WHITESPACE@105..106 " "
89 RET_TYPE@[106; 111) 89 RET_TYPE@106..111
90 THIN_ARROW@[106; 108) "->" 90 THIN_ARROW@106..108 "->"
91 WHITESPACE@[108; 109) " " 91 WHITESPACE@108..109 " "
92 PATH_TYPE@[109; 111) 92 PATH_TYPE@109..111
93 PATH@[109; 111) 93 PATH@109..111
94 PATH_SEGMENT@[109; 111) 94 PATH_SEGMENT@109..111
95 NAME_REF@[109; 111) 95 NAME_REF@109..111
96 IDENT@[109; 111) "u8" 96 IDENT@109..111 "u8"
97 SEMICOLON@[111; 112) ";" 97 SEMICOLON@111..112 ";"
98 WHITESPACE@[112; 113) "\n" 98 WHITESPACE@112..113 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast b/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast
index e6ee20b9a..784fbb592 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0033_reference_type;.rast
@@ -1,50 +1,50 @@
1SOURCE_FILE@[0; 54) 1SOURCE_FILE@0..54
2 TYPE_ALIAS_DEF@[0; 13) 2 TYPE_ALIAS_DEF@0..13
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "A" 6 IDENT@5..6 "A"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 REFERENCE_TYPE@[9; 12) 10 REFERENCE_TYPE@9..12
11 AMP@[9; 10) "&" 11 AMP@9..10 "&"
12 TUPLE_TYPE@[10; 12) 12 TUPLE_TYPE@10..12
13 L_PAREN@[10; 11) "(" 13 L_PAREN@10..11 "("
14 R_PAREN@[11; 12) ")" 14 R_PAREN@11..12 ")"
15 SEMICOLON@[12; 13) ";" 15 SEMICOLON@12..13 ";"
16 WHITESPACE@[13; 14) "\n" 16 WHITESPACE@13..14 "\n"
17 TYPE_ALIAS_DEF@[14; 35) 17 TYPE_ALIAS_DEF@14..35
18 TYPE_KW@[14; 18) "type" 18 TYPE_KW@14..18 "type"
19 WHITESPACE@[18; 19) " " 19 WHITESPACE@18..19 " "
20 NAME@[19; 20) 20 NAME@19..20
21 IDENT@[19; 20) "B" 21 IDENT@19..20 "B"
22 WHITESPACE@[20; 21) " " 22 WHITESPACE@20..21 " "
23 EQ@[21; 22) "=" 23 EQ@21..22 "="
24 WHITESPACE@[22; 23) " " 24 WHITESPACE@22..23 " "
25 REFERENCE_TYPE@[23; 34) 25 REFERENCE_TYPE@23..34
26 AMP@[23; 24) "&" 26 AMP@23..24 "&"
27 LIFETIME@[24; 31) "\'static" 27 LIFETIME@24..31 "\'static"
28 WHITESPACE@[31; 32) " " 28 WHITESPACE@31..32 " "
29 TUPLE_TYPE@[32; 34) 29 TUPLE_TYPE@32..34
30 L_PAREN@[32; 33) "(" 30 L_PAREN@32..33 "("
31 R_PAREN@[33; 34) ")" 31 R_PAREN@33..34 ")"
32 SEMICOLON@[34; 35) ";" 32 SEMICOLON@34..35 ";"
33 WHITESPACE@[35; 36) "\n" 33 WHITESPACE@35..36 "\n"
34 TYPE_ALIAS_DEF@[36; 53) 34 TYPE_ALIAS_DEF@36..53
35 TYPE_KW@[36; 40) "type" 35 TYPE_KW@36..40 "type"
36 WHITESPACE@[40; 41) " " 36 WHITESPACE@40..41 " "
37 NAME@[41; 42) 37 NAME@41..42
38 IDENT@[41; 42) "C" 38 IDENT@41..42 "C"
39 WHITESPACE@[42; 43) " " 39 WHITESPACE@42..43 " "
40 EQ@[43; 44) "=" 40 EQ@43..44 "="
41 WHITESPACE@[44; 45) " " 41 WHITESPACE@44..45 " "
42 REFERENCE_TYPE@[45; 52) 42 REFERENCE_TYPE@45..52
43 AMP@[45; 46) "&" 43 AMP@45..46 "&"
44 MUT_KW@[46; 49) "mut" 44 MUT_KW@46..49 "mut"
45 WHITESPACE@[49; 50) " " 45 WHITESPACE@49..50 " "
46 TUPLE_TYPE@[50; 52) 46 TUPLE_TYPE@50..52
47 L_PAREN@[50; 51) "(" 47 L_PAREN@50..51 "("
48 R_PAREN@[51; 52) ")" 48 R_PAREN@51..52 ")"
49 SEMICOLON@[52; 53) ";" 49 SEMICOLON@52..53 ";"
50 WHITESPACE@[53; 54) "\n" 50 WHITESPACE@53..54 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast
index 4bb95314f..52644da8f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0034_break_expr.rast
@@ -1,55 +1,55 @@
1SOURCE_FILE@[0; 102) 1SOURCE_FILE@0..102
2 FN_DEF@[0; 101) 2 FN_DEF@0..101
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 101) 11 BLOCK_EXPR@9..101
12 BLOCK@[9; 101) 12 BLOCK@9..101
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LOOP_EXPR@[15; 99) 15 LOOP_EXPR@15..99
16 LOOP_KW@[15; 19) "loop" 16 LOOP_KW@15..19 "loop"
17 WHITESPACE@[19; 20) " " 17 WHITESPACE@19..20 " "
18 BLOCK_EXPR@[20; 99) 18 BLOCK_EXPR@20..99
19 BLOCK@[20; 99) 19 BLOCK@20..99
20 L_CURLY@[20; 21) "{" 20 L_CURLY@20..21 "{"
21 WHITESPACE@[21; 30) "\n " 21 WHITESPACE@21..30 "\n "
22 EXPR_STMT@[30; 36) 22 EXPR_STMT@30..36
23 BREAK_EXPR@[30; 35) 23 BREAK_EXPR@30..35
24 BREAK_KW@[30; 35) "break" 24 BREAK_KW@30..35 "break"
25 SEMICOLON@[35; 36) ";" 25 SEMICOLON@35..36 ";"
26 WHITESPACE@[36; 45) "\n " 26 WHITESPACE@36..45 "\n "
27 EXPR_STMT@[45; 54) 27 EXPR_STMT@45..54
28 BREAK_EXPR@[45; 53) 28 BREAK_EXPR@45..53
29 BREAK_KW@[45; 50) "break" 29 BREAK_KW@45..50 "break"
30 WHITESPACE@[50; 51) " " 30 WHITESPACE@50..51 " "
31 LIFETIME@[51; 53) "\'l" 31 LIFETIME@51..53 "\'l"
32 SEMICOLON@[53; 54) ";" 32 SEMICOLON@53..54 ";"
33 WHITESPACE@[54; 63) "\n " 33 WHITESPACE@54..63 "\n "
34 EXPR_STMT@[63; 72) 34 EXPR_STMT@63..72
35 BREAK_EXPR@[63; 71) 35 BREAK_EXPR@63..71
36 BREAK_KW@[63; 68) "break" 36 BREAK_KW@63..68 "break"
37 WHITESPACE@[68; 69) " " 37 WHITESPACE@68..69 " "
38 LITERAL@[69; 71) 38 LITERAL@69..71
39 INT_NUMBER@[69; 71) "92" 39 INT_NUMBER@69..71 "92"
40 SEMICOLON@[71; 72) ";" 40 SEMICOLON@71..72 ";"
41 WHITESPACE@[72; 81) "\n " 41 WHITESPACE@72..81 "\n "
42 EXPR_STMT@[81; 93) 42 EXPR_STMT@81..93
43 BREAK_EXPR@[81; 92) 43 BREAK_EXPR@81..92
44 BREAK_KW@[81; 86) "break" 44 BREAK_KW@81..86 "break"
45 WHITESPACE@[86; 87) " " 45 WHITESPACE@86..87 " "
46 LIFETIME@[87; 89) "\'l" 46 LIFETIME@87..89 "\'l"
47 WHITESPACE@[89; 90) " " 47 WHITESPACE@89..90 " "
48 LITERAL@[90; 92) 48 LITERAL@90..92
49 INT_NUMBER@[90; 92) "92" 49 INT_NUMBER@90..92 "92"
50 SEMICOLON@[92; 93) ";" 50 SEMICOLON@92..93 ";"
51 WHITESPACE@[93; 98) "\n " 51 WHITESPACE@93..98 "\n "
52 R_CURLY@[98; 99) "}" 52 R_CURLY@98..99 "}"
53 WHITESPACE@[99; 100) "\n" 53 WHITESPACE@99..100 "\n"
54 R_CURLY@[100; 101) "}" 54 R_CURLY@100..101 "}"
55 WHITESPACE@[101; 102) "\n" 55 WHITESPACE@101..102 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast
index a7dfe167c..f061c0cac 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0036_unsafe_extern_fn.rast
@@ -1,22 +1,22 @@
1SOURCE_FILE@[0; 30) 1SOURCE_FILE@0..30
2 FN_DEF@[0; 29) 2 FN_DEF@0..29
3 UNSAFE_KW@[0; 6) "unsafe" 3 UNSAFE_KW@0..6 "unsafe"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 ABI@[7; 17) 5 ABI@7..17
6 EXTERN_KW@[7; 13) "extern" 6 EXTERN_KW@7..13 "extern"
7 WHITESPACE@[13; 14) " " 7 WHITESPACE@13..14 " "
8 STRING@[14; 17) "\"C\"" 8 STRING@14..17 "\"C\""
9 WHITESPACE@[17; 18) " " 9 WHITESPACE@17..18 " "
10 FN_KW@[18; 20) "fn" 10 FN_KW@18..20 "fn"
11 WHITESPACE@[20; 21) " " 11 WHITESPACE@20..21 " "
12 NAME@[21; 24) 12 NAME@21..24
13 IDENT@[21; 24) "foo" 13 IDENT@21..24 "foo"
14 PARAM_LIST@[24; 26) 14 PARAM_LIST@24..26
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_EXPR@[27; 29) 18 BLOCK_EXPR@27..29
19 BLOCK@[27; 29) 19 BLOCK@27..29
20 L_CURLY@[27; 28) "{" 20 L_CURLY@27..28 "{"
21 R_CURLY@[28; 29) "}" 21 R_CURLY@28..29 "}"
22 WHITESPACE@[29; 30) "\n" 22 WHITESPACE@29..30 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast
index 1cd7a443f..e25fc8c3e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0037_qual_paths.rast
@@ -1,79 +1,79 @@
1SOURCE_FILE@[0; 71) 1SOURCE_FILE@0..71
2 TYPE_ALIAS_DEF@[0; 26) 2 TYPE_ALIAS_DEF@0..26
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "X" 6 IDENT@5..6 "X"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 PATH_TYPE@[9; 25) 10 PATH_TYPE@9..25
11 PATH@[9; 25) 11 PATH@9..25
12 PATH@[9; 17) 12 PATH@9..17
13 PATH_SEGMENT@[9; 17) 13 PATH_SEGMENT@9..17
14 L_ANGLE@[9; 10) "<" 14 L_ANGLE@9..10 "<"
15 PATH_TYPE@[10; 11) 15 PATH_TYPE@10..11
16 PATH@[10; 11) 16 PATH@10..11
17 PATH_SEGMENT@[10; 11) 17 PATH_SEGMENT@10..11
18 NAME_REF@[10; 11) 18 NAME_REF@10..11
19 IDENT@[10; 11) "A" 19 IDENT@10..11 "A"
20 WHITESPACE@[11; 12) " " 20 WHITESPACE@11..12 " "
21 AS_KW@[12; 14) "as" 21 AS_KW@12..14 "as"
22 WHITESPACE@[14; 15) " " 22 WHITESPACE@14..15 " "
23 PATH_TYPE@[15; 16) 23 PATH_TYPE@15..16
24 PATH@[15; 16) 24 PATH@15..16
25 PATH_SEGMENT@[15; 16) 25 PATH_SEGMENT@15..16
26 NAME_REF@[15; 16) 26 NAME_REF@15..16
27 IDENT@[15; 16) "B" 27 IDENT@15..16 "B"
28 R_ANGLE@[16; 17) ">" 28 R_ANGLE@16..17 ">"
29 COLON2@[17; 19) "::" 29 COLON2@17..19 "::"
30 PATH_SEGMENT@[19; 25) 30 PATH_SEGMENT@19..25
31 NAME_REF@[19; 25) 31 NAME_REF@19..25
32 IDENT@[19; 25) "Output" 32 IDENT@19..25 "Output"
33 SEMICOLON@[25; 26) ";" 33 SEMICOLON@25..26 ";"
34 WHITESPACE@[26; 27) "\n" 34 WHITESPACE@26..27 "\n"
35 FN_DEF@[27; 70) 35 FN_DEF@27..70
36 FN_KW@[27; 29) "fn" 36 FN_KW@27..29 "fn"
37 WHITESPACE@[29; 30) " " 37 WHITESPACE@29..30 " "
38 NAME@[30; 33) 38 NAME@30..33
39 IDENT@[30; 33) "foo" 39 IDENT@30..33 "foo"
40 PARAM_LIST@[33; 35) 40 PARAM_LIST@33..35
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_EXPR@[36; 70) 44 BLOCK_EXPR@36..70
45 BLOCK@[36; 70) 45 BLOCK@36..70
46 L_CURLY@[36; 37) "{" 46 L_CURLY@36..37 "{"
47 WHITESPACE@[37; 38) " " 47 WHITESPACE@37..38 " "
48 EXPR_STMT@[38; 68) 48 EXPR_STMT@38..68
49 CALL_EXPR@[38; 67) 49 CALL_EXPR@38..67
50 PATH_EXPR@[38; 65) 50 PATH_EXPR@38..65
51 PATH@[38; 65) 51 PATH@38..65
52 PATH@[38; 56) 52 PATH@38..56
53 PATH_SEGMENT@[38; 56) 53 PATH_SEGMENT@38..56
54 L_ANGLE@[38; 39) "<" 54 L_ANGLE@38..39 "<"
55 PATH_TYPE@[39; 44) 55 PATH_TYPE@39..44
56 PATH@[39; 44) 56 PATH@39..44
57 PATH_SEGMENT@[39; 44) 57 PATH_SEGMENT@39..44
58 NAME_REF@[39; 44) 58 NAME_REF@39..44
59 IDENT@[39; 44) "usize" 59 IDENT@39..44 "usize"
60 WHITESPACE@[44; 45) " " 60 WHITESPACE@44..45 " "
61 AS_KW@[45; 47) "as" 61 AS_KW@45..47 "as"
62 WHITESPACE@[47; 48) " " 62 WHITESPACE@47..48 " "
63 PATH_TYPE@[48; 55) 63 PATH_TYPE@48..55
64 PATH@[48; 55) 64 PATH@48..55
65 PATH_SEGMENT@[48; 55) 65 PATH_SEGMENT@48..55
66 NAME_REF@[48; 55) 66 NAME_REF@48..55
67 IDENT@[48; 55) "Default" 67 IDENT@48..55 "Default"
68 R_ANGLE@[55; 56) ">" 68 R_ANGLE@55..56 ">"
69 COLON2@[56; 58) "::" 69 COLON2@56..58 "::"
70 PATH_SEGMENT@[58; 65) 70 PATH_SEGMENT@58..65
71 NAME_REF@[58; 65) 71 NAME_REF@58..65
72 IDENT@[58; 65) "default" 72 IDENT@58..65 "default"
73 ARG_LIST@[65; 67) 73 ARG_LIST@65..67
74 L_PAREN@[65; 66) "(" 74 L_PAREN@65..66 "("
75 R_PAREN@[66; 67) ")" 75 R_PAREN@66..67 ")"
76 SEMICOLON@[67; 68) ";" 76 SEMICOLON@67..68 ";"
77 WHITESPACE@[68; 69) " " 77 WHITESPACE@68..69 " "
78 R_CURLY@[69; 70) "}" 78 R_CURLY@69..70 "}"
79 WHITESPACE@[70; 71) "\n" 79 WHITESPACE@70..71 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast
index f5db5a9e6..a1238d610 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0038_full_range_expr.rast
@@ -1,29 +1,29 @@
1SOURCE_FILE@[0; 21) 1SOURCE_FILE@0..21
2 FN_DEF@[0; 20) 2 FN_DEF@0..20
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 20) 11 BLOCK_EXPR@9..20
12 BLOCK@[9; 20) 12 BLOCK@9..20
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 11) " " 14 WHITESPACE@10..11 " "
15 EXPR_STMT@[11; 18) 15 EXPR_STMT@11..18
16 INDEX_EXPR@[11; 17) 16 INDEX_EXPR@11..17
17 PATH_EXPR@[11; 13) 17 PATH_EXPR@11..13
18 PATH@[11; 13) 18 PATH@11..13
19 PATH_SEGMENT@[11; 13) 19 PATH_SEGMENT@11..13
20 NAME_REF@[11; 13) 20 NAME_REF@11..13
21 IDENT@[11; 13) "xs" 21 IDENT@11..13 "xs"
22 L_BRACK@[13; 14) "[" 22 L_BRACK@13..14 "["
23 RANGE_EXPR@[14; 16) 23 RANGE_EXPR@14..16
24 DOT2@[14; 16) ".." 24 DOT2@14..16 ".."
25 R_BRACK@[16; 17) "]" 25 R_BRACK@16..17 "]"
26 SEMICOLON@[17; 18) ";" 26 SEMICOLON@17..18 ";"
27 WHITESPACE@[18; 19) " " 27 WHITESPACE@18..19 " "
28 R_CURLY@[19; 20) "}" 28 R_CURLY@19..20 "}"
29 WHITESPACE@[20; 21) "\n" 29 WHITESPACE@20..21 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast
index 2d9db61b3..69e5fe4bc 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0039_type_arg.rast
@@ -1,55 +1,55 @@
1SOURCE_FILE@[0; 46) 1SOURCE_FILE@0..46
2 TYPE_ALIAS_DEF@[0; 45) 2 TYPE_ALIAS_DEF@0..45
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "A" 6 IDENT@5..6 "A"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 PATH_TYPE@[9; 44) 10 PATH_TYPE@9..44
11 PATH@[9; 44) 11 PATH@9..44
12 PATH_SEGMENT@[9; 44) 12 PATH_SEGMENT@9..44
13 NAME_REF@[9; 10) 13 NAME_REF@9..10
14 IDENT@[9; 10) "B" 14 IDENT@9..10 "B"
15 TYPE_ARG_LIST@[10; 44) 15 TYPE_ARG_LIST@10..44
16 L_ANGLE@[10; 11) "<" 16 L_ANGLE@10..11 "<"
17 LIFETIME_ARG@[11; 18) 17 LIFETIME_ARG@11..18
18 LIFETIME@[11; 18) "\'static" 18 LIFETIME@11..18 "\'static"
19 COMMA@[18; 19) "," 19 COMMA@18..19 ","
20 WHITESPACE@[19; 20) " " 20 WHITESPACE@19..20 " "
21 TYPE_ARG@[20; 23) 21 TYPE_ARG@20..23
22 PATH_TYPE@[20; 23) 22 PATH_TYPE@20..23
23 PATH@[20; 23) 23 PATH@20..23
24 PATH_SEGMENT@[20; 23) 24 PATH_SEGMENT@20..23
25 NAME_REF@[20; 23) 25 NAME_REF@20..23
26 IDENT@[20; 23) "i32" 26 IDENT@20..23 "i32"
27 COMMA@[23; 24) "," 27 COMMA@23..24 ","
28 WHITESPACE@[24; 25) " " 28 WHITESPACE@24..25 " "
29 CONST_ARG@[25; 26) 29 CONST_ARG@25..26
30 INT_NUMBER@[25; 26) "1" 30 INT_NUMBER@25..26 "1"
31 COMMA@[26; 27) "," 31 COMMA@26..27 ","
32 WHITESPACE@[27; 28) " " 32 WHITESPACE@27..28 " "
33 CONST_ARG@[28; 33) 33 CONST_ARG@28..33
34 BLOCK_EXPR@[28; 33) 34 BLOCK_EXPR@28..33
35 BLOCK@[28; 33) 35 BLOCK@28..33
36 L_CURLY@[28; 29) "{" 36 L_CURLY@28..29 "{"
37 WHITESPACE@[29; 30) " " 37 WHITESPACE@29..30 " "
38 LITERAL@[30; 31) 38 LITERAL@30..31
39 INT_NUMBER@[30; 31) "2" 39 INT_NUMBER@30..31 "2"
40 WHITESPACE@[31; 32) " " 40 WHITESPACE@31..32 " "
41 R_CURLY@[32; 33) "}" 41 R_CURLY@32..33 "}"
42 COMMA@[33; 34) "," 42 COMMA@33..34 ","
43 WHITESPACE@[34; 35) " " 43 WHITESPACE@34..35 " "
44 ASSOC_TYPE_ARG@[35; 43) 44 ASSOC_TYPE_ARG@35..43
45 NAME_REF@[35; 39) 45 NAME_REF@35..39
46 IDENT@[35; 39) "Item" 46 IDENT@35..39 "Item"
47 EQ@[39; 40) "=" 47 EQ@39..40 "="
48 PATH_TYPE@[40; 43) 48 PATH_TYPE@40..43
49 PATH@[40; 43) 49 PATH@40..43
50 PATH_SEGMENT@[40; 43) 50 PATH_SEGMENT@40..43
51 NAME_REF@[40; 43) 51 NAME_REF@40..43
52 IDENT@[40; 43) "u64" 52 IDENT@40..43 "u64"
53 R_ANGLE@[43; 44) ">" 53 R_ANGLE@43..44 ">"
54 SEMICOLON@[44; 45) ";" 54 SEMICOLON@44..45 ";"
55 WHITESPACE@[45; 46) "\n" 55 WHITESPACE@45..46 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
index 4c175e210..1a98e2610 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0040_crate_keyword_vis.rast
@@ -1,63 +1,63 @@
1SOURCE_FILE@[0; 71) 1SOURCE_FILE@0..71
2 FN_DEF@[0; 19) 2 FN_DEF@0..19
3 VISIBILITY@[0; 5) 3 VISIBILITY@0..5
4 CRATE_KW@[0; 5) "crate" 4 CRATE_KW@0..5 "crate"
5 WHITESPACE@[5; 6) " " 5 WHITESPACE@5..6 " "
6 FN_KW@[6; 8) "fn" 6 FN_KW@6..8 "fn"
7 WHITESPACE@[8; 9) " " 7 WHITESPACE@8..9 " "
8 NAME@[9; 13) 8 NAME@9..13
9 IDENT@[9; 13) "main" 9 IDENT@9..13 "main"
10 PARAM_LIST@[13; 15) 10 PARAM_LIST@13..15
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_EXPR@[16; 19) 14 BLOCK_EXPR@16..19
15 BLOCK@[16; 19) 15 BLOCK@16..19
16 L_CURLY@[16; 17) "{" 16 L_CURLY@16..17 "{"
17 WHITESPACE@[17; 18) " " 17 WHITESPACE@17..18 " "
18 R_CURLY@[18; 19) "}" 18 R_CURLY@18..19 "}"
19 WHITESPACE@[19; 20) "\n" 19 WHITESPACE@19..20 "\n"
20 STRUCT_DEF@[20; 49) 20 STRUCT_DEF@20..49
21 STRUCT_KW@[20; 26) "struct" 21 STRUCT_KW@20..26 "struct"
22 WHITESPACE@[26; 27) " " 22 WHITESPACE@26..27 " "
23 NAME@[27; 28) 23 NAME@27..28
24 IDENT@[27; 28) "S" 24 IDENT@27..28 "S"
25 WHITESPACE@[28; 29) " " 25 WHITESPACE@28..29 " "
26 RECORD_FIELD_DEF_LIST@[29; 49) 26 RECORD_FIELD_DEF_LIST@29..49
27 L_CURLY@[29; 30) "{" 27 L_CURLY@29..30 "{"
28 WHITESPACE@[30; 31) " " 28 WHITESPACE@30..31 " "
29 RECORD_FIELD_DEF@[31; 47) 29 RECORD_FIELD_DEF@31..47
30 VISIBILITY@[31; 36) 30 VISIBILITY@31..36
31 CRATE_KW@[31; 36) "crate" 31 CRATE_KW@31..36 "crate"
32 WHITESPACE@[36; 37) " " 32 WHITESPACE@36..37 " "
33 NAME@[37; 42) 33 NAME@37..42
34 IDENT@[37; 42) "field" 34 IDENT@37..42 "field"
35 COLON@[42; 43) ":" 35 COLON@42..43 ":"
36 WHITESPACE@[43; 44) " " 36 WHITESPACE@43..44 " "
37 PATH_TYPE@[44; 47) 37 PATH_TYPE@44..47
38 PATH@[44; 47) 38 PATH@44..47
39 PATH_SEGMENT@[44; 47) 39 PATH_SEGMENT@44..47
40 NAME_REF@[44; 47) 40 NAME_REF@44..47
41 IDENT@[44; 47) "u32" 41 IDENT@44..47 "u32"
42 WHITESPACE@[47; 48) " " 42 WHITESPACE@47..48 " "
43 R_CURLY@[48; 49) "}" 43 R_CURLY@48..49 "}"
44 WHITESPACE@[49; 50) "\n" 44 WHITESPACE@49..50 "\n"
45 STRUCT_DEF@[50; 70) 45 STRUCT_DEF@50..70
46 STRUCT_KW@[50; 56) "struct" 46 STRUCT_KW@50..56 "struct"
47 WHITESPACE@[56; 57) " " 47 WHITESPACE@56..57 " "
48 NAME@[57; 58) 48 NAME@57..58
49 IDENT@[57; 58) "T" 49 IDENT@57..58 "T"
50 TUPLE_FIELD_DEF_LIST@[58; 69) 50 TUPLE_FIELD_DEF_LIST@58..69
51 L_PAREN@[58; 59) "(" 51 L_PAREN@58..59 "("
52 TUPLE_FIELD_DEF@[59; 68) 52 TUPLE_FIELD_DEF@59..68
53 VISIBILITY@[59; 64) 53 VISIBILITY@59..64
54 CRATE_KW@[59; 64) "crate" 54 CRATE_KW@59..64 "crate"
55 WHITESPACE@[64; 65) " " 55 WHITESPACE@64..65 " "
56 PATH_TYPE@[65; 68) 56 PATH_TYPE@65..68
57 PATH@[65; 68) 57 PATH@65..68
58 PATH_SEGMENT@[65; 68) 58 PATH_SEGMENT@65..68
59 NAME_REF@[65; 68) 59 NAME_REF@65..68
60 IDENT@[65; 68) "u32" 60 IDENT@65..68 "u32"
61 R_PAREN@[68; 69) ")" 61 R_PAREN@68..69 ")"
62 SEMICOLON@[69; 70) ";" 62 SEMICOLON@69..70 ";"
63 WHITESPACE@[70; 71) "\n" 63 WHITESPACE@70..71 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast b/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast
index 578361715..1ae791361 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0041_trait_item.rast
@@ -1,125 +1,125 @@
1SOURCE_FILE@[0; 101) 1SOURCE_FILE@0..101
2 TRAIT_DEF@[0; 41) 2 TRAIT_DEF@0..41
3 TRAIT_KW@[0; 5) "trait" 3 TRAIT_KW@0..5 "trait"
4 WHITESPACE@[5; 6) " " 4 WHITESPACE@5..6 " "
5 NAME@[6; 7) 5 NAME@6..7
6 IDENT@[6; 7) "T" 6 IDENT@6..7 "T"
7 TYPE_PARAM_LIST@[7; 10) 7 TYPE_PARAM_LIST@7..10
8 L_ANGLE@[7; 8) "<" 8 L_ANGLE@7..8 "<"
9 TYPE_PARAM@[8; 9) 9 TYPE_PARAM@8..9
10 NAME@[8; 9) 10 NAME@8..9
11 IDENT@[8; 9) "U" 11 IDENT@8..9 "U"
12 R_ANGLE@[9; 10) ">" 12 R_ANGLE@9..10 ">"
13 COLON@[10; 11) ":" 13 COLON@10..11 ":"
14 WHITESPACE@[11; 12) " " 14 WHITESPACE@11..12 " "
15 TYPE_BOUND_LIST@[12; 24) 15 TYPE_BOUND_LIST@12..24
16 TYPE_BOUND@[12; 16) 16 TYPE_BOUND@12..16
17 PATH_TYPE@[12; 16) 17 PATH_TYPE@12..16
18 PATH@[12; 16) 18 PATH@12..16
19 PATH_SEGMENT@[12; 16) 19 PATH_SEGMENT@12..16
20 NAME_REF@[12; 16) 20 NAME_REF@12..16
21 IDENT@[12; 16) "Hash" 21 IDENT@12..16 "Hash"
22 WHITESPACE@[16; 17) " " 22 WHITESPACE@16..17 " "
23 PLUS@[17; 18) "+" 23 PLUS@17..18 "+"
24 WHITESPACE@[18; 19) " " 24 WHITESPACE@18..19 " "
25 TYPE_BOUND@[19; 24) 25 TYPE_BOUND@19..24
26 PATH_TYPE@[19; 24) 26 PATH_TYPE@19..24
27 PATH@[19; 24) 27 PATH@19..24
28 PATH_SEGMENT@[19; 24) 28 PATH_SEGMENT@19..24
29 NAME_REF@[19; 24) 29 NAME_REF@19..24
30 IDENT@[19; 24) "Clone" 30 IDENT@19..24 "Clone"
31 WHITESPACE@[24; 25) " " 31 WHITESPACE@24..25 " "
32 WHERE_CLAUSE@[25; 38) 32 WHERE_CLAUSE@25..38
33 WHERE_KW@[25; 30) "where" 33 WHERE_KW@25..30 "where"
34 WHITESPACE@[30; 31) " " 34 WHITESPACE@30..31 " "
35 WHERE_PRED@[31; 38) 35 WHERE_PRED@31..38
36 PATH_TYPE@[31; 32) 36 PATH_TYPE@31..32
37 PATH@[31; 32) 37 PATH@31..32
38 PATH_SEGMENT@[31; 32) 38 PATH_SEGMENT@31..32
39 NAME_REF@[31; 32) 39 NAME_REF@31..32
40 IDENT@[31; 32) "U" 40 IDENT@31..32 "U"
41 COLON@[32; 33) ":" 41 COLON@32..33 ":"
42 WHITESPACE@[33; 34) " " 42 WHITESPACE@33..34 " "
43 TYPE_BOUND_LIST@[34; 38) 43 TYPE_BOUND_LIST@34..38
44 TYPE_BOUND@[34; 38) 44 TYPE_BOUND@34..38
45 PATH_TYPE@[34; 38) 45 PATH_TYPE@34..38
46 PATH@[34; 38) 46 PATH@34..38
47 PATH_SEGMENT@[34; 38) 47 PATH_SEGMENT@34..38
48 NAME_REF@[34; 38) 48 NAME_REF@34..38
49 IDENT@[34; 38) "Copy" 49 IDENT@34..38 "Copy"
50 WHITESPACE@[38; 39) " " 50 WHITESPACE@38..39 " "
51 ITEM_LIST@[39; 41) 51 ITEM_LIST@39..41
52 L_CURLY@[39; 40) "{" 52 L_CURLY@39..40 "{"
53 R_CURLY@[40; 41) "}" 53 R_CURLY@40..41 "}"
54 WHITESPACE@[41; 42) "\n" 54 WHITESPACE@41..42 "\n"
55 TRAIT_DEF@[42; 100) 55 TRAIT_DEF@42..100
56 TRAIT_KW@[42; 47) "trait" 56 TRAIT_KW@42..47 "trait"
57 WHITESPACE@[47; 48) " " 57 WHITESPACE@47..48 " "
58 NAME@[48; 49) 58 NAME@48..49
59 IDENT@[48; 49) "X" 59 IDENT@48..49 "X"
60 TYPE_PARAM_LIST@[49; 69) 60 TYPE_PARAM_LIST@49..69
61 L_ANGLE@[49; 50) "<" 61 L_ANGLE@49..50 "<"
62 TYPE_PARAM@[50; 68) 62 TYPE_PARAM@50..68
63 NAME@[50; 51) 63 NAME@50..51
64 IDENT@[50; 51) "U" 64 IDENT@50..51 "U"
65 COLON@[51; 52) ":" 65 COLON@51..52 ":"
66 WHITESPACE@[52; 53) " " 66 WHITESPACE@52..53 " "
67 TYPE_BOUND_LIST@[53; 68) 67 TYPE_BOUND_LIST@53..68
68 TYPE_BOUND@[53; 58) 68 TYPE_BOUND@53..58
69 PATH_TYPE@[53; 58) 69 PATH_TYPE@53..58
70 PATH@[53; 58) 70 PATH@53..58
71 PATH_SEGMENT@[53; 58) 71 PATH_SEGMENT@53..58
72 NAME_REF@[53; 58) 72 NAME_REF@53..58
73 IDENT@[53; 58) "Debug" 73 IDENT@53..58 "Debug"
74 WHITESPACE@[58; 59) " " 74 WHITESPACE@58..59 " "
75 PLUS@[59; 60) "+" 75 PLUS@59..60 "+"
76 WHITESPACE@[60; 61) " " 76 WHITESPACE@60..61 " "
77 TYPE_BOUND@[61; 68) 77 TYPE_BOUND@61..68
78 PATH_TYPE@[61; 68) 78 PATH_TYPE@61..68
79 PATH@[61; 68) 79 PATH@61..68
80 PATH_SEGMENT@[61; 68) 80 PATH_SEGMENT@61..68
81 NAME_REF@[61; 68) 81 NAME_REF@61..68
82 IDENT@[61; 68) "Display" 82 IDENT@61..68 "Display"
83 R_ANGLE@[68; 69) ">" 83 R_ANGLE@68..69 ">"
84 COLON@[69; 70) ":" 84 COLON@69..70 ":"
85 WHITESPACE@[70; 71) " " 85 WHITESPACE@70..71 " "
86 TYPE_BOUND_LIST@[71; 83) 86 TYPE_BOUND_LIST@71..83
87 TYPE_BOUND@[71; 75) 87 TYPE_BOUND@71..75
88 PATH_TYPE@[71; 75) 88 PATH_TYPE@71..75
89 PATH@[71; 75) 89 PATH@71..75
90 PATH_SEGMENT@[71; 75) 90 PATH_SEGMENT@71..75
91 NAME_REF@[71; 75) 91 NAME_REF@71..75
92 IDENT@[71; 75) "Hash" 92 IDENT@71..75 "Hash"
93 WHITESPACE@[75; 76) " " 93 WHITESPACE@75..76 " "
94 PLUS@[76; 77) "+" 94 PLUS@76..77 "+"
95 WHITESPACE@[77; 78) " " 95 WHITESPACE@77..78 " "
96 TYPE_BOUND@[78; 83) 96 TYPE_BOUND@78..83
97 PATH_TYPE@[78; 83) 97 PATH_TYPE@78..83
98 PATH@[78; 83) 98 PATH@78..83
99 PATH_SEGMENT@[78; 83) 99 PATH_SEGMENT@78..83
100 NAME_REF@[78; 83) 100 NAME_REF@78..83
101 IDENT@[78; 83) "Clone" 101 IDENT@78..83 "Clone"
102 WHITESPACE@[83; 84) " " 102 WHITESPACE@83..84 " "
103 WHERE_CLAUSE@[84; 97) 103 WHERE_CLAUSE@84..97
104 WHERE_KW@[84; 89) "where" 104 WHERE_KW@84..89 "where"
105 WHITESPACE@[89; 90) " " 105 WHITESPACE@89..90 " "
106 WHERE_PRED@[90; 97) 106 WHERE_PRED@90..97
107 PATH_TYPE@[90; 91) 107 PATH_TYPE@90..91
108 PATH@[90; 91) 108 PATH@90..91
109 PATH_SEGMENT@[90; 91) 109 PATH_SEGMENT@90..91
110 NAME_REF@[90; 91) 110 NAME_REF@90..91
111 IDENT@[90; 91) "U" 111 IDENT@90..91 "U"
112 COLON@[91; 92) ":" 112 COLON@91..92 ":"
113 WHITESPACE@[92; 93) " " 113 WHITESPACE@92..93 " "
114 TYPE_BOUND_LIST@[93; 97) 114 TYPE_BOUND_LIST@93..97
115 TYPE_BOUND@[93; 97) 115 TYPE_BOUND@93..97
116 PATH_TYPE@[93; 97) 116 PATH_TYPE@93..97
117 PATH@[93; 97) 117 PATH@93..97
118 PATH_SEGMENT@[93; 97) 118 PATH_SEGMENT@93..97
119 NAME_REF@[93; 97) 119 NAME_REF@93..97
120 IDENT@[93; 97) "Copy" 120 IDENT@93..97 "Copy"
121 WHITESPACE@[97; 98) " " 121 WHITESPACE@97..98 " "
122 ITEM_LIST@[98; 100) 122 ITEM_LIST@98..100
123 L_CURLY@[98; 99) "{" 123 L_CURLY@98..99 "{"
124 R_CURLY@[99; 100) "}" 124 R_CURLY@99..100 "}"
125 WHITESPACE@[100; 101) "\n" 125 WHITESPACE@100..101 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast
index f9e677a03..bbf6dc494 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0042_call_expr.rast
@@ -1,148 +1,148 @@
1SOURCE_FILE@[0; 118) 1SOURCE_FILE@0..118
2 FN_DEF@[0; 117) 2 FN_DEF@0..117
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 117) 11 BLOCK_EXPR@9..117
12 BLOCK@[9; 117) 12 BLOCK@9..117
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 27) 15 LET_STMT@15..27
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 PLACEHOLDER_PAT@[19; 20) 18 PLACEHOLDER_PAT@19..20
19 UNDERSCORE@[19; 20) "_" 19 UNDERSCORE@19..20 "_"
20 WHITESPACE@[20; 21) " " 20 WHITESPACE@20..21 " "
21 EQ@[21; 22) "=" 21 EQ@21..22 "="
22 WHITESPACE@[22; 23) " " 22 WHITESPACE@22..23 " "
23 CALL_EXPR@[23; 26) 23 CALL_EXPR@23..26
24 PATH_EXPR@[23; 24) 24 PATH_EXPR@23..24
25 PATH@[23; 24) 25 PATH@23..24
26 PATH_SEGMENT@[23; 24) 26 PATH_SEGMENT@23..24
27 NAME_REF@[23; 24) 27 NAME_REF@23..24
28 IDENT@[23; 24) "f" 28 IDENT@23..24 "f"
29 ARG_LIST@[24; 26) 29 ARG_LIST@24..26
30 L_PAREN@[24; 25) "(" 30 L_PAREN@24..25 "("
31 R_PAREN@[25; 26) ")" 31 R_PAREN@25..26 ")"
32 SEMICOLON@[26; 27) ";" 32 SEMICOLON@26..27 ";"
33 WHITESPACE@[27; 32) "\n " 33 WHITESPACE@27..32 "\n "
34 LET_STMT@[32; 54) 34 LET_STMT@32..54
35 LET_KW@[32; 35) "let" 35 LET_KW@32..35 "let"
36 WHITESPACE@[35; 36) " " 36 WHITESPACE@35..36 " "
37 PLACEHOLDER_PAT@[36; 37) 37 PLACEHOLDER_PAT@36..37
38 UNDERSCORE@[36; 37) "_" 38 UNDERSCORE@36..37 "_"
39 WHITESPACE@[37; 38) " " 39 WHITESPACE@37..38 " "
40 EQ@[38; 39) "=" 40 EQ@38..39 "="
41 WHITESPACE@[39; 40) " " 41 WHITESPACE@39..40 " "
42 CALL_EXPR@[40; 53) 42 CALL_EXPR@40..53
43 CALL_EXPR@[40; 46) 43 CALL_EXPR@40..46
44 CALL_EXPR@[40; 43) 44 CALL_EXPR@40..43
45 PATH_EXPR@[40; 41) 45 PATH_EXPR@40..41
46 PATH@[40; 41) 46 PATH@40..41
47 PATH_SEGMENT@[40; 41) 47 PATH_SEGMENT@40..41
48 NAME_REF@[40; 41) 48 NAME_REF@40..41
49 IDENT@[40; 41) "f" 49 IDENT@40..41 "f"
50 ARG_LIST@[41; 43) 50 ARG_LIST@41..43
51 L_PAREN@[41; 42) "(" 51 L_PAREN@41..42 "("
52 R_PAREN@[42; 43) ")" 52 R_PAREN@42..43 ")"
53 ARG_LIST@[43; 46) 53 ARG_LIST@43..46
54 L_PAREN@[43; 44) "(" 54 L_PAREN@43..44 "("
55 LITERAL@[44; 45) 55 LITERAL@44..45
56 INT_NUMBER@[44; 45) "1" 56 INT_NUMBER@44..45 "1"
57 R_PAREN@[45; 46) ")" 57 R_PAREN@45..46 ")"
58 ARG_LIST@[46; 53) 58 ARG_LIST@46..53
59 L_PAREN@[46; 47) "(" 59 L_PAREN@46..47 "("
60 LITERAL@[47; 48) 60 LITERAL@47..48
61 INT_NUMBER@[47; 48) "1" 61 INT_NUMBER@47..48 "1"
62 COMMA@[48; 49) "," 62 COMMA@48..49 ","
63 WHITESPACE@[49; 50) " " 63 WHITESPACE@49..50 " "
64 LITERAL@[50; 51) 64 LITERAL@50..51
65 INT_NUMBER@[50; 51) "2" 65 INT_NUMBER@50..51 "2"
66 COMMA@[51; 52) "," 66 COMMA@51..52 ","
67 R_PAREN@[52; 53) ")" 67 R_PAREN@52..53 ")"
68 SEMICOLON@[53; 54) ";" 68 SEMICOLON@53..54 ";"
69 WHITESPACE@[54; 59) "\n " 69 WHITESPACE@54..59 "\n "
70 LET_STMT@[59; 84) 70 LET_STMT@59..84
71 LET_KW@[59; 62) "let" 71 LET_KW@59..62 "let"
72 WHITESPACE@[62; 63) " " 72 WHITESPACE@62..63 " "
73 PLACEHOLDER_PAT@[63; 64) 73 PLACEHOLDER_PAT@63..64
74 UNDERSCORE@[63; 64) "_" 74 UNDERSCORE@63..64 "_"
75 WHITESPACE@[64; 65) " " 75 WHITESPACE@64..65 " "
76 EQ@[65; 66) "=" 76 EQ@65..66 "="
77 WHITESPACE@[66; 67) " " 77 WHITESPACE@66..67 " "
78 CALL_EXPR@[67; 83) 78 CALL_EXPR@67..83
79 PATH_EXPR@[67; 68) 79 PATH_EXPR@67..68
80 PATH@[67; 68) 80 PATH@67..68
81 PATH_SEGMENT@[67; 68) 81 PATH_SEGMENT@67..68
82 NAME_REF@[67; 68) 82 NAME_REF@67..68
83 IDENT@[67; 68) "f" 83 IDENT@67..68 "f"
84 ARG_LIST@[68; 83) 84 ARG_LIST@68..83
85 L_PAREN@[68; 69) "(" 85 L_PAREN@68..69 "("
86 CALL_EXPR@[69; 82) 86 CALL_EXPR@69..82
87 PATH_EXPR@[69; 80) 87 PATH_EXPR@69..80
88 PATH@[69; 80) 88 PATH@69..80
89 PATH@[69; 74) 89 PATH@69..74
90 PATH_SEGMENT@[69; 74) 90 PATH_SEGMENT@69..74
91 L_ANGLE@[69; 70) "<" 91 L_ANGLE@69..70 "<"
92 PATH_TYPE@[70; 73) 92 PATH_TYPE@70..73
93 PATH@[70; 73) 93 PATH@70..73
94 PATH_SEGMENT@[70; 73) 94 PATH_SEGMENT@70..73
95 NAME_REF@[70; 73) 95 NAME_REF@70..73
96 IDENT@[70; 73) "Foo" 96 IDENT@70..73 "Foo"
97 R_ANGLE@[73; 74) ">" 97 R_ANGLE@73..74 ">"
98 COLON2@[74; 76) "::" 98 COLON2@74..76 "::"
99 PATH_SEGMENT@[76; 80) 99 PATH_SEGMENT@76..80
100 NAME_REF@[76; 80) 100 NAME_REF@76..80
101 IDENT@[76; 80) "func" 101 IDENT@76..80 "func"
102 ARG_LIST@[80; 82) 102 ARG_LIST@80..82
103 L_PAREN@[80; 81) "(" 103 L_PAREN@80..81 "("
104 R_PAREN@[81; 82) ")" 104 R_PAREN@81..82 ")"
105 R_PAREN@[82; 83) ")" 105 R_PAREN@82..83 ")"
106 SEMICOLON@[83; 84) ";" 106 SEMICOLON@83..84 ";"
107 WHITESPACE@[84; 89) "\n " 107 WHITESPACE@84..89 "\n "
108 EXPR_STMT@[89; 115) 108 EXPR_STMT@89..115
109 CALL_EXPR@[89; 114) 109 CALL_EXPR@89..114
110 PATH_EXPR@[89; 90) 110 PATH_EXPR@89..90
111 PATH@[89; 90) 111 PATH@89..90
112 PATH_SEGMENT@[89; 90) 112 PATH_SEGMENT@89..90
113 NAME_REF@[89; 90) 113 NAME_REF@89..90
114 IDENT@[89; 90) "f" 114 IDENT@89..90 "f"
115 ARG_LIST@[90; 114) 115 ARG_LIST@90..114
116 L_PAREN@[90; 91) "(" 116 L_PAREN@90..91 "("
117 CALL_EXPR@[91; 113) 117 CALL_EXPR@91..113
118 PATH_EXPR@[91; 111) 118 PATH_EXPR@91..111
119 PATH@[91; 111) 119 PATH@91..111
120 PATH@[91; 105) 120 PATH@91..105
121 PATH_SEGMENT@[91; 105) 121 PATH_SEGMENT@91..105
122 L_ANGLE@[91; 92) "<" 122 L_ANGLE@91..92 "<"
123 PATH_TYPE@[92; 95) 123 PATH_TYPE@92..95
124 PATH@[92; 95) 124 PATH@92..95
125 PATH_SEGMENT@[92; 95) 125 PATH_SEGMENT@92..95
126 NAME_REF@[92; 95) 126 NAME_REF@92..95
127 IDENT@[92; 95) "Foo" 127 IDENT@92..95 "Foo"
128 WHITESPACE@[95; 96) " " 128 WHITESPACE@95..96 " "
129 AS_KW@[96; 98) "as" 129 AS_KW@96..98 "as"
130 WHITESPACE@[98; 99) " " 130 WHITESPACE@98..99 " "
131 PATH_TYPE@[99; 104) 131 PATH_TYPE@99..104
132 PATH@[99; 104) 132 PATH@99..104
133 PATH_SEGMENT@[99; 104) 133 PATH_SEGMENT@99..104
134 NAME_REF@[99; 104) 134 NAME_REF@99..104
135 IDENT@[99; 104) "Trait" 135 IDENT@99..104 "Trait"
136 R_ANGLE@[104; 105) ">" 136 R_ANGLE@104..105 ">"
137 COLON2@[105; 107) "::" 137 COLON2@105..107 "::"
138 PATH_SEGMENT@[107; 111) 138 PATH_SEGMENT@107..111
139 NAME_REF@[107; 111) 139 NAME_REF@107..111
140 IDENT@[107; 111) "func" 140 IDENT@107..111 "func"
141 ARG_LIST@[111; 113) 141 ARG_LIST@111..113
142 L_PAREN@[111; 112) "(" 142 L_PAREN@111..112 "("
143 R_PAREN@[112; 113) ")" 143 R_PAREN@112..113 ")"
144 R_PAREN@[113; 114) ")" 144 R_PAREN@113..114 ")"
145 SEMICOLON@[114; 115) ";" 145 SEMICOLON@114..115 ";"
146 WHITESPACE@[115; 116) "\n" 146 WHITESPACE@115..116 "\n"
147 R_CURLY@[116; 117) "}" 147 R_CURLY@116..117 "}"
148 WHITESPACE@[117; 118) "\n" 148 WHITESPACE@117..118 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast b/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast
index 580f29cfb..f0e09d40d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0043_use_alias.rast
@@ -1,138 +1,138 @@
1SOURCE_FILE@[0; 198) 1SOURCE_FILE@0..198
2 USE_ITEM@[0; 28) 2 USE_ITEM@0..28
3 USE_KW@[0; 3) "use" 3 USE_KW@0..3 "use"
4 WHITESPACE@[3; 4) " " 4 WHITESPACE@3..4 " "
5 USE_TREE@[4; 27) 5 USE_TREE@4..27
6 PATH@[4; 14) 6 PATH@4..14
7 PATH@[4; 8) 7 PATH@4..8
8 PATH_SEGMENT@[4; 8) 8 PATH_SEGMENT@4..8
9 NAME_REF@[4; 8) 9 NAME_REF@4..8
10 IDENT@[4; 8) "some" 10 IDENT@4..8 "some"
11 COLON2@[8; 10) "::" 11 COLON2@8..10 "::"
12 PATH_SEGMENT@[10; 14) 12 PATH_SEGMENT@10..14
13 NAME_REF@[10; 14) 13 NAME_REF@10..14
14 IDENT@[10; 14) "path" 14 IDENT@10..14 "path"
15 WHITESPACE@[14; 15) " " 15 WHITESPACE@14..15 " "
16 ALIAS@[15; 27) 16 ALIAS@15..27
17 AS_KW@[15; 17) "as" 17 AS_KW@15..17 "as"
18 WHITESPACE@[17; 18) " " 18 WHITESPACE@17..18 " "
19 NAME@[18; 27) 19 NAME@18..27
20 IDENT@[18; 27) "some_name" 20 IDENT@18..27 "some_name"
21 SEMICOLON@[27; 28) ";" 21 SEMICOLON@27..28 ";"
22 WHITESPACE@[28; 29) "\n" 22 WHITESPACE@28..29 "\n"
23 USE_ITEM@[29; 181) 23 USE_ITEM@29..181
24 USE_KW@[29; 32) "use" 24 USE_KW@29..32 "use"
25 WHITESPACE@[32; 33) " " 25 WHITESPACE@32..33 " "
26 USE_TREE@[33; 180) 26 USE_TREE@33..180
27 PATH@[33; 37) 27 PATH@33..37
28 PATH_SEGMENT@[33; 37) 28 PATH_SEGMENT@33..37
29 NAME_REF@[33; 37) 29 NAME_REF@33..37
30 IDENT@[33; 37) "some" 30 IDENT@33..37 "some"
31 COLON2@[37; 39) "::" 31 COLON2@37..39 "::"
32 USE_TREE_LIST@[39; 180) 32 USE_TREE_LIST@39..180
33 L_CURLY@[39; 40) "{" 33 L_CURLY@39..40 "{"
34 WHITESPACE@[40; 42) "\n " 34 WHITESPACE@40..42 "\n "
35 USE_TREE@[42; 72) 35 USE_TREE@42..72
36 PATH@[42; 53) 36 PATH@42..53
37 PATH@[42; 47) 37 PATH@42..47
38 PATH_SEGMENT@[42; 47) 38 PATH_SEGMENT@42..47
39 NAME_REF@[42; 47) 39 NAME_REF@42..47
40 IDENT@[42; 47) "other" 40 IDENT@42..47 "other"
41 COLON2@[47; 49) "::" 41 COLON2@47..49 "::"
42 PATH_SEGMENT@[49; 53) 42 PATH_SEGMENT@49..53
43 NAME_REF@[49; 53) 43 NAME_REF@49..53
44 IDENT@[49; 53) "path" 44 IDENT@49..53 "path"
45 WHITESPACE@[53; 54) " " 45 WHITESPACE@53..54 " "
46 ALIAS@[54; 72) 46 ALIAS@54..72
47 AS_KW@[54; 56) "as" 47 AS_KW@54..56 "as"
48 WHITESPACE@[56; 57) " " 48 WHITESPACE@56..57 " "
49 NAME@[57; 72) 49 NAME@57..72
50 IDENT@[57; 72) "some_other_name" 50 IDENT@57..72 "some_other_name"
51 COMMA@[72; 73) "," 51 COMMA@72..73 ","
52 WHITESPACE@[73; 75) "\n " 52 WHITESPACE@73..75 "\n "
53 USE_TREE@[75; 108) 53 USE_TREE@75..108
54 PATH@[75; 90) 54 PATH@75..90
55 PATH@[75; 84) 55 PATH@75..84
56 PATH_SEGMENT@[75; 84) 56 PATH_SEGMENT@75..84
57 NAME_REF@[75; 84) 57 NAME_REF@75..84
58 IDENT@[75; 84) "different" 58 IDENT@75..84 "different"
59 COLON2@[84; 86) "::" 59 COLON2@84..86 "::"
60 PATH_SEGMENT@[86; 90) 60 PATH_SEGMENT@86..90
61 NAME_REF@[86; 90) 61 NAME_REF@86..90
62 IDENT@[86; 90) "path" 62 IDENT@86..90 "path"
63 WHITESPACE@[90; 91) " " 63 WHITESPACE@90..91 " "
64 ALIAS@[91; 108) 64 ALIAS@91..108
65 AS_KW@[91; 93) "as" 65 AS_KW@91..93 "as"
66 WHITESPACE@[93; 94) " " 66 WHITESPACE@93..94 " "
67 NAME@[94; 108) 67 NAME@94..108
68 IDENT@[94; 108) "different_name" 68 IDENT@94..108 "different_name"
69 COMMA@[108; 109) "," 69 COMMA@108..109 ","
70 WHITESPACE@[109; 111) "\n " 70 WHITESPACE@109..111 "\n "
71 USE_TREE@[111; 129) 71 USE_TREE@111..129
72 PATH@[111; 129) 72 PATH@111..129
73 PATH@[111; 123) 73 PATH@111..123
74 PATH@[111; 114) 74 PATH@111..114
75 PATH_SEGMENT@[111; 114) 75 PATH_SEGMENT@111..114
76 NAME_REF@[111; 114) 76 NAME_REF@111..114
77 IDENT@[111; 114) "yet" 77 IDENT@111..114 "yet"
78 COLON2@[114; 116) "::" 78 COLON2@114..116 "::"
79 PATH_SEGMENT@[116; 123) 79 PATH_SEGMENT@116..123
80 NAME_REF@[116; 123) 80 NAME_REF@116..123
81 IDENT@[116; 123) "another" 81 IDENT@116..123 "another"
82 COLON2@[123; 125) "::" 82 COLON2@123..125 "::"
83 PATH_SEGMENT@[125; 129) 83 PATH_SEGMENT@125..129
84 NAME_REF@[125; 129) 84 NAME_REF@125..129
85 IDENT@[125; 129) "path" 85 IDENT@125..129 "path"
86 COMMA@[129; 130) "," 86 COMMA@129..130 ","
87 WHITESPACE@[130; 132) "\n " 87 WHITESPACE@130..132 "\n "
88 USE_TREE@[132; 178) 88 USE_TREE@132..178
89 PATH@[132; 175) 89 PATH@132..175
90 PATH@[132; 164) 90 PATH@132..164
91 PATH@[132; 158) 91 PATH@132..158
92 PATH@[132; 148) 92 PATH@132..148
93 PATH@[132; 144) 93 PATH@132..144
94 PATH@[132; 139) 94 PATH@132..139
95 PATH_SEGMENT@[132; 139) 95 PATH_SEGMENT@132..139
96 NAME_REF@[132; 139) 96 NAME_REF@132..139
97 IDENT@[132; 139) "running" 97 IDENT@132..139 "running"
98 COLON2@[139; 141) "::" 98 COLON2@139..141 "::"
99 PATH_SEGMENT@[141; 144) 99 PATH_SEGMENT@141..144
100 NAME_REF@[141; 144) 100 NAME_REF@141..144
101 IDENT@[141; 144) "out" 101 IDENT@141..144 "out"
102 COLON2@[144; 146) "::" 102 COLON2@144..146 "::"
103 PATH_SEGMENT@[146; 148) 103 PATH_SEGMENT@146..148
104 NAME_REF@[146; 148) 104 NAME_REF@146..148
105 IDENT@[146; 148) "of" 105 IDENT@146..148 "of"
106 COLON2@[148; 150) "::" 106 COLON2@148..150 "::"
107 PATH_SEGMENT@[150; 158) 107 PATH_SEGMENT@150..158
108 NAME_REF@[150; 158) 108 NAME_REF@150..158
109 IDENT@[150; 158) "synonyms" 109 IDENT@150..158 "synonyms"
110 COLON2@[158; 160) "::" 110 COLON2@158..160 "::"
111 PATH_SEGMENT@[160; 164) 111 PATH_SEGMENT@160..164
112 NAME_REF@[160; 164) 112 NAME_REF@160..164
113 IDENT@[160; 164) "for_" 113 IDENT@160..164 "for_"
114 COLON2@[164; 166) "::" 114 COLON2@164..166 "::"
115 PATH_SEGMENT@[166; 175) 115 PATH_SEGMENT@166..175
116 NAME_REF@[166; 175) 116 NAME_REF@166..175
117 IDENT@[166; 175) "different" 117 IDENT@166..175 "different"
118 COLON2@[175; 177) "::" 118 COLON2@175..177 "::"
119 STAR@[177; 178) "*" 119 STAR@177..178 "*"
120 WHITESPACE@[178; 179) "\n" 120 WHITESPACE@178..179 "\n"
121 R_CURLY@[179; 180) "}" 121 R_CURLY@179..180 "}"
122 SEMICOLON@[180; 181) ";" 122 SEMICOLON@180..181 ";"
123 WHITESPACE@[181; 182) "\n" 123 WHITESPACE@181..182 "\n"
124 USE_ITEM@[182; 197) 124 USE_ITEM@182..197
125 USE_KW@[182; 185) "use" 125 USE_KW@182..185 "use"
126 WHITESPACE@[185; 186) " " 126 WHITESPACE@185..186 " "
127 USE_TREE@[186; 196) 127 USE_TREE@186..196
128 PATH@[186; 191) 128 PATH@186..191
129 PATH_SEGMENT@[186; 191) 129 PATH_SEGMENT@186..191
130 NAME_REF@[186; 191) 130 NAME_REF@186..191
131 IDENT@[186; 191) "Trait" 131 IDENT@186..191 "Trait"
132 WHITESPACE@[191; 192) " " 132 WHITESPACE@191..192 " "
133 ALIAS@[192; 196) 133 ALIAS@192..196
134 AS_KW@[192; 194) "as" 134 AS_KW@192..194 "as"
135 WHITESPACE@[194; 195) " " 135 WHITESPACE@194..195 " "
136 UNDERSCORE@[195; 196) "_" 136 UNDERSCORE@195..196 "_"
137 SEMICOLON@[196; 197) ";" 137 SEMICOLON@196..197 ";"
138 WHITESPACE@[197; 198) "\n" 138 WHITESPACE@197..198 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast b/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast
index e75d569f0..a454dfc3a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0044_block_items.rast
@@ -1,30 +1,30 @@
1SOURCE_FILE@[0; 21) 1SOURCE_FILE@0..21
2 FN_DEF@[0; 20) 2 FN_DEF@0..20
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 4) 5 NAME@3..4
6 IDENT@[3; 4) "a" 6 IDENT@3..4 "a"
7 PARAM_LIST@[4; 6) 7 PARAM_LIST@4..6
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_EXPR@[7; 20) 11 BLOCK_EXPR@7..20
12 BLOCK@[7; 20) 12 BLOCK@7..20
13 L_CURLY@[7; 8) "{" 13 L_CURLY@7..8 "{"
14 WHITESPACE@[8; 9) " " 14 WHITESPACE@8..9 " "
15 FN_DEF@[9; 18) 15 FN_DEF@9..18
16 FN_KW@[9; 11) "fn" 16 FN_KW@9..11 "fn"
17 WHITESPACE@[11; 12) " " 17 WHITESPACE@11..12 " "
18 NAME@[12; 13) 18 NAME@12..13
19 IDENT@[12; 13) "b" 19 IDENT@12..13 "b"
20 PARAM_LIST@[13; 15) 20 PARAM_LIST@13..15
21 L_PAREN@[13; 14) "(" 21 L_PAREN@13..14 "("
22 R_PAREN@[14; 15) ")" 22 R_PAREN@14..15 ")"
23 WHITESPACE@[15; 16) " " 23 WHITESPACE@15..16 " "
24 BLOCK_EXPR@[16; 18) 24 BLOCK_EXPR@16..18
25 BLOCK@[16; 18) 25 BLOCK@16..18
26 L_CURLY@[16; 17) "{" 26 L_CURLY@16..17 "{"
27 R_CURLY@[17; 18) "}" 27 R_CURLY@17..18 "}"
28 WHITESPACE@[18; 19) " " 28 WHITESPACE@18..19 " "
29 R_CURLY@[19; 20) "}" 29 R_CURLY@19..20 "}"
30 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.rast b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
index 33886154d..2a50f796c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0045_param_list_opt_patterns.rast
@@ -1,47 +1,47 @@
1SOURCE_FILE@[0; 35) 1SOURCE_FILE@0..35
2 FN_DEF@[0; 34) 2 FN_DEF@0..34
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
7 TYPE_PARAM_LIST@[6; 30) 7 TYPE_PARAM_LIST@6..30
8 L_ANGLE@[6; 7) "<" 8 L_ANGLE@6..7 "<"
9 TYPE_PARAM@[7; 29) 9 TYPE_PARAM@7..29
10 NAME@[7; 8) 10 NAME@7..8
11 IDENT@[7; 8) "F" 11 IDENT@7..8 "F"
12 COLON@[8; 9) ":" 12 COLON@8..9 ":"
13 WHITESPACE@[9; 10) " " 13 WHITESPACE@9..10 " "
14 TYPE_BOUND_LIST@[10; 29) 14 TYPE_BOUND_LIST@10..29
15 TYPE_BOUND@[10; 29) 15 TYPE_BOUND@10..29
16 PATH_TYPE@[10; 29) 16 PATH_TYPE@10..29
17 PATH@[10; 29) 17 PATH@10..29
18 PATH_SEGMENT@[10; 29) 18 PATH_SEGMENT@10..29
19 NAME_REF@[10; 15) 19 NAME_REF@10..15
20 IDENT@[10; 15) "FnMut" 20 IDENT@10..15 "FnMut"
21 PARAM_LIST@[15; 29) 21 PARAM_LIST@15..29
22 L_PAREN@[15; 16) "(" 22 L_PAREN@15..16 "("
23 PARAM@[16; 28) 23 PARAM@16..28
24 REFERENCE_TYPE@[16; 28) 24 REFERENCE_TYPE@16..28
25 AMP@[16; 17) "&" 25 AMP@16..17 "&"
26 MUT_KW@[17; 20) "mut" 26 MUT_KW@17..20 "mut"
27 WHITESPACE@[20; 21) " " 27 WHITESPACE@20..21 " "
28 PATH_TYPE@[21; 28) 28 PATH_TYPE@21..28
29 PATH@[21; 28) 29 PATH@21..28
30 PATH_SEGMENT@[21; 28) 30 PATH_SEGMENT@21..28
31 NAME_REF@[21; 24) 31 NAME_REF@21..24
32 IDENT@[21; 24) "Foo" 32 IDENT@21..24 "Foo"
33 TYPE_ARG_LIST@[24; 28) 33 TYPE_ARG_LIST@24..28
34 L_ANGLE@[24; 25) "<" 34 L_ANGLE@24..25 "<"
35 LIFETIME_ARG@[25; 27) 35 LIFETIME_ARG@25..27
36 LIFETIME@[25; 27) "\'a" 36 LIFETIME@25..27 "\'a"
37 R_ANGLE@[27; 28) ">" 37 R_ANGLE@27..28 ">"
38 R_PAREN@[28; 29) ")" 38 R_PAREN@28..29 ")"
39 R_ANGLE@[29; 30) ">" 39 R_ANGLE@29..30 ">"
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_EXPR@[32; 34) 43 BLOCK_EXPR@32..34
44 BLOCK@[32; 34) 44 BLOCK@32..34
45 L_CURLY@[32; 33) "{" 45 L_CURLY@32..33 "{"
46 R_CURLY@[33; 34) "}" 46 R_CURLY@33..34 "}"
47 WHITESPACE@[34; 35) "\n" 47 WHITESPACE@34..35 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast
index 988b58d82..c28dc9d61 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0046_singleton_tuple_type.rast
@@ -1,20 +1,20 @@
1SOURCE_FILE@[0; 17) 1SOURCE_FILE@0..17
2 TYPE_ALIAS_DEF@[0; 16) 2 TYPE_ALIAS_DEF@0..16
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "T" 6 IDENT@5..6 "T"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 TUPLE_TYPE@[9; 15) 10 TUPLE_TYPE@9..15
11 L_PAREN@[9; 10) "(" 11 L_PAREN@9..10 "("
12 PATH_TYPE@[10; 13) 12 PATH_TYPE@10..13
13 PATH@[10; 13) 13 PATH@10..13
14 PATH_SEGMENT@[10; 13) 14 PATH_SEGMENT@10..13
15 NAME_REF@[10; 13) 15 NAME_REF@10..13
16 IDENT@[10; 13) "i32" 16 IDENT@10..13 "i32"
17 COMMA@[13; 14) "," 17 COMMA@13..14 ","
18 R_PAREN@[14; 15) ")" 18 R_PAREN@14..15 ")"
19 SEMICOLON@[15; 16) ";" 19 SEMICOLON@15..16 ";"
20 WHITESPACE@[16; 17) "\n" 20 WHITESPACE@16..17 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0047_unsafe_default_impl.rast b/crates/ra_syntax/test_data/parser/inline/ok/0047_unsafe_default_impl.rast
index 0a768a8e3..52de6023b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0047_unsafe_default_impl.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0047_unsafe_default_impl.rast
@@ -1,18 +1,18 @@
1SOURCE_FILE@[0; 27) 1SOURCE_FILE@0..27
2 IMPL_DEF@[0; 26) 2 IMPL_DEF@0..26
3 UNSAFE_KW@[0; 6) "unsafe" 3 UNSAFE_KW@0..6 "unsafe"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 DEFAULT_KW@[7; 14) "default" 5 DEFAULT_KW@7..14 "default"
6 WHITESPACE@[14; 15) " " 6 WHITESPACE@14..15 " "
7 IMPL_KW@[15; 19) "impl" 7 IMPL_KW@15..19 "impl"
8 WHITESPACE@[19; 20) " " 8 WHITESPACE@19..20 " "
9 PATH_TYPE@[20; 23) 9 PATH_TYPE@20..23
10 PATH@[20; 23) 10 PATH@20..23
11 PATH_SEGMENT@[20; 23) 11 PATH_SEGMENT@20..23
12 NAME_REF@[20; 23) 12 NAME_REF@20..23
13 IDENT@[20; 23) "Foo" 13 IDENT@20..23 "Foo"
14 WHITESPACE@[23; 24) " " 14 WHITESPACE@23..24 " "
15 ITEM_LIST@[24; 26) 15 ITEM_LIST@24..26
16 L_CURLY@[24; 25) "{" 16 L_CURLY@24..25 "{"
17 R_CURLY@[25; 26) "}" 17 R_CURLY@25..26 "}"
18 WHITESPACE@[26; 27) "\n" 18 WHITESPACE@26..27 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast
index 02f2a9db6..7f87e05ec 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0048_path_type_with_bounds.rast
@@ -1,83 +1,83 @@
1SOURCE_FILE@[0; 58) 1SOURCE_FILE@0..58
2 FN_DEF@[0; 26) 2 FN_DEF@0..26
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 RET_TYPE@[9; 23) 11 RET_TYPE@9..23
12 THIN_ARROW@[9; 11) "->" 12 THIN_ARROW@9..11 "->"
13 WHITESPACE@[11; 12) " " 13 WHITESPACE@11..12 " "
14 PATH_TYPE@[12; 23) 14 PATH_TYPE@12..23
15 PATH@[12; 23) 15 PATH@12..23
16 PATH_SEGMENT@[12; 23) 16 PATH_SEGMENT@12..23
17 NAME_REF@[12; 15) 17 NAME_REF@12..15
18 IDENT@[12; 15) "Box" 18 IDENT@12..15 "Box"
19 TYPE_ARG_LIST@[15; 23) 19 TYPE_ARG_LIST@15..23
20 L_ANGLE@[15; 16) "<" 20 L_ANGLE@15..16 "<"
21 TYPE_ARG@[16; 22) 21 TYPE_ARG@16..22
22 DYN_TRAIT_TYPE@[16; 22) 22 DYN_TRAIT_TYPE@16..22
23 TYPE_BOUND_LIST@[16; 22) 23 TYPE_BOUND_LIST@16..22
24 TYPE_BOUND@[16; 17) 24 TYPE_BOUND@16..17
25 PATH_TYPE@[16; 17) 25 PATH_TYPE@16..17
26 PATH@[16; 17) 26 PATH@16..17
27 PATH_SEGMENT@[16; 17) 27 PATH_SEGMENT@16..17
28 NAME_REF@[16; 17) 28 NAME_REF@16..17
29 IDENT@[16; 17) "T" 29 IDENT@16..17 "T"
30 WHITESPACE@[17; 18) " " 30 WHITESPACE@17..18 " "
31 PLUS@[18; 19) "+" 31 PLUS@18..19 "+"
32 WHITESPACE@[19; 20) " " 32 WHITESPACE@19..20 " "
33 TYPE_BOUND@[20; 22) 33 TYPE_BOUND@20..22
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_EXPR@[24; 26) 37 BLOCK_EXPR@24..26
38 BLOCK@[24; 26) 38 BLOCK@24..26
39 L_CURLY@[24; 25) "{" 39 L_CURLY@24..25 "{"
40 R_CURLY@[25; 26) "}" 40 R_CURLY@25..26 "}"
41 WHITESPACE@[26; 27) "\n" 41 WHITESPACE@26..27 "\n"
42 FN_DEF@[27; 57) 42 FN_DEF@27..57
43 FN_KW@[27; 29) "fn" 43 FN_KW@27..29 "fn"
44 WHITESPACE@[29; 30) " " 44 WHITESPACE@29..30 " "
45 NAME@[30; 33) 45 NAME@30..33
46 IDENT@[30; 33) "foo" 46 IDENT@30..33 "foo"
47 PARAM_LIST@[33; 35) 47 PARAM_LIST@33..35
48 L_PAREN@[33; 34) "(" 48 L_PAREN@33..34 "("
49 R_PAREN@[34; 35) ")" 49 R_PAREN@34..35 ")"
50 WHITESPACE@[35; 36) " " 50 WHITESPACE@35..36 " "
51 RET_TYPE@[36; 54) 51 RET_TYPE@36..54
52 THIN_ARROW@[36; 38) "->" 52 THIN_ARROW@36..38 "->"
53 WHITESPACE@[38; 39) " " 53 WHITESPACE@38..39 " "
54 PATH_TYPE@[39; 54) 54 PATH_TYPE@39..54
55 PATH@[39; 54) 55 PATH@39..54
56 PATH_SEGMENT@[39; 54) 56 PATH_SEGMENT@39..54
57 NAME_REF@[39; 42) 57 NAME_REF@39..42
58 IDENT@[39; 42) "Box" 58 IDENT@39..42 "Box"
59 TYPE_ARG_LIST@[42; 54) 59 TYPE_ARG_LIST@42..54
60 L_ANGLE@[42; 43) "<" 60 L_ANGLE@42..43 "<"
61 TYPE_ARG@[43; 53) 61 TYPE_ARG@43..53
62 DYN_TRAIT_TYPE@[43; 53) 62 DYN_TRAIT_TYPE@43..53
63 DYN_KW@[43; 46) "dyn" 63 DYN_KW@43..46 "dyn"
64 WHITESPACE@[46; 47) " " 64 WHITESPACE@46..47 " "
65 TYPE_BOUND_LIST@[47; 53) 65 TYPE_BOUND_LIST@47..53
66 TYPE_BOUND@[47; 48) 66 TYPE_BOUND@47..48
67 PATH_TYPE@[47; 48) 67 PATH_TYPE@47..48
68 PATH@[47; 48) 68 PATH@47..48
69 PATH_SEGMENT@[47; 48) 69 PATH_SEGMENT@47..48
70 NAME_REF@[47; 48) 70 NAME_REF@47..48
71 IDENT@[47; 48) "T" 71 IDENT@47..48 "T"
72 WHITESPACE@[48; 49) " " 72 WHITESPACE@48..49 " "
73 PLUS@[49; 50) "+" 73 PLUS@49..50 "+"
74 WHITESPACE@[50; 51) " " 74 WHITESPACE@50..51 " "
75 TYPE_BOUND@[51; 53) 75 TYPE_BOUND@51..53
76 LIFETIME@[51; 53) "\'f" 76 LIFETIME@51..53 "\'f"
77 R_ANGLE@[53; 54) ">" 77 R_ANGLE@53..54 ">"
78 WHITESPACE@[54; 55) " " 78 WHITESPACE@54..55 " "
79 BLOCK_EXPR@[55; 57) 79 BLOCK_EXPR@55..57
80 BLOCK@[55; 57) 80 BLOCK@55..57
81 L_CURLY@[55; 56) "{" 81 L_CURLY@55..56 "{"
82 R_CURLY@[56; 57) "}" 82 R_CURLY@56..57 "}"
83 WHITESPACE@[57; 58) "\n" 83 WHITESPACE@57..58 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast b/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast
index 036035f6c..8bf62cda9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0050_fn_decl.rast
@@ -1,22 +1,22 @@
1SOURCE_FILE@[0; 22) 1SOURCE_FILE@0..22
2 TRAIT_DEF@[0; 21) 2 TRAIT_DEF@0..21
3 TRAIT_KW@[0; 5) "trait" 3 TRAIT_KW@0..5 "trait"
4 WHITESPACE@[5; 6) " " 4 WHITESPACE@5..6 " "
5 NAME@[6; 7) 5 NAME@6..7
6 IDENT@[6; 7) "T" 6 IDENT@6..7 "T"
7 WHITESPACE@[7; 8) " " 7 WHITESPACE@7..8 " "
8 ITEM_LIST@[8; 21) 8 ITEM_LIST@8..21
9 L_CURLY@[8; 9) "{" 9 L_CURLY@8..9 "{"
10 WHITESPACE@[9; 10) " " 10 WHITESPACE@9..10 " "
11 FN_DEF@[10; 19) 11 FN_DEF@10..19
12 FN_KW@[10; 12) "fn" 12 FN_KW@10..12 "fn"
13 WHITESPACE@[12; 13) " " 13 WHITESPACE@12..13 " "
14 NAME@[13; 16) 14 NAME@13..16
15 IDENT@[13; 16) "foo" 15 IDENT@13..16 "foo"
16 PARAM_LIST@[16; 18) 16 PARAM_LIST@16..18
17 L_PAREN@[16; 17) "(" 17 L_PAREN@16..17 "("
18 R_PAREN@[17; 18) ")" 18 R_PAREN@17..18 ")"
19 SEMICOLON@[18; 19) ";" 19 SEMICOLON@18..19 ";"
20 WHITESPACE@[19; 20) " " 20 WHITESPACE@19..20 " "
21 R_CURLY@[20; 21) "}" 21 R_CURLY@20..21 "}"
22 WHITESPACE@[21; 22) "\n" 22 WHITESPACE@21..22 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast
index d9fc5eb8a..798ef2a48 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0051_unit_type.rast
@@ -1,14 +1,14 @@
1SOURCE_FILE@[0; 13) 1SOURCE_FILE@0..13
2 TYPE_ALIAS_DEF@[0; 12) 2 TYPE_ALIAS_DEF@0..12
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "T" 6 IDENT@5..6 "T"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 TUPLE_TYPE@[9; 11) 10 TUPLE_TYPE@9..11
11 L_PAREN@[9; 10) "(" 11 L_PAREN@9..10 "("
12 R_PAREN@[10; 11) ")" 12 R_PAREN@10..11 ")"
13 SEMICOLON@[11; 12) ";" 13 SEMICOLON@11..12 ";"
14 WHITESPACE@[12; 13) "\n" 14 WHITESPACE@12..13 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast
index 8647c23bf..0d2f5ff56 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0052_path_type.rast
@@ -1,70 +1,70 @@
1SOURCE_FILE@[0; 71) 1SOURCE_FILE@0..71
2 TYPE_ALIAS_DEF@[0; 13) 2 TYPE_ALIAS_DEF@0..13
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "A" 6 IDENT@5..6 "A"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 PATH_TYPE@[9; 12) 10 PATH_TYPE@9..12
11 PATH@[9; 12) 11 PATH@9..12
12 PATH_SEGMENT@[9; 12) 12 PATH_SEGMENT@9..12
13 NAME_REF@[9; 12) 13 NAME_REF@9..12
14 IDENT@[9; 12) "Foo" 14 IDENT@9..12 "Foo"
15 SEMICOLON@[12; 13) ";" 15 SEMICOLON@12..13 ";"
16 WHITESPACE@[13; 14) "\n" 16 WHITESPACE@13..14 "\n"
17 TYPE_ALIAS_DEF@[14; 29) 17 TYPE_ALIAS_DEF@14..29
18 TYPE_KW@[14; 18) "type" 18 TYPE_KW@14..18 "type"
19 WHITESPACE@[18; 19) " " 19 WHITESPACE@18..19 " "
20 NAME@[19; 20) 20 NAME@19..20
21 IDENT@[19; 20) "B" 21 IDENT@19..20 "B"
22 WHITESPACE@[20; 21) " " 22 WHITESPACE@20..21 " "
23 EQ@[21; 22) "=" 23 EQ@21..22 "="
24 WHITESPACE@[22; 23) " " 24 WHITESPACE@22..23 " "
25 PATH_TYPE@[23; 28) 25 PATH_TYPE@23..28
26 PATH@[23; 28) 26 PATH@23..28
27 PATH_SEGMENT@[23; 28) 27 PATH_SEGMENT@23..28
28 COLON2@[23; 25) "::" 28 COLON2@23..25 "::"
29 NAME_REF@[25; 28) 29 NAME_REF@25..28
30 IDENT@[25; 28) "Foo" 30 IDENT@25..28 "Foo"
31 SEMICOLON@[28; 29) ";" 31 SEMICOLON@28..29 ";"
32 WHITESPACE@[29; 30) "\n" 32 WHITESPACE@29..30 "\n"
33 TYPE_ALIAS_DEF@[30; 49) 33 TYPE_ALIAS_DEF@30..49
34 TYPE_KW@[30; 34) "type" 34 TYPE_KW@30..34 "type"
35 WHITESPACE@[34; 35) " " 35 WHITESPACE@34..35 " "
36 NAME@[35; 36) 36 NAME@35..36
37 IDENT@[35; 36) "C" 37 IDENT@35..36 "C"
38 WHITESPACE@[36; 37) " " 38 WHITESPACE@36..37 " "
39 EQ@[37; 38) "=" 39 EQ@37..38 "="
40 WHITESPACE@[38; 39) " " 40 WHITESPACE@38..39 " "
41 PATH_TYPE@[39; 48) 41 PATH_TYPE@39..48
42 PATH@[39; 48) 42 PATH@39..48
43 PATH@[39; 43) 43 PATH@39..43
44 PATH_SEGMENT@[39; 43) 44 PATH_SEGMENT@39..43
45 SELF_KW@[39; 43) "self" 45 SELF_KW@39..43 "self"
46 COLON2@[43; 45) "::" 46 COLON2@43..45 "::"
47 PATH_SEGMENT@[45; 48) 47 PATH_SEGMENT@45..48
48 NAME_REF@[45; 48) 48 NAME_REF@45..48
49 IDENT@[45; 48) "Foo" 49 IDENT@45..48 "Foo"
50 SEMICOLON@[48; 49) ";" 50 SEMICOLON@48..49 ";"
51 WHITESPACE@[49; 50) "\n" 51 WHITESPACE@49..50 "\n"
52 TYPE_ALIAS_DEF@[50; 70) 52 TYPE_ALIAS_DEF@50..70
53 TYPE_KW@[50; 54) "type" 53 TYPE_KW@50..54 "type"
54 WHITESPACE@[54; 55) " " 54 WHITESPACE@54..55 " "
55 NAME@[55; 56) 55 NAME@55..56
56 IDENT@[55; 56) "D" 56 IDENT@55..56 "D"
57 WHITESPACE@[56; 57) " " 57 WHITESPACE@56..57 " "
58 EQ@[57; 58) "=" 58 EQ@57..58 "="
59 WHITESPACE@[58; 59) " " 59 WHITESPACE@58..59 " "
60 PATH_TYPE@[59; 69) 60 PATH_TYPE@59..69
61 PATH@[59; 69) 61 PATH@59..69
62 PATH@[59; 64) 62 PATH@59..64
63 PATH_SEGMENT@[59; 64) 63 PATH_SEGMENT@59..64
64 SUPER_KW@[59; 64) "super" 64 SUPER_KW@59..64 "super"
65 COLON2@[64; 66) "::" 65 COLON2@64..66 "::"
66 PATH_SEGMENT@[66; 69) 66 PATH_SEGMENT@66..69
67 NAME_REF@[66; 69) 67 NAME_REF@66..69
68 IDENT@[66; 69) "Foo" 68 IDENT@66..69 "Foo"
69 SEMICOLON@[69; 70) ";" 69 SEMICOLON@69..70 ";"
70 WHITESPACE@[70; 71) "\n" 70 WHITESPACE@70..71 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast
index 690d8504e..5f846177e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0053_path_expr.rast
@@ -1,96 +1,96 @@
1SOURCE_FILE@[0; 91) 1SOURCE_FILE@0..91
2 FN_DEF@[0; 90) 2 FN_DEF@0..90
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 90) 11 BLOCK_EXPR@9..90
12 BLOCK@[9; 90) 12 BLOCK@9..90
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 25) 15 LET_STMT@15..25
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 PLACEHOLDER_PAT@[19; 20) 18 PLACEHOLDER_PAT@19..20
19 UNDERSCORE@[19; 20) "_" 19 UNDERSCORE@19..20 "_"
20 WHITESPACE@[20; 21) " " 20 WHITESPACE@20..21 " "
21 EQ@[21; 22) "=" 21 EQ@21..22 "="
22 WHITESPACE@[22; 23) " " 22 WHITESPACE@22..23 " "
23 PATH_EXPR@[23; 24) 23 PATH_EXPR@23..24
24 PATH@[23; 24) 24 PATH@23..24
25 PATH_SEGMENT@[23; 24) 25 PATH_SEGMENT@23..24
26 NAME_REF@[23; 24) 26 NAME_REF@23..24
27 IDENT@[23; 24) "a" 27 IDENT@23..24 "a"
28 SEMICOLON@[24; 25) ";" 28 SEMICOLON@24..25 ";"
29 WHITESPACE@[25; 30) "\n " 29 WHITESPACE@25..30 "\n "
30 LET_STMT@[30; 43) 30 LET_STMT@30..43
31 LET_KW@[30; 33) "let" 31 LET_KW@30..33 "let"
32 WHITESPACE@[33; 34) " " 32 WHITESPACE@33..34 " "
33 PLACEHOLDER_PAT@[34; 35) 33 PLACEHOLDER_PAT@34..35
34 UNDERSCORE@[34; 35) "_" 34 UNDERSCORE@34..35 "_"
35 WHITESPACE@[35; 36) " " 35 WHITESPACE@35..36 " "
36 EQ@[36; 37) "=" 36 EQ@36..37 "="
37 WHITESPACE@[37; 38) " " 37 WHITESPACE@37..38 " "
38 PATH_EXPR@[38; 42) 38 PATH_EXPR@38..42
39 PATH@[38; 42) 39 PATH@38..42
40 PATH@[38; 39) 40 PATH@38..39
41 PATH_SEGMENT@[38; 39) 41 PATH_SEGMENT@38..39
42 NAME_REF@[38; 39) 42 NAME_REF@38..39
43 IDENT@[38; 39) "a" 43 IDENT@38..39 "a"
44 COLON2@[39; 41) "::" 44 COLON2@39..41 "::"
45 PATH_SEGMENT@[41; 42) 45 PATH_SEGMENT@41..42
46 NAME_REF@[41; 42) 46 NAME_REF@41..42
47 IDENT@[41; 42) "b" 47 IDENT@41..42 "b"
48 SEMICOLON@[42; 43) ";" 48 SEMICOLON@42..43 ";"
49 WHITESPACE@[43; 48) "\n " 49 WHITESPACE@43..48 "\n "
50 LET_STMT@[48; 65) 50 LET_STMT@48..65
51 LET_KW@[48; 51) "let" 51 LET_KW@48..51 "let"
52 WHITESPACE@[51; 52) " " 52 WHITESPACE@51..52 " "
53 PLACEHOLDER_PAT@[52; 53) 53 PLACEHOLDER_PAT@52..53
54 UNDERSCORE@[52; 53) "_" 54 UNDERSCORE@52..53 "_"
55 WHITESPACE@[53; 54) " " 55 WHITESPACE@53..54 " "
56 EQ@[54; 55) "=" 56 EQ@54..55 "="
57 WHITESPACE@[55; 56) " " 57 WHITESPACE@55..56 " "
58 PATH_EXPR@[56; 64) 58 PATH_EXPR@56..64
59 PATH@[56; 64) 59 PATH@56..64
60 PATH_SEGMENT@[56; 64) 60 PATH_SEGMENT@56..64
61 COLON2@[56; 58) "::" 61 COLON2@56..58 "::"
62 NAME_REF@[58; 59) 62 NAME_REF@58..59
63 IDENT@[58; 59) "a" 63 IDENT@58..59 "a"
64 TYPE_ARG_LIST@[59; 64) 64 TYPE_ARG_LIST@59..64
65 COLON2@[59; 61) "::" 65 COLON2@59..61 "::"
66 L_ANGLE@[61; 62) "<" 66 L_ANGLE@61..62 "<"
67 TYPE_ARG@[62; 63) 67 TYPE_ARG@62..63
68 PATH_TYPE@[62; 63) 68 PATH_TYPE@62..63
69 PATH@[62; 63) 69 PATH@62..63
70 PATH_SEGMENT@[62; 63) 70 PATH_SEGMENT@62..63
71 NAME_REF@[62; 63) 71 NAME_REF@62..63
72 IDENT@[62; 63) "b" 72 IDENT@62..63 "b"
73 R_ANGLE@[63; 64) ">" 73 R_ANGLE@63..64 ">"
74 SEMICOLON@[64; 65) ";" 74 SEMICOLON@64..65 ";"
75 WHITESPACE@[65; 70) "\n " 75 WHITESPACE@65..70 "\n "
76 LET_STMT@[70; 88) 76 LET_STMT@70..88
77 LET_KW@[70; 73) "let" 77 LET_KW@70..73 "let"
78 WHITESPACE@[73; 74) " " 78 WHITESPACE@73..74 " "
79 PLACEHOLDER_PAT@[74; 75) 79 PLACEHOLDER_PAT@74..75
80 UNDERSCORE@[74; 75) "_" 80 UNDERSCORE@74..75 "_"
81 WHITESPACE@[75; 76) " " 81 WHITESPACE@75..76 " "
82 EQ@[76; 77) "=" 82 EQ@76..77 "="
83 WHITESPACE@[77; 78) " " 83 WHITESPACE@77..78 " "
84 MACRO_CALL@[78; 87) 84 MACRO_CALL@78..87
85 PATH@[78; 84) 85 PATH@78..84
86 PATH_SEGMENT@[78; 84) 86 PATH_SEGMENT@78..84
87 NAME_REF@[78; 84) 87 NAME_REF@78..84
88 IDENT@[78; 84) "format" 88 IDENT@78..84 "format"
89 BANG@[84; 85) "!" 89 BANG@84..85 "!"
90 TOKEN_TREE@[85; 87) 90 TOKEN_TREE@85..87
91 L_PAREN@[85; 86) "(" 91 L_PAREN@85..86 "("
92 R_PAREN@[86; 87) ")" 92 R_PAREN@86..87 ")"
93 SEMICOLON@[87; 88) ";" 93 SEMICOLON@87..88 ";"
94 WHITESPACE@[88; 89) "\n" 94 WHITESPACE@88..89 "\n"
95 R_CURLY@[89; 90) "}" 95 R_CURLY@89..90 "}"
96 WHITESPACE@[90; 91) "\n" 96 WHITESPACE@90..91 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast b/crates/ra_syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast
index 731c31f76..6362aa02d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0054_record_field_attrs.rast
@@ -1,44 +1,44 @@
1SOURCE_FILE@[0; 64) 1SOURCE_FILE@0..64
2 STRUCT_DEF@[0; 63) 2 STRUCT_DEF@0..63
3 STRUCT_KW@[0; 6) "struct" 3 STRUCT_KW@0..6 "struct"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 NAME@[7; 8) 5 NAME@7..8
6 IDENT@[7; 8) "S" 6 IDENT@7..8 "S"
7 WHITESPACE@[8; 9) " " 7 WHITESPACE@8..9 " "
8 RECORD_FIELD_DEF_LIST@[9; 63) 8 RECORD_FIELD_DEF_LIST@9..63
9 L_CURLY@[9; 10) "{" 9 L_CURLY@9..10 "{"
10 WHITESPACE@[10; 15) "\n " 10 WHITESPACE@10..15 "\n "
11 RECORD_FIELD_DEF@[15; 60) 11 RECORD_FIELD_DEF@15..60
12 ATTR@[15; 43) 12 ATTR@15..43
13 POUND@[15; 16) "#" 13 POUND@15..16 "#"
14 L_BRACK@[16; 17) "[" 14 L_BRACK@16..17 "["
15 PATH@[17; 22) 15 PATH@17..22
16 PATH_SEGMENT@[17; 22) 16 PATH_SEGMENT@17..22
17 NAME_REF@[17; 22) 17 NAME_REF@17..22
18 IDENT@[17; 22) "serde" 18 IDENT@17..22 "serde"
19 TOKEN_TREE@[22; 42) 19 TOKEN_TREE@22..42
20 L_PAREN@[22; 23) "(" 20 L_PAREN@22..23 "("
21 IDENT@[23; 27) "with" 21 IDENT@23..27 "with"
22 WHITESPACE@[27; 28) " " 22 WHITESPACE@27..28 " "
23 EQ@[28; 29) "=" 23 EQ@28..29 "="
24 WHITESPACE@[29; 30) " " 24 WHITESPACE@29..30 " "
25 STRING@[30; 41) "\"url_serde\"" 25 STRING@30..41 "\"url_serde\""
26 R_PAREN@[41; 42) ")" 26 R_PAREN@41..42 ")"
27 R_BRACK@[42; 43) "]" 27 R_BRACK@42..43 "]"
28 WHITESPACE@[43; 48) "\n " 28 WHITESPACE@43..48 "\n "
29 VISIBILITY@[48; 51) 29 VISIBILITY@48..51
30 PUB_KW@[48; 51) "pub" 30 PUB_KW@48..51 "pub"
31 WHITESPACE@[51; 52) " " 31 WHITESPACE@51..52 " "
32 NAME@[52; 55) 32 NAME@52..55
33 IDENT@[52; 55) "uri" 33 IDENT@52..55 "uri"
34 COLON@[55; 56) ":" 34 COLON@55..56 ":"
35 WHITESPACE@[56; 57) " " 35 WHITESPACE@56..57 " "
36 PATH_TYPE@[57; 60) 36 PATH_TYPE@57..60
37 PATH@[57; 60) 37 PATH@57..60
38 PATH_SEGMENT@[57; 60) 38 PATH_SEGMENT@57..60
39 NAME_REF@[57; 60) 39 NAME_REF@57..60
40 IDENT@[57; 60) "Uri" 40 IDENT@57..60 "Uri"
41 COMMA@[60; 61) "," 41 COMMA@60..61 ","
42 WHITESPACE@[61; 62) "\n" 42 WHITESPACE@61..62 "\n"
43 R_CURLY@[62; 63) "}" 43 R_CURLY@62..63 "}"
44 WHITESPACE@[63; 64) "\n" 44 WHITESPACE@63..64 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast b/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast
index 2b28cec67..d9310e82e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0055_literal_pattern.rast
@@ -1,77 +1,77 @@
1SOURCE_FILE@[0; 113) 1SOURCE_FILE@0..113
2 FN_DEF@[0; 112) 2 FN_DEF@0..112
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 112) 11 BLOCK_EXPR@10..112
12 BLOCK@[10; 112) 12 BLOCK@10..112
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 MATCH_EXPR@[16; 110) 15 MATCH_EXPR@16..110
16 MATCH_KW@[16; 21) "match" 16 MATCH_KW@16..21 "match"
17 WHITESPACE@[21; 22) " " 17 WHITESPACE@21..22 " "
18 TUPLE_EXPR@[22; 24) 18 TUPLE_EXPR@22..24
19 L_PAREN@[22; 23) "(" 19 L_PAREN@22..23 "("
20 R_PAREN@[23; 24) ")" 20 R_PAREN@23..24 ")"
21 WHITESPACE@[24; 25) " " 21 WHITESPACE@24..25 " "
22 MATCH_ARM_LIST@[25; 110) 22 MATCH_ARM_LIST@25..110
23 L_CURLY@[25; 26) "{" 23 L_CURLY@25..26 "{"
24 WHITESPACE@[26; 35) "\n " 24 WHITESPACE@26..35 "\n "
25 MATCH_ARM@[35; 43) 25 MATCH_ARM@35..43
26 LITERAL_PAT@[35; 37) 26 LITERAL_PAT@35..37
27 MINUS@[35; 36) "-" 27 MINUS@35..36 "-"
28 LITERAL@[36; 37) 28 LITERAL@36..37
29 INT_NUMBER@[36; 37) "1" 29 INT_NUMBER@36..37 "1"
30 WHITESPACE@[37; 38) " " 30 WHITESPACE@37..38 " "
31 FAT_ARROW@[38; 40) "=>" 31 FAT_ARROW@38..40 "=>"
32 WHITESPACE@[40; 41) " " 32 WHITESPACE@40..41 " "
33 TUPLE_EXPR@[41; 43) 33 TUPLE_EXPR@41..43
34 L_PAREN@[41; 42) "(" 34 L_PAREN@41..42 "("
35 R_PAREN@[42; 43) ")" 35 R_PAREN@42..43 ")"
36 COMMA@[43; 44) "," 36 COMMA@43..44 ","
37 WHITESPACE@[44; 53) "\n " 37 WHITESPACE@44..53 "\n "
38 MATCH_ARM@[53; 61) 38 MATCH_ARM@53..61
39 LITERAL_PAT@[53; 55) 39 LITERAL_PAT@53..55
40 LITERAL@[53; 55) 40 LITERAL@53..55
41 INT_NUMBER@[53; 55) "92" 41 INT_NUMBER@53..55 "92"
42 WHITESPACE@[55; 56) " " 42 WHITESPACE@55..56 " "
43 FAT_ARROW@[56; 58) "=>" 43 FAT_ARROW@56..58 "=>"
44 WHITESPACE@[58; 59) " " 44 WHITESPACE@58..59 " "
45 TUPLE_EXPR@[59; 61) 45 TUPLE_EXPR@59..61
46 L_PAREN@[59; 60) "(" 46 L_PAREN@59..60 "("
47 R_PAREN@[60; 61) ")" 47 R_PAREN@60..61 ")"
48 COMMA@[61; 62) "," 48 COMMA@61..62 ","
49 WHITESPACE@[62; 71) "\n " 49 WHITESPACE@62..71 "\n "
50 MATCH_ARM@[71; 80) 50 MATCH_ARM@71..80
51 LITERAL_PAT@[71; 74) 51 LITERAL_PAT@71..74
52 LITERAL@[71; 74) 52 LITERAL@71..74
53 CHAR@[71; 74) "\'c\'" 53 CHAR@71..74 "\'c\'"
54 WHITESPACE@[74; 75) " " 54 WHITESPACE@74..75 " "
55 FAT_ARROW@[75; 77) "=>" 55 FAT_ARROW@75..77 "=>"
56 WHITESPACE@[77; 78) " " 56 WHITESPACE@77..78 " "
57 TUPLE_EXPR@[78; 80) 57 TUPLE_EXPR@78..80
58 L_PAREN@[78; 79) "(" 58 L_PAREN@78..79 "("
59 R_PAREN@[79; 80) ")" 59 R_PAREN@79..80 ")"
60 COMMA@[80; 81) "," 60 COMMA@80..81 ","
61 WHITESPACE@[81; 90) "\n " 61 WHITESPACE@81..90 "\n "
62 MATCH_ARM@[90; 103) 62 MATCH_ARM@90..103
63 LITERAL_PAT@[90; 97) 63 LITERAL_PAT@90..97
64 LITERAL@[90; 97) 64 LITERAL@90..97
65 STRING@[90; 97) "\"hello\"" 65 STRING@90..97 "\"hello\""
66 WHITESPACE@[97; 98) " " 66 WHITESPACE@97..98 " "
67 FAT_ARROW@[98; 100) "=>" 67 FAT_ARROW@98..100 "=>"
68 WHITESPACE@[100; 101) " " 68 WHITESPACE@100..101 " "
69 TUPLE_EXPR@[101; 103) 69 TUPLE_EXPR@101..103
70 L_PAREN@[101; 102) "(" 70 L_PAREN@101..102 "("
71 R_PAREN@[102; 103) ")" 71 R_PAREN@102..103 ")"
72 COMMA@[103; 104) "," 72 COMMA@103..104 ","
73 WHITESPACE@[104; 109) "\n " 73 WHITESPACE@104..109 "\n "
74 R_CURLY@[109; 110) "}" 74 R_CURLY@109..110 "}"
75 WHITESPACE@[110; 111) "\n" 75 WHITESPACE@110..111 "\n"
76 R_CURLY@[111; 112) "}" 76 R_CURLY@111..112 "}"
77 WHITESPACE@[112; 113) "\n" 77 WHITESPACE@112..113 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast
index c6082791a..2e727c1ef 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0056_where_clause.rast
@@ -1,111 +1,111 @@
1SOURCE_FILE@[0; 116) 1SOURCE_FILE@0..116
2 FN_DEF@[0; 115) 2 FN_DEF@0..115
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) "\n" 10 WHITESPACE@8..9 "\n"
11 WHERE_CLAUSE@[9; 112) 11 WHERE_CLAUSE@9..112
12 WHERE_KW@[9; 14) "where" 12 WHERE_KW@9..14 "where"
13 WHITESPACE@[14; 18) "\n " 13 WHITESPACE@14..18 "\n "
14 WHERE_PRED@[18; 29) 14 WHERE_PRED@18..29
15 LIFETIME@[18; 20) "\'a" 15 LIFETIME@18..20 "\'a"
16 COLON@[20; 21) ":" 16 COLON@20..21 ":"
17 WHITESPACE@[21; 22) " " 17 WHITESPACE@21..22 " "
18 TYPE_BOUND_LIST@[22; 29) 18 TYPE_BOUND_LIST@22..29
19 TYPE_BOUND@[22; 24) 19 TYPE_BOUND@22..24
20 LIFETIME@[22; 24) "\'b" 20 LIFETIME@22..24 "\'b"
21 WHITESPACE@[24; 25) " " 21 WHITESPACE@24..25 " "
22 PLUS@[25; 26) "+" 22 PLUS@25..26 "+"
23 WHITESPACE@[26; 27) " " 23 WHITESPACE@26..27 " "
24 TYPE_BOUND@[27; 29) 24 TYPE_BOUND@27..29
25 LIFETIME@[27; 29) "\'c" 25 LIFETIME@27..29 "\'c"
26 COMMA@[29; 30) "," 26 COMMA@29..30 ","
27 WHITESPACE@[30; 34) "\n " 27 WHITESPACE@30..34 "\n "
28 WHERE_PRED@[34; 59) 28 WHERE_PRED@34..59
29 PATH_TYPE@[34; 35) 29 PATH_TYPE@34..35
30 PATH@[34; 35) 30 PATH@34..35
31 PATH_SEGMENT@[34; 35) 31 PATH_SEGMENT@34..35
32 NAME_REF@[34; 35) 32 NAME_REF@34..35
33 IDENT@[34; 35) "T" 33 IDENT@34..35 "T"
34 COLON@[35; 36) ":" 34 COLON@35..36 ":"
35 WHITESPACE@[36; 37) " " 35 WHITESPACE@36..37 " "
36 TYPE_BOUND_LIST@[37; 59) 36 TYPE_BOUND_LIST@37..59
37 TYPE_BOUND@[37; 42) 37 TYPE_BOUND@37..42
38 PATH_TYPE@[37; 42) 38 PATH_TYPE@37..42
39 PATH@[37; 42) 39 PATH@37..42
40 PATH_SEGMENT@[37; 42) 40 PATH_SEGMENT@37..42
41 NAME_REF@[37; 42) 41 NAME_REF@37..42
42 IDENT@[37; 42) "Clone" 42 IDENT@37..42 "Clone"
43 WHITESPACE@[42; 43) " " 43 WHITESPACE@42..43 " "
44 PLUS@[43; 44) "+" 44 PLUS@43..44 "+"
45 WHITESPACE@[44; 45) " " 45 WHITESPACE@44..45 " "
46 TYPE_BOUND@[45; 49) 46 TYPE_BOUND@45..49
47 PATH_TYPE@[45; 49) 47 PATH_TYPE@45..49
48 PATH@[45; 49) 48 PATH@45..49
49 PATH_SEGMENT@[45; 49) 49 PATH_SEGMENT@45..49
50 NAME_REF@[45; 49) 50 NAME_REF@45..49
51 IDENT@[45; 49) "Copy" 51 IDENT@45..49 "Copy"
52 WHITESPACE@[49; 50) " " 52 WHITESPACE@49..50 " "
53 PLUS@[50; 51) "+" 53 PLUS@50..51 "+"
54 WHITESPACE@[51; 52) " " 54 WHITESPACE@51..52 " "
55 TYPE_BOUND@[52; 59) 55 TYPE_BOUND@52..59
56 LIFETIME@[52; 59) "\'static" 56 LIFETIME@52..59 "\'static"
57 COMMA@[59; 60) "," 57 COMMA@59..60 ","
58 WHITESPACE@[60; 64) "\n " 58 WHITESPACE@60..64 "\n "
59 WHERE_PRED@[64; 82) 59 WHERE_PRED@64..82
60 PATH_TYPE@[64; 78) 60 PATH_TYPE@64..78
61 PATH@[64; 78) 61 PATH@64..78
62 PATH@[64; 72) 62 PATH@64..72
63 PATH_SEGMENT@[64; 72) 63 PATH_SEGMENT@64..72
64 NAME_REF@[64; 72) 64 NAME_REF@64..72
65 IDENT@[64; 72) "Iterator" 65 IDENT@64..72 "Iterator"
66 COLON2@[72; 74) "::" 66 COLON2@72..74 "::"
67 PATH_SEGMENT@[74; 78) 67 PATH_SEGMENT@74..78
68 NAME_REF@[74; 78) 68 NAME_REF@74..78
69 IDENT@[74; 78) "Item" 69 IDENT@74..78 "Item"
70 COLON@[78; 79) ":" 70 COLON@78..79 ":"
71 WHITESPACE@[79; 80) " " 71 WHITESPACE@79..80 " "
72 TYPE_BOUND_LIST@[80; 82) 72 TYPE_BOUND_LIST@80..82
73 TYPE_BOUND@[80; 82) 73 TYPE_BOUND@80..82
74 LIFETIME@[80; 82) "\'a" 74 LIFETIME@80..82 "\'a"
75 COMMA@[82; 83) "," 75 COMMA@82..83 ","
76 WHITESPACE@[83; 87) "\n " 76 WHITESPACE@83..87 "\n "
77 WHERE_PRED@[87; 112) 77 WHERE_PRED@87..112
78 PATH_TYPE@[87; 108) 78 PATH_TYPE@87..108
79 PATH@[87; 108) 79 PATH@87..108
80 PATH@[87; 102) 80 PATH@87..102
81 PATH_SEGMENT@[87; 102) 81 PATH_SEGMENT@87..102
82 L_ANGLE@[87; 88) "<" 82 L_ANGLE@87..88 "<"
83 PATH_TYPE@[88; 89) 83 PATH_TYPE@88..89
84 PATH@[88; 89) 84 PATH@88..89
85 PATH_SEGMENT@[88; 89) 85 PATH_SEGMENT@88..89
86 NAME_REF@[88; 89) 86 NAME_REF@88..89
87 IDENT@[88; 89) "T" 87 IDENT@88..89 "T"
88 WHITESPACE@[89; 90) " " 88 WHITESPACE@89..90 " "
89 AS_KW@[90; 92) "as" 89 AS_KW@90..92 "as"
90 WHITESPACE@[92; 93) " " 90 WHITESPACE@92..93 " "
91 PATH_TYPE@[93; 101) 91 PATH_TYPE@93..101
92 PATH@[93; 101) 92 PATH@93..101
93 PATH_SEGMENT@[93; 101) 93 PATH_SEGMENT@93..101
94 NAME_REF@[93; 101) 94 NAME_REF@93..101
95 IDENT@[93; 101) "Iterator" 95 IDENT@93..101 "Iterator"
96 R_ANGLE@[101; 102) ">" 96 R_ANGLE@101..102 ">"
97 COLON2@[102; 104) "::" 97 COLON2@102..104 "::"
98 PATH_SEGMENT@[104; 108) 98 PATH_SEGMENT@104..108
99 NAME_REF@[104; 108) 99 NAME_REF@104..108
100 IDENT@[104; 108) "Item" 100 IDENT@104..108 "Item"
101 COLON@[108; 109) ":" 101 COLON@108..109 ":"
102 WHITESPACE@[109; 110) " " 102 WHITESPACE@109..110 " "
103 TYPE_BOUND_LIST@[110; 112) 103 TYPE_BOUND_LIST@110..112
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_EXPR@[113; 115) 107 BLOCK_EXPR@113..115
108 BLOCK@[113; 115) 108 BLOCK@113..115
109 L_CURLY@[113; 114) "{" 109 L_CURLY@113..114 "{"
110 R_CURLY@[114; 115) "}" 110 R_CURLY@114..115 "}"
111 WHITESPACE@[115; 116) "\n" 111 WHITESPACE@115..116 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast
index 9788197be..c1e58f9bf 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0057_const_fn.rast
@@ -1,17 +1,17 @@
1SOURCE_FILE@[0; 18) 1SOURCE_FILE@0..18
2 FN_DEF@[0; 17) 2 FN_DEF@0..17
3 CONST_KW@[0; 5) "const" 3 CONST_KW@0..5 "const"
4 WHITESPACE@[5; 6) " " 4 WHITESPACE@5..6 " "
5 FN_KW@[6; 8) "fn" 5 FN_KW@6..8 "fn"
6 WHITESPACE@[8; 9) " " 6 WHITESPACE@8..9 " "
7 NAME@[9; 12) 7 NAME@9..12
8 IDENT@[9; 12) "foo" 8 IDENT@9..12 "foo"
9 PARAM_LIST@[12; 14) 9 PARAM_LIST@12..14
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_EXPR@[15; 17) 13 BLOCK_EXPR@15..17
14 BLOCK@[15; 17) 14 BLOCK@15..17
15 L_CURLY@[15; 16) "{" 15 L_CURLY@15..16 "{"
16 R_CURLY@[16; 17) "}" 16 R_CURLY@16..17 "}"
17 WHITESPACE@[17; 18) "\n" 17 WHITESPACE@17..18 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast
index 8d7083e97..9bdf2379f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0058_range_pat.rast
@@ -1,83 +1,83 @@
1SOURCE_FILE@[0; 112) 1SOURCE_FILE@0..112
2 FN_DEF@[0; 111) 2 FN_DEF@0..111
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 111) 11 BLOCK_EXPR@10..111
12 BLOCK@[10; 111) 12 BLOCK@10..111
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 MATCH_EXPR@[16; 109) 15 MATCH_EXPR@16..109
16 MATCH_KW@[16; 21) "match" 16 MATCH_KW@16..21 "match"
17 WHITESPACE@[21; 22) " " 17 WHITESPACE@21..22 " "
18 LITERAL@[22; 24) 18 LITERAL@22..24
19 INT_NUMBER@[22; 24) "92" 19 INT_NUMBER@22..24 "92"
20 WHITESPACE@[24; 25) " " 20 WHITESPACE@24..25 " "
21 MATCH_ARM_LIST@[25; 109) 21 MATCH_ARM_LIST@25..109
22 L_CURLY@[25; 26) "{" 22 L_CURLY@25..26 "{"
23 WHITESPACE@[26; 35) "\n " 23 WHITESPACE@26..35 "\n "
24 MATCH_ARM@[35; 50) 24 MATCH_ARM@35..50
25 RANGE_PAT@[35; 44) 25 RANGE_PAT@35..44
26 LITERAL_PAT@[35; 36) 26 LITERAL_PAT@35..36
27 LITERAL@[35; 36) 27 LITERAL@35..36
28 INT_NUMBER@[35; 36) "0" 28 INT_NUMBER@35..36 "0"
29 WHITESPACE@[36; 37) " " 29 WHITESPACE@36..37 " "
30 DOT3@[37; 40) "..." 30 DOT3@37..40 "..."
31 WHITESPACE@[40; 41) " " 31 WHITESPACE@40..41 " "
32 LITERAL_PAT@[41; 44) 32 LITERAL_PAT@41..44
33 LITERAL@[41; 44) 33 LITERAL@41..44
34 INT_NUMBER@[41; 44) "100" 34 INT_NUMBER@41..44 "100"
35 WHITESPACE@[44; 45) " " 35 WHITESPACE@44..45 " "
36 FAT_ARROW@[45; 47) "=>" 36 FAT_ARROW@45..47 "=>"
37 WHITESPACE@[47; 48) " " 37 WHITESPACE@47..48 " "
38 TUPLE_EXPR@[48; 50) 38 TUPLE_EXPR@48..50
39 L_PAREN@[48; 49) "(" 39 L_PAREN@48..49 "("
40 R_PAREN@[49; 50) ")" 40 R_PAREN@49..50 ")"
41 COMMA@[50; 51) "," 41 COMMA@50..51 ","
42 WHITESPACE@[51; 60) "\n " 42 WHITESPACE@51..60 "\n "
43 MATCH_ARM@[60; 77) 43 MATCH_ARM@60..77
44 RANGE_PAT@[60; 71) 44 RANGE_PAT@60..71
45 LITERAL_PAT@[60; 63) 45 LITERAL_PAT@60..63
46 LITERAL@[60; 63) 46 LITERAL@60..63
47 INT_NUMBER@[60; 63) "101" 47 INT_NUMBER@60..63 "101"
48 WHITESPACE@[63; 64) " " 48 WHITESPACE@63..64 " "
49 DOT2EQ@[64; 67) "..=" 49 DOT2EQ@64..67 "..="
50 WHITESPACE@[67; 68) " " 50 WHITESPACE@67..68 " "
51 LITERAL_PAT@[68; 71) 51 LITERAL_PAT@68..71
52 LITERAL@[68; 71) 52 LITERAL@68..71
53 INT_NUMBER@[68; 71) "200" 53 INT_NUMBER@68..71 "200"
54 WHITESPACE@[71; 72) " " 54 WHITESPACE@71..72 " "
55 FAT_ARROW@[72; 74) "=>" 55 FAT_ARROW@72..74 "=>"
56 WHITESPACE@[74; 75) " " 56 WHITESPACE@74..75 " "
57 TUPLE_EXPR@[75; 77) 57 TUPLE_EXPR@75..77
58 L_PAREN@[75; 76) "(" 58 L_PAREN@75..76 "("
59 R_PAREN@[76; 77) ")" 59 R_PAREN@76..77 ")"
60 COMMA@[77; 78) "," 60 COMMA@77..78 ","
61 WHITESPACE@[78; 87) "\n " 61 WHITESPACE@78..87 "\n "
62 MATCH_ARM@[87; 102) 62 MATCH_ARM@87..102
63 RANGE_PAT@[87; 97) 63 RANGE_PAT@87..97
64 LITERAL_PAT@[87; 90) 64 LITERAL_PAT@87..90
65 LITERAL@[87; 90) 65 LITERAL@87..90
66 INT_NUMBER@[87; 90) "200" 66 INT_NUMBER@87..90 "200"
67 WHITESPACE@[90; 91) " " 67 WHITESPACE@90..91 " "
68 DOT2@[91; 93) ".." 68 DOT2@91..93 ".."
69 WHITESPACE@[93; 94) " " 69 WHITESPACE@93..94 " "
70 LITERAL_PAT@[94; 97) 70 LITERAL_PAT@94..97
71 LITERAL@[94; 97) 71 LITERAL@94..97
72 INT_NUMBER@[94; 97) "301" 72 INT_NUMBER@94..97 "301"
73 FAT_ARROW@[97; 99) "=>" 73 FAT_ARROW@97..99 "=>"
74 WHITESPACE@[99; 100) " " 74 WHITESPACE@99..100 " "
75 TUPLE_EXPR@[100; 102) 75 TUPLE_EXPR@100..102
76 L_PAREN@[100; 101) "(" 76 L_PAREN@100..101 "("
77 R_PAREN@[101; 102) ")" 77 R_PAREN@101..102 ")"
78 COMMA@[102; 103) "," 78 COMMA@102..103 ","
79 WHITESPACE@[103; 108) "\n " 79 WHITESPACE@103..108 "\n "
80 R_CURLY@[108; 109) "}" 80 R_CURLY@108..109 "}"
81 WHITESPACE@[109; 110) "\n" 81 WHITESPACE@109..110 "\n"
82 R_CURLY@[110; 111) "}" 82 R_CURLY@110..111 "}"
83 WHITESPACE@[111; 112) "\n" 83 WHITESPACE@111..112 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast
index efcd89c4c..e9ca92364 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0059_match_arms_commas.rast
@@ -1,60 +1,60 @@
1SOURCE_FILE@[0; 83) 1SOURCE_FILE@0..83
2 FN_DEF@[0; 82) 2 FN_DEF@0..82
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 82) 11 BLOCK_EXPR@9..82
12 BLOCK@[9; 82) 12 BLOCK@9..82
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 MATCH_EXPR@[15; 80) 15 MATCH_EXPR@15..80
16 MATCH_KW@[15; 20) "match" 16 MATCH_KW@15..20 "match"
17 WHITESPACE@[20; 21) " " 17 WHITESPACE@20..21 " "
18 TUPLE_EXPR@[21; 23) 18 TUPLE_EXPR@21..23
19 L_PAREN@[21; 22) "(" 19 L_PAREN@21..22 "("
20 R_PAREN@[22; 23) ")" 20 R_PAREN@22..23 ")"
21 WHITESPACE@[23; 24) " " 21 WHITESPACE@23..24 " "
22 MATCH_ARM_LIST@[24; 80) 22 MATCH_ARM_LIST@24..80
23 L_CURLY@[24; 25) "{" 23 L_CURLY@24..25 "{"
24 WHITESPACE@[25; 34) "\n " 24 WHITESPACE@25..34 "\n "
25 MATCH_ARM@[34; 41) 25 MATCH_ARM@34..41
26 PLACEHOLDER_PAT@[34; 35) 26 PLACEHOLDER_PAT@34..35
27 UNDERSCORE@[34; 35) "_" 27 UNDERSCORE@34..35 "_"
28 WHITESPACE@[35; 36) " " 28 WHITESPACE@35..36 " "
29 FAT_ARROW@[36; 38) "=>" 29 FAT_ARROW@36..38 "=>"
30 WHITESPACE@[38; 39) " " 30 WHITESPACE@38..39 " "
31 TUPLE_EXPR@[39; 41) 31 TUPLE_EXPR@39..41
32 L_PAREN@[39; 40) "(" 32 L_PAREN@39..40 "("
33 R_PAREN@[40; 41) ")" 33 R_PAREN@40..41 ")"
34 COMMA@[41; 42) "," 34 COMMA@41..42 ","
35 WHITESPACE@[42; 51) "\n " 35 WHITESPACE@42..51 "\n "
36 MATCH_ARM@[51; 58) 36 MATCH_ARM@51..58
37 PLACEHOLDER_PAT@[51; 52) 37 PLACEHOLDER_PAT@51..52
38 UNDERSCORE@[51; 52) "_" 38 UNDERSCORE@51..52 "_"
39 WHITESPACE@[52; 53) " " 39 WHITESPACE@52..53 " "
40 FAT_ARROW@[53; 55) "=>" 40 FAT_ARROW@53..55 "=>"
41 WHITESPACE@[55; 56) " " 41 WHITESPACE@55..56 " "
42 BLOCK_EXPR@[56; 58) 42 BLOCK_EXPR@56..58
43 BLOCK@[56; 58) 43 BLOCK@56..58
44 L_CURLY@[56; 57) "{" 44 L_CURLY@56..57 "{"
45 R_CURLY@[57; 58) "}" 45 R_CURLY@57..58 "}"
46 WHITESPACE@[58; 67) "\n " 46 WHITESPACE@58..67 "\n "
47 MATCH_ARM@[67; 74) 47 MATCH_ARM@67..74
48 PLACEHOLDER_PAT@[67; 68) 48 PLACEHOLDER_PAT@67..68
49 UNDERSCORE@[67; 68) "_" 49 UNDERSCORE@67..68 "_"
50 WHITESPACE@[68; 69) " " 50 WHITESPACE@68..69 " "
51 FAT_ARROW@[69; 71) "=>" 51 FAT_ARROW@69..71 "=>"
52 WHITESPACE@[71; 72) " " 52 WHITESPACE@71..72 " "
53 TUPLE_EXPR@[72; 74) 53 TUPLE_EXPR@72..74
54 L_PAREN@[72; 73) "(" 54 L_PAREN@72..73 "("
55 R_PAREN@[73; 74) ")" 55 R_PAREN@73..74 ")"
56 WHITESPACE@[74; 79) "\n " 56 WHITESPACE@74..79 "\n "
57 R_CURLY@[79; 80) "}" 57 R_CURLY@79..80 "}"
58 WHITESPACE@[80; 81) "\n" 58 WHITESPACE@80..81 "\n"
59 R_CURLY@[81; 82) "}" 59 R_CURLY@81..82 "}"
60 WHITESPACE@[82; 83) "\n" 60 WHITESPACE@82..83 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast b/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast
index c6e4ee532..d06fc0be5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0060_extern_crate.rast
@@ -1,10 +1,10 @@
1SOURCE_FILE@[0; 18) 1SOURCE_FILE@0..18
2 EXTERN_CRATE_ITEM@[0; 17) 2 EXTERN_CRATE_ITEM@0..17
3 EXTERN_KW@[0; 6) "extern" 3 EXTERN_KW@0..6 "extern"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 CRATE_KW@[7; 12) "crate" 5 CRATE_KW@7..12 "crate"
6 WHITESPACE@[12; 13) " " 6 WHITESPACE@12..13 " "
7 NAME_REF@[13; 16) 7 NAME_REF@13..16
8 IDENT@[13; 16) "foo" 8 IDENT@13..16 "foo"
9 SEMICOLON@[16; 17) ";" 9 SEMICOLON@16..17 ";"
10 WHITESPACE@[17; 18) "\n" 10 WHITESPACE@17..18 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast
index 89a611799..15d332938 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0061_record_lit.rast
@@ -1,125 +1,125 @@
1SOURCE_FILE@[0; 112) 1SOURCE_FILE@0..112
2 FN_DEF@[0; 111) 2 FN_DEF@0..111
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 111) 11 BLOCK_EXPR@9..111
12 BLOCK@[9; 111) 12 BLOCK@9..111
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 20) 15 EXPR_STMT@15..20
16 RECORD_LIT@[15; 19) 16 RECORD_LIT@15..19
17 PATH@[15; 16) 17 PATH@15..16
18 PATH_SEGMENT@[15; 16) 18 PATH_SEGMENT@15..16
19 NAME_REF@[15; 16) 19 NAME_REF@15..16
20 IDENT@[15; 16) "S" 20 IDENT@15..16 "S"
21 WHITESPACE@[16; 17) " " 21 WHITESPACE@16..17 " "
22 RECORD_FIELD_LIST@[17; 19) 22 RECORD_FIELD_LIST@17..19
23 L_CURLY@[17; 18) "{" 23 L_CURLY@17..18 "{"
24 R_CURLY@[18; 19) "}" 24 R_CURLY@18..19 "}"
25 SEMICOLON@[19; 20) ";" 25 SEMICOLON@19..20 ";"
26 WHITESPACE@[20; 25) "\n " 26 WHITESPACE@20..25 "\n "
27 EXPR_STMT@[25; 41) 27 EXPR_STMT@25..41
28 RECORD_LIT@[25; 40) 28 RECORD_LIT@25..40
29 PATH@[25; 26) 29 PATH@25..26
30 PATH_SEGMENT@[25; 26) 30 PATH_SEGMENT@25..26
31 NAME_REF@[25; 26) 31 NAME_REF@25..26
32 IDENT@[25; 26) "S" 32 IDENT@25..26 "S"
33 WHITESPACE@[26; 27) " " 33 WHITESPACE@26..27 " "
34 RECORD_FIELD_LIST@[27; 40) 34 RECORD_FIELD_LIST@27..40
35 L_CURLY@[27; 28) "{" 35 L_CURLY@27..28 "{"
36 WHITESPACE@[28; 29) " " 36 WHITESPACE@28..29 " "
37 RECORD_FIELD@[29; 30) 37 RECORD_FIELD@29..30
38 PATH_EXPR@[29; 30) 38 PATH_EXPR@29..30
39 PATH@[29; 30) 39 PATH@29..30
40 PATH_SEGMENT@[29; 30) 40 PATH_SEGMENT@29..30
41 NAME_REF@[29; 30) 41 NAME_REF@29..30
42 IDENT@[29; 30) "x" 42 IDENT@29..30 "x"
43 COMMA@[30; 31) "," 43 COMMA@30..31 ","
44 WHITESPACE@[31; 32) " " 44 WHITESPACE@31..32 " "
45 RECORD_FIELD@[32; 37) 45 RECORD_FIELD@32..37
46 NAME_REF@[32; 33) 46 NAME_REF@32..33
47 IDENT@[32; 33) "y" 47 IDENT@32..33 "y"
48 COLON@[33; 34) ":" 48 COLON@33..34 ":"
49 WHITESPACE@[34; 35) " " 49 WHITESPACE@34..35 " "
50 LITERAL@[35; 37) 50 LITERAL@35..37
51 INT_NUMBER@[35; 37) "32" 51 INT_NUMBER@35..37 "32"
52 COMMA@[37; 38) "," 52 COMMA@37..38 ","
53 WHITESPACE@[38; 39) " " 53 WHITESPACE@38..39 " "
54 R_CURLY@[39; 40) "}" 54 R_CURLY@39..40 "}"
55 SEMICOLON@[40; 41) ";" 55 SEMICOLON@40..41 ";"
56 WHITESPACE@[41; 46) "\n " 56 WHITESPACE@41..46 "\n "
57 EXPR_STMT@[46; 83) 57 EXPR_STMT@46..83
58 RECORD_LIT@[46; 82) 58 RECORD_LIT@46..82
59 PATH@[46; 47) 59 PATH@46..47
60 PATH_SEGMENT@[46; 47) 60 PATH_SEGMENT@46..47
61 NAME_REF@[46; 47) 61 NAME_REF@46..47
62 IDENT@[46; 47) "S" 62 IDENT@46..47 "S"
63 WHITESPACE@[47; 48) " " 63 WHITESPACE@47..48 " "
64 RECORD_FIELD_LIST@[48; 82) 64 RECORD_FIELD_LIST@48..82
65 L_CURLY@[48; 49) "{" 65 L_CURLY@48..49 "{"
66 WHITESPACE@[49; 50) " " 66 WHITESPACE@49..50 " "
67 RECORD_FIELD@[50; 51) 67 RECORD_FIELD@50..51
68 PATH_EXPR@[50; 51) 68 PATH_EXPR@50..51
69 PATH@[50; 51) 69 PATH@50..51
70 PATH_SEGMENT@[50; 51) 70 PATH_SEGMENT@50..51
71 NAME_REF@[50; 51) 71 NAME_REF@50..51
72 IDENT@[50; 51) "x" 72 IDENT@50..51 "x"
73 COMMA@[51; 52) "," 73 COMMA@51..52 ","
74 WHITESPACE@[52; 53) " " 74 WHITESPACE@52..53 " "
75 RECORD_FIELD@[53; 58) 75 RECORD_FIELD@53..58
76 NAME_REF@[53; 54) 76 NAME_REF@53..54
77 IDENT@[53; 54) "y" 77 IDENT@53..54 "y"
78 COLON@[54; 55) ":" 78 COLON@54..55 ":"
79 WHITESPACE@[55; 56) " " 79 WHITESPACE@55..56 " "
80 LITERAL@[56; 58) 80 LITERAL@56..58
81 INT_NUMBER@[56; 58) "32" 81 INT_NUMBER@56..58 "32"
82 COMMA@[58; 59) "," 82 COMMA@58..59 ","
83 WHITESPACE@[59; 60) " " 83 WHITESPACE@59..60 " "
84 DOT2@[60; 62) ".." 84 DOT2@60..62 ".."
85 CALL_EXPR@[62; 80) 85 CALL_EXPR@62..80
86 PATH_EXPR@[62; 78) 86 PATH_EXPR@62..78
87 PATH@[62; 78) 87 PATH@62..78
88 PATH@[62; 69) 88 PATH@62..69
89 PATH_SEGMENT@[62; 69) 89 PATH_SEGMENT@62..69
90 NAME_REF@[62; 69) 90 NAME_REF@62..69
91 IDENT@[62; 69) "Default" 91 IDENT@62..69 "Default"
92 COLON2@[69; 71) "::" 92 COLON2@69..71 "::"
93 PATH_SEGMENT@[71; 78) 93 PATH_SEGMENT@71..78
94 NAME_REF@[71; 78) 94 NAME_REF@71..78
95 IDENT@[71; 78) "default" 95 IDENT@71..78 "default"
96 ARG_LIST@[78; 80) 96 ARG_LIST@78..80
97 L_PAREN@[78; 79) "(" 97 L_PAREN@78..79 "("
98 R_PAREN@[79; 80) ")" 98 R_PAREN@79..80 ")"
99 WHITESPACE@[80; 81) " " 99 WHITESPACE@80..81 " "
100 R_CURLY@[81; 82) "}" 100 R_CURLY@81..82 "}"
101 SEMICOLON@[82; 83) ";" 101 SEMICOLON@82..83 ";"
102 WHITESPACE@[83; 88) "\n " 102 WHITESPACE@83..88 "\n "
103 EXPR_STMT@[88; 109) 103 EXPR_STMT@88..109
104 RECORD_LIT@[88; 108) 104 RECORD_LIT@88..108
105 PATH@[88; 99) 105 PATH@88..99
106 PATH_SEGMENT@[88; 99) 106 PATH_SEGMENT@88..99
107 NAME_REF@[88; 99) 107 NAME_REF@88..99
108 IDENT@[88; 99) "TupleStruct" 108 IDENT@88..99 "TupleStruct"
109 WHITESPACE@[99; 100) " " 109 WHITESPACE@99..100 " "
110 RECORD_FIELD_LIST@[100; 108) 110 RECORD_FIELD_LIST@100..108
111 L_CURLY@[100; 101) "{" 111 L_CURLY@100..101 "{"
112 WHITESPACE@[101; 102) " " 112 WHITESPACE@101..102 " "
113 RECORD_FIELD@[102; 106) 113 RECORD_FIELD@102..106
114 NAME_REF@[102; 103) 114 NAME_REF@102..103
115 INT_NUMBER@[102; 103) "0" 115 INT_NUMBER@102..103 "0"
116 COLON@[103; 104) ":" 116 COLON@103..104 ":"
117 WHITESPACE@[104; 105) " " 117 WHITESPACE@104..105 " "
118 LITERAL@[105; 106) 118 LITERAL@105..106
119 INT_NUMBER@[105; 106) "1" 119 INT_NUMBER@105..106 "1"
120 WHITESPACE@[106; 107) " " 120 WHITESPACE@106..107 " "
121 R_CURLY@[107; 108) "}" 121 R_CURLY@107..108 "}"
122 SEMICOLON@[108; 109) ";" 122 SEMICOLON@108..109 ";"
123 WHITESPACE@[109; 110) "\n" 123 WHITESPACE@109..110 "\n"
124 R_CURLY@[110; 111) "}" 124 R_CURLY@110..111 "}"
125 WHITESPACE@[111; 112) "\n" 125 WHITESPACE@111..112 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast
index 99e0a0bec..3cce106e4 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0062_mod_contents.rast
@@ -1,67 +1,67 @@
1SOURCE_FILE@[0; 70) 1SOURCE_FILE@0..70
2 FN_DEF@[0; 11) 2 FN_DEF@0..11
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 11) 11 BLOCK_EXPR@9..11
12 BLOCK@[9; 11) 12 BLOCK@9..11
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 R_CURLY@[10; 11) "}" 14 R_CURLY@10..11 "}"
15 WHITESPACE@[11; 12) "\n" 15 WHITESPACE@11..12 "\n"
16 MACRO_CALL@[12; 31) 16 MACRO_CALL@12..31
17 PATH@[12; 23) 17 PATH@12..23
18 PATH_SEGMENT@[12; 23) 18 PATH_SEGMENT@12..23
19 NAME_REF@[12; 23) 19 NAME_REF@12..23
20 IDENT@[12; 23) "macro_rules" 20 IDENT@12..23 "macro_rules"
21 BANG@[23; 24) "!" 21 BANG@23..24 "!"
22 WHITESPACE@[24; 25) " " 22 WHITESPACE@24..25 " "
23 NAME@[25; 28) 23 NAME@25..28
24 IDENT@[25; 28) "foo" 24 IDENT@25..28 "foo"
25 WHITESPACE@[28; 29) " " 25 WHITESPACE@28..29 " "
26 TOKEN_TREE@[29; 31) 26 TOKEN_TREE@29..31
27 L_CURLY@[29; 30) "{" 27 L_CURLY@29..30 "{"
28 R_CURLY@[30; 31) "}" 28 R_CURLY@30..31 "}"
29 WHITESPACE@[31; 32) "\n" 29 WHITESPACE@31..32 "\n"
30 MACRO_CALL@[32; 44) 30 MACRO_CALL@32..44
31 PATH@[32; 40) 31 PATH@32..40
32 PATH@[32; 35) 32 PATH@32..35
33 PATH_SEGMENT@[32; 35) 33 PATH_SEGMENT@32..35
34 NAME_REF@[32; 35) 34 NAME_REF@32..35
35 IDENT@[32; 35) "foo" 35 IDENT@32..35 "foo"
36 COLON2@[35; 37) "::" 36 COLON2@35..37 "::"
37 PATH_SEGMENT@[37; 40) 37 PATH_SEGMENT@37..40
38 NAME_REF@[37; 40) 38 NAME_REF@37..40
39 IDENT@[37; 40) "bar" 39 IDENT@37..40 "bar"
40 BANG@[40; 41) "!" 40 BANG@40..41 "!"
41 TOKEN_TREE@[41; 43) 41 TOKEN_TREE@41..43
42 L_PAREN@[41; 42) "(" 42 L_PAREN@41..42 "("
43 R_PAREN@[42; 43) ")" 43 R_PAREN@42..43 ")"
44 SEMICOLON@[43; 44) ";" 44 SEMICOLON@43..44 ";"
45 WHITESPACE@[44; 45) "\n" 45 WHITESPACE@44..45 "\n"
46 MACRO_CALL@[45; 59) 46 MACRO_CALL@45..59
47 PATH@[45; 55) 47 PATH@45..55
48 PATH@[45; 50) 48 PATH@45..50
49 PATH_SEGMENT@[45; 50) 49 PATH_SEGMENT@45..50
50 SUPER_KW@[45; 50) "super" 50 SUPER_KW@45..50 "super"
51 COLON2@[50; 52) "::" 51 COLON2@50..52 "::"
52 PATH_SEGMENT@[52; 55) 52 PATH_SEGMENT@52..55
53 NAME_REF@[52; 55) 53 NAME_REF@52..55
54 IDENT@[52; 55) "baz" 54 IDENT@52..55 "baz"
55 BANG@[55; 56) "!" 55 BANG@55..56 "!"
56 WHITESPACE@[56; 57) " " 56 WHITESPACE@56..57 " "
57 TOKEN_TREE@[57; 59) 57 TOKEN_TREE@57..59
58 L_CURLY@[57; 58) "{" 58 L_CURLY@57..58 "{"
59 R_CURLY@[58; 59) "}" 59 R_CURLY@58..59 "}"
60 WHITESPACE@[59; 60) "\n" 60 WHITESPACE@59..60 "\n"
61 STRUCT_DEF@[60; 69) 61 STRUCT_DEF@60..69
62 STRUCT_KW@[60; 66) "struct" 62 STRUCT_KW@60..66 "struct"
63 WHITESPACE@[66; 67) " " 63 WHITESPACE@66..67 " "
64 NAME@[67; 68) 64 NAME@67..68
65 IDENT@[67; 68) "S" 65 IDENT@67..68 "S"
66 SEMICOLON@[68; 69) ";" 66 SEMICOLON@68..69 ";"
67 WHITESPACE@[69; 70) "\n" 67 WHITESPACE@69..70 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast
index 278549a46..24b9a1f46 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0063_impl_def_neg.rast
@@ -1,23 +1,23 @@
1SOURCE_FILE@[0; 20) 1SOURCE_FILE@0..20
2 IMPL_DEF@[0; 19) 2 IMPL_DEF@0..19
3 IMPL_KW@[0; 4) "impl" 3 IMPL_KW@0..4 "impl"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 BANG@[5; 6) "!" 5 BANG@5..6 "!"
6 PATH_TYPE@[6; 10) 6 PATH_TYPE@6..10
7 PATH@[6; 10) 7 PATH@6..10
8 PATH_SEGMENT@[6; 10) 8 PATH_SEGMENT@6..10
9 NAME_REF@[6; 10) 9 NAME_REF@6..10
10 IDENT@[6; 10) "Send" 10 IDENT@6..10 "Send"
11 WHITESPACE@[10; 11) " " 11 WHITESPACE@10..11 " "
12 FOR_KW@[11; 14) "for" 12 FOR_KW@11..14 "for"
13 WHITESPACE@[14; 15) " " 13 WHITESPACE@14..15 " "
14 PATH_TYPE@[15; 16) 14 PATH_TYPE@15..16
15 PATH@[15; 16) 15 PATH@15..16
16 PATH_SEGMENT@[15; 16) 16 PATH_SEGMENT@15..16
17 NAME_REF@[15; 16) 17 NAME_REF@15..16
18 IDENT@[15; 16) "X" 18 IDENT@15..16 "X"
19 WHITESPACE@[16; 17) " " 19 WHITESPACE@16..17 " "
20 ITEM_LIST@[17; 19) 20 ITEM_LIST@17..19
21 L_CURLY@[17; 18) "{" 21 L_CURLY@17..18 "{"
22 R_CURLY@[18; 19) "}" 22 R_CURLY@18..19 "}"
23 WHITESPACE@[19; 20) "\n" 23 WHITESPACE@19..20 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast
index df24ae189..5e1b4cc68 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0064_if_expr.rast
@@ -1,132 +1,132 @@
1SOURCE_FILE@[0; 137) 1SOURCE_FILE@0..137
2 FN_DEF@[0; 136) 2 FN_DEF@0..136
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 136) 11 BLOCK_EXPR@9..136
12 BLOCK@[9; 136) 12 BLOCK@9..136
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 26) 15 EXPR_STMT@15..26
16 IF_EXPR@[15; 25) 16 IF_EXPR@15..25
17 IF_KW@[15; 17) "if" 17 IF_KW@15..17 "if"
18 WHITESPACE@[17; 18) " " 18 WHITESPACE@17..18 " "
19 CONDITION@[18; 22) 19 CONDITION@18..22
20 LITERAL@[18; 22) 20 LITERAL@18..22
21 TRUE_KW@[18; 22) "true" 21 TRUE_KW@18..22 "true"
22 WHITESPACE@[22; 23) " " 22 WHITESPACE@22..23 " "
23 BLOCK_EXPR@[23; 25) 23 BLOCK_EXPR@23..25
24 BLOCK@[23; 25) 24 BLOCK@23..25
25 L_CURLY@[23; 24) "{" 25 L_CURLY@23..24 "{"
26 R_CURLY@[24; 25) "}" 26 R_CURLY@24..25 "}"
27 SEMICOLON@[25; 26) ";" 27 SEMICOLON@25..26 ";"
28 WHITESPACE@[26; 31) "\n " 28 WHITESPACE@26..31 "\n "
29 EXPR_STMT@[31; 50) 29 EXPR_STMT@31..50
30 IF_EXPR@[31; 49) 30 IF_EXPR@31..49
31 IF_KW@[31; 33) "if" 31 IF_KW@31..33 "if"
32 WHITESPACE@[33; 34) " " 32 WHITESPACE@33..34 " "
33 CONDITION@[34; 38) 33 CONDITION@34..38
34 LITERAL@[34; 38) 34 LITERAL@34..38
35 TRUE_KW@[34; 38) "true" 35 TRUE_KW@34..38 "true"
36 WHITESPACE@[38; 39) " " 36 WHITESPACE@38..39 " "
37 BLOCK_EXPR@[39; 41) 37 BLOCK_EXPR@39..41
38 BLOCK@[39; 41) 38 BLOCK@39..41
39 L_CURLY@[39; 40) "{" 39 L_CURLY@39..40 "{"
40 R_CURLY@[40; 41) "}" 40 R_CURLY@40..41 "}"
41 WHITESPACE@[41; 42) " " 41 WHITESPACE@41..42 " "
42 ELSE_KW@[42; 46) "else" 42 ELSE_KW@42..46 "else"
43 WHITESPACE@[46; 47) " " 43 WHITESPACE@46..47 " "
44 BLOCK_EXPR@[47; 49) 44 BLOCK_EXPR@47..49
45 BLOCK@[47; 49) 45 BLOCK@47..49
46 L_CURLY@[47; 48) "{" 46 L_CURLY@47..48 "{"
47 R_CURLY@[48; 49) "}" 47 R_CURLY@48..49 "}"
48 SEMICOLON@[49; 50) ";" 48 SEMICOLON@49..50 ";"
49 WHITESPACE@[50; 55) "\n " 49 WHITESPACE@50..55 "\n "
50 EXPR_STMT@[55; 91) 50 EXPR_STMT@55..91
51 IF_EXPR@[55; 90) 51 IF_EXPR@55..90
52 IF_KW@[55; 57) "if" 52 IF_KW@55..57 "if"
53 WHITESPACE@[57; 58) " " 53 WHITESPACE@57..58 " "
54 CONDITION@[58; 62) 54 CONDITION@58..62
55 LITERAL@[58; 62) 55 LITERAL@58..62
56 TRUE_KW@[58; 62) "true" 56 TRUE_KW@58..62 "true"
57 WHITESPACE@[62; 63) " " 57 WHITESPACE@62..63 " "
58 BLOCK_EXPR@[63; 65) 58 BLOCK_EXPR@63..65
59 BLOCK@[63; 65) 59 BLOCK@63..65
60 L_CURLY@[63; 64) "{" 60 L_CURLY@63..64 "{"
61 R_CURLY@[64; 65) "}" 61 R_CURLY@64..65 "}"
62 WHITESPACE@[65; 66) " " 62 WHITESPACE@65..66 " "
63 ELSE_KW@[66; 70) "else" 63 ELSE_KW@66..70 "else"
64 WHITESPACE@[70; 71) " " 64 WHITESPACE@70..71 " "
65 IF_EXPR@[71; 90) 65 IF_EXPR@71..90
66 IF_KW@[71; 73) "if" 66 IF_KW@71..73 "if"
67 WHITESPACE@[73; 74) " " 67 WHITESPACE@73..74 " "
68 CONDITION@[74; 79) 68 CONDITION@74..79
69 LITERAL@[74; 79) 69 LITERAL@74..79
70 FALSE_KW@[74; 79) "false" 70 FALSE_KW@74..79 "false"
71 WHITESPACE@[79; 80) " " 71 WHITESPACE@79..80 " "
72 BLOCK_EXPR@[80; 82) 72 BLOCK_EXPR@80..82
73 BLOCK@[80; 82) 73 BLOCK@80..82
74 L_CURLY@[80; 81) "{" 74 L_CURLY@80..81 "{"
75 R_CURLY@[81; 82) "}" 75 R_CURLY@81..82 "}"
76 WHITESPACE@[82; 83) " " 76 WHITESPACE@82..83 " "
77 ELSE_KW@[83; 87) "else" 77 ELSE_KW@83..87 "else"
78 WHITESPACE@[87; 88) " " 78 WHITESPACE@87..88 " "
79 BLOCK_EXPR@[88; 90) 79 BLOCK_EXPR@88..90
80 BLOCK@[88; 90) 80 BLOCK@88..90
81 L_CURLY@[88; 89) "{" 81 L_CURLY@88..89 "{"
82 R_CURLY@[89; 90) "}" 82 R_CURLY@89..90 "}"
83 SEMICOLON@[90; 91) ";" 83 SEMICOLON@90..91 ";"
84 WHITESPACE@[91; 96) "\n " 84 WHITESPACE@91..96 "\n "
85 EXPR_STMT@[96; 104) 85 EXPR_STMT@96..104
86 IF_EXPR@[96; 103) 86 IF_EXPR@96..103
87 IF_KW@[96; 98) "if" 87 IF_KW@96..98 "if"
88 WHITESPACE@[98; 99) " " 88 WHITESPACE@98..99 " "
89 CONDITION@[99; 100) 89 CONDITION@99..100
90 PATH_EXPR@[99; 100) 90 PATH_EXPR@99..100
91 PATH@[99; 100) 91 PATH@99..100
92 PATH_SEGMENT@[99; 100) 92 PATH_SEGMENT@99..100
93 NAME_REF@[99; 100) 93 NAME_REF@99..100
94 IDENT@[99; 100) "S" 94 IDENT@99..100 "S"
95 WHITESPACE@[100; 101) " " 95 WHITESPACE@100..101 " "
96 BLOCK_EXPR@[101; 103) 96 BLOCK_EXPR@101..103
97 BLOCK@[101; 103) 97 BLOCK@101..103
98 L_CURLY@[101; 102) "{" 98 L_CURLY@101..102 "{"
99 R_CURLY@[102; 103) "}" 99 R_CURLY@102..103 "}"
100 SEMICOLON@[103; 104) ";" 100 SEMICOLON@103..104 ";"
101 WHITESPACE@[104; 109) "\n " 101 WHITESPACE@104..109 "\n "
102 EXPR_STMT@[109; 134) 102 EXPR_STMT@109..134
103 IF_EXPR@[109; 133) 103 IF_EXPR@109..133
104 IF_KW@[109; 111) "if" 104 IF_KW@109..111 "if"
105 WHITESPACE@[111; 112) " " 105 WHITESPACE@111..112 " "
106 CONDITION@[112; 120) 106 CONDITION@112..120
107 BLOCK_EXPR@[112; 120) 107 BLOCK_EXPR@112..120
108 BLOCK@[112; 120) 108 BLOCK@112..120
109 L_CURLY@[112; 113) "{" 109 L_CURLY@112..113 "{"
110 WHITESPACE@[113; 114) " " 110 WHITESPACE@113..114 " "
111 LITERAL@[114; 118) 111 LITERAL@114..118
112 TRUE_KW@[114; 118) "true" 112 TRUE_KW@114..118 "true"
113 WHITESPACE@[118; 119) " " 113 WHITESPACE@118..119 " "
114 R_CURLY@[119; 120) "}" 114 R_CURLY@119..120 "}"
115 WHITESPACE@[120; 121) " " 115 WHITESPACE@120..121 " "
116 BLOCK_EXPR@[121; 124) 116 BLOCK_EXPR@121..124
117 BLOCK@[121; 124) 117 BLOCK@121..124
118 L_CURLY@[121; 122) "{" 118 L_CURLY@121..122 "{"
119 WHITESPACE@[122; 123) " " 119 WHITESPACE@122..123 " "
120 R_CURLY@[123; 124) "}" 120 R_CURLY@123..124 "}"
121 WHITESPACE@[124; 125) " " 121 WHITESPACE@124..125 " "
122 ELSE_KW@[125; 129) "else" 122 ELSE_KW@125..129 "else"
123 WHITESPACE@[129; 130) " " 123 WHITESPACE@129..130 " "
124 BLOCK_EXPR@[130; 133) 124 BLOCK_EXPR@130..133
125 BLOCK@[130; 133) 125 BLOCK@130..133
126 L_CURLY@[130; 131) "{" 126 L_CURLY@130..131 "{"
127 WHITESPACE@[131; 132) " " 127 WHITESPACE@131..132 " "
128 R_CURLY@[132; 133) "}" 128 R_CURLY@132..133 "}"
129 SEMICOLON@[133; 134) ";" 129 SEMICOLON@133..134 ";"
130 WHITESPACE@[134; 135) "\n" 130 WHITESPACE@134..135 "\n"
131 R_CURLY@[135; 136) "}" 131 R_CURLY@135..136 "}"
132 WHITESPACE@[136; 137) "\n" 132 WHITESPACE@136..137 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast
index bbf347580..8e10f3673 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0065_dyn_trait_type.rast
@@ -1,43 +1,43 @@
1SOURCE_FILE@[0; 42) 1SOURCE_FILE@0..42
2 TYPE_ALIAS_DEF@[0; 41) 2 TYPE_ALIAS_DEF@0..41
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "A" 6 IDENT@5..6 "A"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 DYN_TRAIT_TYPE@[9; 40) 10 DYN_TRAIT_TYPE@9..40
11 DYN_KW@[9; 12) "dyn" 11 DYN_KW@9..12 "dyn"
12 WHITESPACE@[12; 13) " " 12 WHITESPACE@12..13 " "
13 TYPE_BOUND_LIST@[13; 40) 13 TYPE_BOUND_LIST@13..40
14 TYPE_BOUND@[13; 35) 14 TYPE_BOUND@13..35
15 PATH_TYPE@[13; 35) 15 PATH_TYPE@13..35
16 PATH@[13; 35) 16 PATH@13..35
17 PATH_SEGMENT@[13; 35) 17 PATH_SEGMENT@13..35
18 NAME_REF@[13; 21) 18 NAME_REF@13..21
19 IDENT@[13; 21) "Iterator" 19 IDENT@13..21 "Iterator"
20 TYPE_ARG_LIST@[21; 35) 20 TYPE_ARG_LIST@21..35
21 L_ANGLE@[21; 22) "<" 21 L_ANGLE@21..22 "<"
22 ASSOC_TYPE_ARG@[22; 34) 22 ASSOC_TYPE_ARG@22..34
23 NAME_REF@[22; 26) 23 NAME_REF@22..26
24 IDENT@[22; 26) "Item" 24 IDENT@22..26 "Item"
25 EQ@[26; 27) "=" 25 EQ@26..27 "="
26 PATH_TYPE@[27; 34) 26 PATH_TYPE@27..34
27 PATH@[27; 34) 27 PATH@27..34
28 PATH_SEGMENT@[27; 34) 28 PATH_SEGMENT@27..34
29 NAME_REF@[27; 30) 29 NAME_REF@27..30
30 IDENT@[27; 30) "Foo" 30 IDENT@27..30 "Foo"
31 TYPE_ARG_LIST@[30; 34) 31 TYPE_ARG_LIST@30..34
32 L_ANGLE@[30; 31) "<" 32 L_ANGLE@30..31 "<"
33 LIFETIME_ARG@[31; 33) 33 LIFETIME_ARG@31..33
34 LIFETIME@[31; 33) "\'a" 34 LIFETIME@31..33 "\'a"
35 R_ANGLE@[33; 34) ">" 35 R_ANGLE@33..34 ">"
36 R_ANGLE@[34; 35) ">" 36 R_ANGLE@34..35 ">"
37 WHITESPACE@[35; 36) " " 37 WHITESPACE@35..36 " "
38 PLUS@[36; 37) "+" 38 PLUS@36..37 "+"
39 WHITESPACE@[37; 38) " " 39 WHITESPACE@37..38 " "
40 TYPE_BOUND@[38; 40) 40 TYPE_BOUND@38..40
41 LIFETIME@[38; 40) "\'a" 41 LIFETIME@38..40 "\'a"
42 SEMICOLON@[40; 41) ";" 42 SEMICOLON@40..41 ";"
43 WHITESPACE@[41; 42) "\n" 43 WHITESPACE@41..42 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast
index 85edd0845..108e5c5cc 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0066_match_arm.rast
@@ -1,152 +1,152 @@
1SOURCE_FILE@[0; 167) 1SOURCE_FILE@0..167
2 FN_DEF@[0; 166) 2 FN_DEF@0..166
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 166) 11 BLOCK_EXPR@9..166
12 BLOCK@[9; 166) 12 BLOCK@9..166
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 164) 15 EXPR_STMT@15..164
16 MATCH_EXPR@[15; 163) 16 MATCH_EXPR@15..163
17 MATCH_KW@[15; 20) "match" 17 MATCH_KW@15..20 "match"
18 WHITESPACE@[20; 21) " " 18 WHITESPACE@20..21 " "
19 TUPLE_EXPR@[21; 23) 19 TUPLE_EXPR@21..23
20 L_PAREN@[21; 22) "(" 20 L_PAREN@21..22 "("
21 R_PAREN@[22; 23) ")" 21 R_PAREN@22..23 ")"
22 WHITESPACE@[23; 24) " " 22 WHITESPACE@23..24 " "
23 MATCH_ARM_LIST@[24; 163) 23 MATCH_ARM_LIST@24..163
24 L_CURLY@[24; 25) "{" 24 L_CURLY@24..25 "{"
25 WHITESPACE@[25; 34) "\n " 25 WHITESPACE@25..34 "\n "
26 MATCH_ARM@[34; 41) 26 MATCH_ARM@34..41
27 PLACEHOLDER_PAT@[34; 35) 27 PLACEHOLDER_PAT@34..35
28 UNDERSCORE@[34; 35) "_" 28 UNDERSCORE@34..35 "_"
29 WHITESPACE@[35; 36) " " 29 WHITESPACE@35..36 " "
30 FAT_ARROW@[36; 38) "=>" 30 FAT_ARROW@36..38 "=>"
31 WHITESPACE@[38; 39) " " 31 WHITESPACE@38..39 " "
32 TUPLE_EXPR@[39; 41) 32 TUPLE_EXPR@39..41
33 L_PAREN@[39; 40) "(" 33 L_PAREN@39..40 "("
34 R_PAREN@[40; 41) ")" 34 R_PAREN@40..41 ")"
35 COMMA@[41; 42) "," 35 COMMA@41..42 ","
36 WHITESPACE@[42; 51) "\n " 36 WHITESPACE@42..51 "\n "
37 MATCH_ARM@[51; 83) 37 MATCH_ARM@51..83
38 PLACEHOLDER_PAT@[51; 52) 38 PLACEHOLDER_PAT@51..52
39 UNDERSCORE@[51; 52) "_" 39 UNDERSCORE@51..52 "_"
40 WHITESPACE@[52; 53) " " 40 WHITESPACE@52..53 " "
41 MATCH_GUARD@[53; 77) 41 MATCH_GUARD@53..77
42 IF_KW@[53; 55) "if" 42 IF_KW@53..55 "if"
43 WHITESPACE@[55; 56) " " 43 WHITESPACE@55..56 " "
44 BIN_EXPR@[56; 77) 44 BIN_EXPR@56..77
45 PATH_EXPR@[56; 60) 45 PATH_EXPR@56..60
46 PATH@[56; 60) 46 PATH@56..60
47 PATH_SEGMENT@[56; 60) 47 PATH_SEGMENT@56..60
48 NAME_REF@[56; 60) 48 NAME_REF@56..60
49 IDENT@[56; 60) "Test" 49 IDENT@56..60 "Test"
50 WHITESPACE@[60; 61) " " 50 WHITESPACE@60..61 " "
51 R_ANGLE@[61; 62) ">" 51 R_ANGLE@61..62 ">"
52 WHITESPACE@[62; 63) " " 52 WHITESPACE@62..63 " "
53 RECORD_LIT@[63; 77) 53 RECORD_LIT@63..77
54 PATH@[63; 67) 54 PATH@63..67
55 PATH_SEGMENT@[63; 67) 55 PATH_SEGMENT@63..67
56 NAME_REF@[63; 67) 56 NAME_REF@63..67
57 IDENT@[63; 67) "Test" 57 IDENT@63..67 "Test"
58 RECORD_FIELD_LIST@[67; 77) 58 RECORD_FIELD_LIST@67..77
59 L_CURLY@[67; 68) "{" 59 L_CURLY@67..68 "{"
60 RECORD_FIELD@[68; 76) 60 RECORD_FIELD@68..76
61 NAME_REF@[68; 73) 61 NAME_REF@68..73
62 IDENT@[68; 73) "field" 62 IDENT@68..73 "field"
63 COLON@[73; 74) ":" 63 COLON@73..74 ":"
64 WHITESPACE@[74; 75) " " 64 WHITESPACE@74..75 " "
65 LITERAL@[75; 76) 65 LITERAL@75..76
66 INT_NUMBER@[75; 76) "0" 66 INT_NUMBER@75..76 "0"
67 R_CURLY@[76; 77) "}" 67 R_CURLY@76..77 "}"
68 WHITESPACE@[77; 78) " " 68 WHITESPACE@77..78 " "
69 FAT_ARROW@[78; 80) "=>" 69 FAT_ARROW@78..80 "=>"
70 WHITESPACE@[80; 81) " " 70 WHITESPACE@80..81 " "
71 TUPLE_EXPR@[81; 83) 71 TUPLE_EXPR@81..83
72 L_PAREN@[81; 82) "(" 72 L_PAREN@81..82 "("
73 R_PAREN@[82; 83) ")" 73 R_PAREN@82..83 ")"
74 COMMA@[83; 84) "," 74 COMMA@83..84 ","
75 WHITESPACE@[84; 93) "\n " 75 WHITESPACE@84..93 "\n "
76 MATCH_ARM@[93; 109) 76 MATCH_ARM@93..109
77 OR_PAT@[93; 98) 77 OR_PAT@93..98
78 BIND_PAT@[93; 94) 78 BIND_PAT@93..94
79 NAME@[93; 94) 79 NAME@93..94
80 IDENT@[93; 94) "X" 80 IDENT@93..94 "X"
81 WHITESPACE@[94; 95) " " 81 WHITESPACE@94..95 " "
82 PIPE@[95; 96) "|" 82 PIPE@95..96 "|"
83 WHITESPACE@[96; 97) " " 83 WHITESPACE@96..97 " "
84 BIND_PAT@[97; 98) 84 BIND_PAT@97..98
85 NAME@[97; 98) 85 NAME@97..98
86 IDENT@[97; 98) "Y" 86 IDENT@97..98 "Y"
87 WHITESPACE@[98; 99) " " 87 WHITESPACE@98..99 " "
88 MATCH_GUARD@[99; 103) 88 MATCH_GUARD@99..103
89 IF_KW@[99; 101) "if" 89 IF_KW@99..101 "if"
90 WHITESPACE@[101; 102) " " 90 WHITESPACE@101..102 " "
91 PATH_EXPR@[102; 103) 91 PATH_EXPR@102..103
92 PATH@[102; 103) 92 PATH@102..103
93 PATH_SEGMENT@[102; 103) 93 PATH_SEGMENT@102..103
94 NAME_REF@[102; 103) 94 NAME_REF@102..103
95 IDENT@[102; 103) "Z" 95 IDENT@102..103 "Z"
96 WHITESPACE@[103; 104) " " 96 WHITESPACE@103..104 " "
97 FAT_ARROW@[104; 106) "=>" 97 FAT_ARROW@104..106 "=>"
98 WHITESPACE@[106; 107) " " 98 WHITESPACE@106..107 " "
99 TUPLE_EXPR@[107; 109) 99 TUPLE_EXPR@107..109
100 L_PAREN@[107; 108) "(" 100 L_PAREN@107..108 "("
101 R_PAREN@[108; 109) ")" 101 R_PAREN@108..109 ")"
102 COMMA@[109; 110) "," 102 COMMA@109..110 ","
103 WHITESPACE@[110; 119) "\n " 103 WHITESPACE@110..119 "\n "
104 MATCH_ARM@[119; 137) 104 MATCH_ARM@119..137
105 PIPE@[119; 120) "|" 105 PIPE@119..120 "|"
106 WHITESPACE@[120; 121) " " 106 WHITESPACE@120..121 " "
107 OR_PAT@[121; 126) 107 OR_PAT@121..126
108 BIND_PAT@[121; 122) 108 BIND_PAT@121..122
109 NAME@[121; 122) 109 NAME@121..122
110 IDENT@[121; 122) "X" 110 IDENT@121..122 "X"
111 WHITESPACE@[122; 123) " " 111 WHITESPACE@122..123 " "
112 PIPE@[123; 124) "|" 112 PIPE@123..124 "|"
113 WHITESPACE@[124; 125) " " 113 WHITESPACE@124..125 " "
114 BIND_PAT@[125; 126) 114 BIND_PAT@125..126
115 NAME@[125; 126) 115 NAME@125..126
116 IDENT@[125; 126) "Y" 116 IDENT@125..126 "Y"
117 WHITESPACE@[126; 127) " " 117 WHITESPACE@126..127 " "
118 MATCH_GUARD@[127; 131) 118 MATCH_GUARD@127..131
119 IF_KW@[127; 129) "if" 119 IF_KW@127..129 "if"
120 WHITESPACE@[129; 130) " " 120 WHITESPACE@129..130 " "
121 PATH_EXPR@[130; 131) 121 PATH_EXPR@130..131
122 PATH@[130; 131) 122 PATH@130..131
123 PATH_SEGMENT@[130; 131) 123 PATH_SEGMENT@130..131
124 NAME_REF@[130; 131) 124 NAME_REF@130..131
125 IDENT@[130; 131) "Z" 125 IDENT@130..131 "Z"
126 WHITESPACE@[131; 132) " " 126 WHITESPACE@131..132 " "
127 FAT_ARROW@[132; 134) "=>" 127 FAT_ARROW@132..134 "=>"
128 WHITESPACE@[134; 135) " " 128 WHITESPACE@134..135 " "
129 TUPLE_EXPR@[135; 137) 129 TUPLE_EXPR@135..137
130 L_PAREN@[135; 136) "(" 130 L_PAREN@135..136 "("
131 R_PAREN@[136; 137) ")" 131 R_PAREN@136..137 ")"
132 COMMA@[137; 138) "," 132 COMMA@137..138 ","
133 WHITESPACE@[138; 147) "\n " 133 WHITESPACE@138..147 "\n "
134 MATCH_ARM@[147; 156) 134 MATCH_ARM@147..156
135 PIPE@[147; 148) "|" 135 PIPE@147..148 "|"
136 WHITESPACE@[148; 149) " " 136 WHITESPACE@148..149 " "
137 BIND_PAT@[149; 150) 137 BIND_PAT@149..150
138 NAME@[149; 150) 138 NAME@149..150
139 IDENT@[149; 150) "X" 139 IDENT@149..150 "X"
140 WHITESPACE@[150; 151) " " 140 WHITESPACE@150..151 " "
141 FAT_ARROW@[151; 153) "=>" 141 FAT_ARROW@151..153 "=>"
142 WHITESPACE@[153; 154) " " 142 WHITESPACE@153..154 " "
143 TUPLE_EXPR@[154; 156) 143 TUPLE_EXPR@154..156
144 L_PAREN@[154; 155) "(" 144 L_PAREN@154..155 "("
145 R_PAREN@[155; 156) ")" 145 R_PAREN@155..156 ")"
146 COMMA@[156; 157) "," 146 COMMA@156..157 ","
147 WHITESPACE@[157; 162) "\n " 147 WHITESPACE@157..162 "\n "
148 R_CURLY@[162; 163) "}" 148 R_CURLY@162..163 "}"
149 SEMICOLON@[163; 164) ";" 149 SEMICOLON@163..164 ";"
150 WHITESPACE@[164; 165) "\n" 150 WHITESPACE@164..165 "\n"
151 R_CURLY@[165; 166) "}" 151 R_CURLY@165..166 "}"
152 WHITESPACE@[166; 167) "\n" 152 WHITESPACE@166..167 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast
index 35994e3fd..caa76fe8a 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0067_crate_path.rast
@@ -1,15 +1,15 @@
1SOURCE_FILE@[0; 16) 1SOURCE_FILE@0..16
2 USE_ITEM@[0; 15) 2 USE_ITEM@0..15
3 USE_KW@[0; 3) "use" 3 USE_KW@0..3 "use"
4 WHITESPACE@[3; 4) " " 4 WHITESPACE@3..4 " "
5 USE_TREE@[4; 14) 5 USE_TREE@4..14
6 PATH@[4; 14) 6 PATH@4..14
7 PATH@[4; 9) 7 PATH@4..9
8 PATH_SEGMENT@[4; 9) 8 PATH_SEGMENT@4..9
9 CRATE_KW@[4; 9) "crate" 9 CRATE_KW@4..9 "crate"
10 COLON2@[9; 11) "::" 10 COLON2@9..11 "::"
11 PATH_SEGMENT@[11; 14) 11 PATH_SEGMENT@11..14
12 NAME_REF@[11; 14) 12 NAME_REF@11..14
13 IDENT@[11; 14) "foo" 13 IDENT@11..14 "foo"
14 SEMICOLON@[14; 15) ";" 14 SEMICOLON@14..15 ";"
15 WHITESPACE@[15; 16) "\n" 15 WHITESPACE@15..16 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.rast b/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.rast
index 9d7982684..ec2496072 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0068_union_items.rast
@@ -1,46 +1,46 @@
1SOURCE_FILE@[0; 51) 1SOURCE_FILE@0..51
2 UNION_DEF@[0; 12) 2 UNION_DEF@0..12
3 UNION_KW@[0; 5) "union" 3 UNION_KW@0..5 "union"
4 WHITESPACE@[5; 6) " " 4 WHITESPACE@5..6 " "
5 NAME@[6; 9) 5 NAME@6..9
6 IDENT@[6; 9) "Foo" 6 IDENT@6..9 "Foo"
7 WHITESPACE@[9; 10) " " 7 WHITESPACE@9..10 " "
8 RECORD_FIELD_DEF_LIST@[10; 12) 8 RECORD_FIELD_DEF_LIST@10..12
9 L_CURLY@[10; 11) "{" 9 L_CURLY@10..11 "{"
10 R_CURLY@[11; 12) "}" 10 R_CURLY@11..12 "}"
11 WHITESPACE@[12; 13) "\n" 11 WHITESPACE@12..13 "\n"
12 UNION_DEF@[13; 50) 12 UNION_DEF@13..50
13 UNION_KW@[13; 18) "union" 13 UNION_KW@13..18 "union"
14 WHITESPACE@[18; 19) " " 14 WHITESPACE@18..19 " "
15 NAME@[19; 22) 15 NAME@19..22
16 IDENT@[19; 22) "Foo" 16 IDENT@19..22 "Foo"
17 WHITESPACE@[22; 23) " " 17 WHITESPACE@22..23 " "
18 RECORD_FIELD_DEF_LIST@[23; 50) 18 RECORD_FIELD_DEF_LIST@23..50
19 L_CURLY@[23; 24) "{" 19 L_CURLY@23..24 "{"
20 WHITESPACE@[24; 29) "\n " 20 WHITESPACE@24..29 "\n "
21 RECORD_FIELD_DEF@[29; 35) 21 RECORD_FIELD_DEF@29..35
22 NAME@[29; 30) 22 NAME@29..30
23 IDENT@[29; 30) "a" 23 IDENT@29..30 "a"
24 COLON@[30; 31) ":" 24 COLON@30..31 ":"
25 WHITESPACE@[31; 32) " " 25 WHITESPACE@31..32 " "
26 PATH_TYPE@[32; 35) 26 PATH_TYPE@32..35
27 PATH@[32; 35) 27 PATH@32..35
28 PATH_SEGMENT@[32; 35) 28 PATH_SEGMENT@32..35
29 NAME_REF@[32; 35) 29 NAME_REF@32..35
30 IDENT@[32; 35) "i32" 30 IDENT@32..35 "i32"
31 COMMA@[35; 36) "," 31 COMMA@35..36 ","
32 WHITESPACE@[36; 41) "\n " 32 WHITESPACE@36..41 "\n "
33 RECORD_FIELD_DEF@[41; 47) 33 RECORD_FIELD_DEF@41..47
34 NAME@[41; 42) 34 NAME@41..42
35 IDENT@[41; 42) "b" 35 IDENT@41..42 "b"
36 COLON@[42; 43) ":" 36 COLON@42..43 ":"
37 WHITESPACE@[43; 44) " " 37 WHITESPACE@43..44 " "
38 PATH_TYPE@[44; 47) 38 PATH_TYPE@44..47
39 PATH@[44; 47) 39 PATH@44..47
40 PATH_SEGMENT@[44; 47) 40 PATH_SEGMENT@44..47
41 NAME_REF@[44; 47) 41 NAME_REF@44..47
42 IDENT@[44; 47) "f32" 42 IDENT@44..47 "f32"
43 COMMA@[47; 48) "," 43 COMMA@47..48 ","
44 WHITESPACE@[48; 49) "\n" 44 WHITESPACE@48..49 "\n"
45 R_CURLY@[49; 50) "}" 45 R_CURLY@49..50 "}"
46 WHITESPACE@[50; 51) "\n" 46 WHITESPACE@50..51 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast
index e24247890..18cd5271f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0069_use_tree_list_after_path.rast
@@ -1,37 +1,37 @@
1SOURCE_FILE@[0; 37) 1SOURCE_FILE@0..37
2 USE_ITEM@[0; 18) 2 USE_ITEM@0..18
3 USE_KW@[0; 3) "use" 3 USE_KW@0..3 "use"
4 WHITESPACE@[3; 4) " " 4 WHITESPACE@3..4 " "
5 USE_TREE@[4; 17) 5 USE_TREE@4..17
6 PATH@[4; 9) 6 PATH@4..9
7 PATH_SEGMENT@[4; 9) 7 PATH_SEGMENT@4..9
8 CRATE_KW@[4; 9) "crate" 8 CRATE_KW@4..9 "crate"
9 COLON2@[9; 11) "::" 9 COLON2@9..11 "::"
10 USE_TREE_LIST@[11; 17) 10 USE_TREE_LIST@11..17
11 L_CURLY@[11; 12) "{" 11 L_CURLY@11..12 "{"
12 USE_TREE@[12; 16) 12 USE_TREE@12..16
13 PATH@[12; 16) 13 PATH@12..16
14 PATH_SEGMENT@[12; 16) 14 PATH_SEGMENT@12..16
15 NAME_REF@[12; 16) 15 NAME_REF@12..16
16 IDENT@[12; 16) "Item" 16 IDENT@12..16 "Item"
17 R_CURLY@[16; 17) "}" 17 R_CURLY@16..17 "}"
18 SEMICOLON@[17; 18) ";" 18 SEMICOLON@17..18 ";"
19 WHITESPACE@[18; 19) "\n" 19 WHITESPACE@18..19 "\n"
20 USE_ITEM@[19; 36) 20 USE_ITEM@19..36
21 USE_KW@[19; 22) "use" 21 USE_KW@19..22 "use"
22 WHITESPACE@[22; 23) " " 22 WHITESPACE@22..23 " "
23 USE_TREE@[23; 35) 23 USE_TREE@23..35
24 PATH@[23; 27) 24 PATH@23..27
25 PATH_SEGMENT@[23; 27) 25 PATH_SEGMENT@23..27
26 SELF_KW@[23; 27) "self" 26 SELF_KW@23..27 "self"
27 COLON2@[27; 29) "::" 27 COLON2@27..29 "::"
28 USE_TREE_LIST@[29; 35) 28 USE_TREE_LIST@29..35
29 L_CURLY@[29; 30) "{" 29 L_CURLY@29..30 "{"
30 USE_TREE@[30; 34) 30 USE_TREE@30..34
31 PATH@[30; 34) 31 PATH@30..34
32 PATH_SEGMENT@[30; 34) 32 PATH_SEGMENT@30..34
33 NAME_REF@[30; 34) 33 NAME_REF@30..34
34 IDENT@[30; 34) "Item" 34 IDENT@30..34 "Item"
35 R_CURLY@[34; 35) "}" 35 R_CURLY@34..35 "}"
36 SEMICOLON@[35; 36) ";" 36 SEMICOLON@35..36 ";"
37 WHITESPACE@[36; 37) "\n" 37 WHITESPACE@36..37 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
index 4b075569a..1e888063e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0070_stmt_bin_expr_ambiguity.rast
@@ -1,53 +1,53 @@
1SOURCE_FILE@[0; 46) 1SOURCE_FILE@0..46
2 FN_DEF@[0; 45) 2 FN_DEF@0..45
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 45) 11 BLOCK_EXPR@9..45
12 BLOCK@[9; 45) 12 BLOCK@9..45
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 31) 15 LET_STMT@15..31
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 PLACEHOLDER_PAT@[19; 20) 18 PLACEHOLDER_PAT@19..20
19 UNDERSCORE@[19; 20) "_" 19 UNDERSCORE@19..20 "_"
20 WHITESPACE@[20; 21) " " 20 WHITESPACE@20..21 " "
21 EQ@[21; 22) "=" 21 EQ@21..22 "="
22 WHITESPACE@[22; 23) " " 22 WHITESPACE@22..23 " "
23 BIN_EXPR@[23; 30) 23 BIN_EXPR@23..30
24 BLOCK_EXPR@[23; 26) 24 BLOCK_EXPR@23..26
25 BLOCK@[23; 26) 25 BLOCK@23..26
26 L_CURLY@[23; 24) "{" 26 L_CURLY@23..24 "{"
27 LITERAL@[24; 25) 27 LITERAL@24..25
28 INT_NUMBER@[24; 25) "1" 28 INT_NUMBER@24..25 "1"
29 R_CURLY@[25; 26) "}" 29 R_CURLY@25..26 "}"
30 WHITESPACE@[26; 27) " " 30 WHITESPACE@26..27 " "
31 AMP@[27; 28) "&" 31 AMP@27..28 "&"
32 WHITESPACE@[28; 29) " " 32 WHITESPACE@28..29 " "
33 LITERAL@[29; 30) 33 LITERAL@29..30
34 INT_NUMBER@[29; 30) "2" 34 INT_NUMBER@29..30 "2"
35 SEMICOLON@[30; 31) ";" 35 SEMICOLON@30..31 ";"
36 WHITESPACE@[31; 36) "\n " 36 WHITESPACE@31..36 "\n "
37 EXPR_STMT@[36; 39) 37 EXPR_STMT@36..39
38 BLOCK_EXPR@[36; 39) 38 BLOCK_EXPR@36..39
39 BLOCK@[36; 39) 39 BLOCK@36..39
40 L_CURLY@[36; 37) "{" 40 L_CURLY@36..37 "{"
41 LITERAL@[37; 38) 41 LITERAL@37..38
42 INT_NUMBER@[37; 38) "1" 42 INT_NUMBER@37..38 "1"
43 R_CURLY@[38; 39) "}" 43 R_CURLY@38..39 "}"
44 WHITESPACE@[39; 40) " " 44 WHITESPACE@39..40 " "
45 EXPR_STMT@[40; 43) 45 EXPR_STMT@40..43
46 REF_EXPR@[40; 42) 46 REF_EXPR@40..42
47 AMP@[40; 41) "&" 47 AMP@40..41 "&"
48 LITERAL@[41; 42) 48 LITERAL@41..42
49 INT_NUMBER@[41; 42) "2" 49 INT_NUMBER@41..42 "2"
50 SEMICOLON@[42; 43) ";" 50 SEMICOLON@42..43 ";"
51 WHITESPACE@[43; 44) "\n" 51 WHITESPACE@43..44 "\n"
52 R_CURLY@[44; 45) "}" 52 R_CURLY@44..45 "}"
53 WHITESPACE@[45; 46) "\n" 53 WHITESPACE@45..46 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast
index 559ffb578..218b3ec9e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0071_match_expr.rast
@@ -1,96 +1,96 @@
1SOURCE_FILE@[0; 97) 1SOURCE_FILE@0..97
2 FN_DEF@[0; 96) 2 FN_DEF@0..96
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 96) 11 BLOCK_EXPR@9..96
12 BLOCK@[9; 96) 12 BLOCK@9..96
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 28) 15 EXPR_STMT@15..28
16 MATCH_EXPR@[15; 27) 16 MATCH_EXPR@15..27
17 MATCH_KW@[15; 20) "match" 17 MATCH_KW@15..20 "match"
18 WHITESPACE@[20; 21) " " 18 WHITESPACE@20..21 " "
19 TUPLE_EXPR@[21; 23) 19 TUPLE_EXPR@21..23
20 L_PAREN@[21; 22) "(" 20 L_PAREN@21..22 "("
21 R_PAREN@[22; 23) ")" 21 R_PAREN@22..23 ")"
22 WHITESPACE@[23; 24) " " 22 WHITESPACE@23..24 " "
23 MATCH_ARM_LIST@[24; 27) 23 MATCH_ARM_LIST@24..27
24 L_CURLY@[24; 25) "{" 24 L_CURLY@24..25 "{"
25 WHITESPACE@[25; 26) " " 25 WHITESPACE@25..26 " "
26 R_CURLY@[26; 27) "}" 26 R_CURLY@26..27 "}"
27 SEMICOLON@[27; 28) ";" 27 SEMICOLON@27..28 ";"
28 WHITESPACE@[28; 33) "\n " 28 WHITESPACE@28..33 "\n "
29 EXPR_STMT@[33; 44) 29 EXPR_STMT@33..44
30 MATCH_EXPR@[33; 43) 30 MATCH_EXPR@33..43
31 MATCH_KW@[33; 38) "match" 31 MATCH_KW@33..38 "match"
32 WHITESPACE@[38; 39) " " 32 WHITESPACE@38..39 " "
33 PATH_EXPR@[39; 40) 33 PATH_EXPR@39..40
34 PATH@[39; 40) 34 PATH@39..40
35 PATH_SEGMENT@[39; 40) 35 PATH_SEGMENT@39..40
36 NAME_REF@[39; 40) 36 NAME_REF@39..40
37 IDENT@[39; 40) "S" 37 IDENT@39..40 "S"
38 WHITESPACE@[40; 41) " " 38 WHITESPACE@40..41 " "
39 MATCH_ARM_LIST@[41; 43) 39 MATCH_ARM_LIST@41..43
40 L_CURLY@[41; 42) "{" 40 L_CURLY@41..42 "{"
41 R_CURLY@[42; 43) "}" 41 R_CURLY@42..43 "}"
42 SEMICOLON@[43; 44) ";" 42 SEMICOLON@43..44 ";"
43 WHITESPACE@[44; 49) "\n " 43 WHITESPACE@44..49 "\n "
44 EXPR_STMT@[49; 71) 44 EXPR_STMT@49..71
45 MATCH_EXPR@[49; 70) 45 MATCH_EXPR@49..70
46 MATCH_KW@[49; 54) "match" 46 MATCH_KW@49..54 "match"
47 WHITESPACE@[54; 55) " " 47 WHITESPACE@54..55 " "
48 BLOCK_EXPR@[55; 58) 48 BLOCK_EXPR@55..58
49 BLOCK@[55; 58) 49 BLOCK@55..58
50 L_CURLY@[55; 56) "{" 50 L_CURLY@55..56 "{"
51 WHITESPACE@[56; 57) " " 51 WHITESPACE@56..57 " "
52 R_CURLY@[57; 58) "}" 52 R_CURLY@57..58 "}"
53 WHITESPACE@[58; 59) " " 53 WHITESPACE@58..59 " "
54 MATCH_ARM_LIST@[59; 70) 54 MATCH_ARM_LIST@59..70
55 L_CURLY@[59; 60) "{" 55 L_CURLY@59..60 "{"
56 WHITESPACE@[60; 61) " " 56 WHITESPACE@60..61 " "
57 MATCH_ARM@[61; 68) 57 MATCH_ARM@61..68
58 PLACEHOLDER_PAT@[61; 62) 58 PLACEHOLDER_PAT@61..62
59 UNDERSCORE@[61; 62) "_" 59 UNDERSCORE@61..62 "_"
60 WHITESPACE@[62; 63) " " 60 WHITESPACE@62..63 " "
61 FAT_ARROW@[63; 65) "=>" 61 FAT_ARROW@63..65 "=>"
62 WHITESPACE@[65; 66) " " 62 WHITESPACE@65..66 " "
63 TUPLE_EXPR@[66; 68) 63 TUPLE_EXPR@66..68
64 L_PAREN@[66; 67) "(" 64 L_PAREN@66..67 "("
65 R_PAREN@[67; 68) ")" 65 R_PAREN@67..68 ")"
66 WHITESPACE@[68; 69) " " 66 WHITESPACE@68..69 " "
67 R_CURLY@[69; 70) "}" 67 R_CURLY@69..70 "}"
68 SEMICOLON@[70; 71) ";" 68 SEMICOLON@70..71 ";"
69 WHITESPACE@[71; 76) "\n " 69 WHITESPACE@71..76 "\n "
70 EXPR_STMT@[76; 94) 70 EXPR_STMT@76..94
71 MATCH_EXPR@[76; 93) 71 MATCH_EXPR@76..93
72 MATCH_KW@[76; 81) "match" 72 MATCH_KW@76..81 "match"
73 WHITESPACE@[81; 82) " " 73 WHITESPACE@81..82 " "
74 BLOCK_EXPR@[82; 90) 74 BLOCK_EXPR@82..90
75 BLOCK@[82; 90) 75 BLOCK@82..90
76 L_CURLY@[82; 83) "{" 76 L_CURLY@82..83 "{"
77 WHITESPACE@[83; 84) " " 77 WHITESPACE@83..84 " "
78 RECORD_LIT@[84; 88) 78 RECORD_LIT@84..88
79 PATH@[84; 85) 79 PATH@84..85
80 PATH_SEGMENT@[84; 85) 80 PATH_SEGMENT@84..85
81 NAME_REF@[84; 85) 81 NAME_REF@84..85
82 IDENT@[84; 85) "S" 82 IDENT@84..85 "S"
83 WHITESPACE@[85; 86) " " 83 WHITESPACE@85..86 " "
84 RECORD_FIELD_LIST@[86; 88) 84 RECORD_FIELD_LIST@86..88
85 L_CURLY@[86; 87) "{" 85 L_CURLY@86..87 "{"
86 R_CURLY@[87; 88) "}" 86 R_CURLY@87..88 "}"
87 WHITESPACE@[88; 89) " " 87 WHITESPACE@88..89 " "
88 R_CURLY@[89; 90) "}" 88 R_CURLY@89..90 "}"
89 WHITESPACE@[90; 91) " " 89 WHITESPACE@90..91 " "
90 MATCH_ARM_LIST@[91; 93) 90 MATCH_ARM_LIST@91..93
91 L_CURLY@[91; 92) "{" 91 L_CURLY@91..92 "{"
92 R_CURLY@[92; 93) "}" 92 R_CURLY@92..93 "}"
93 SEMICOLON@[93; 94) ";" 93 SEMICOLON@93..94 ";"
94 WHITESPACE@[94; 95) "\n" 94 WHITESPACE@94..95 "\n"
95 R_CURLY@[95; 96) "}" 95 R_CURLY@95..96 "}"
96 WHITESPACE@[96; 97) "\n" 96 WHITESPACE@96..97 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast
index 084efaee2..b8171dc9c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0072_return_expr.rast
@@ -1,29 +1,29 @@
1SOURCE_FILE@[0; 40) 1SOURCE_FILE@0..40
2 FN_DEF@[0; 39) 2 FN_DEF@0..39
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 39) 11 BLOCK_EXPR@9..39
12 BLOCK@[9; 39) 12 BLOCK@9..39
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 22) 15 EXPR_STMT@15..22
16 RETURN_EXPR@[15; 21) 16 RETURN_EXPR@15..21
17 RETURN_KW@[15; 21) "return" 17 RETURN_KW@15..21 "return"
18 SEMICOLON@[21; 22) ";" 18 SEMICOLON@21..22 ";"
19 WHITESPACE@[22; 27) "\n " 19 WHITESPACE@22..27 "\n "
20 EXPR_STMT@[27; 37) 20 EXPR_STMT@27..37
21 RETURN_EXPR@[27; 36) 21 RETURN_EXPR@27..36
22 RETURN_KW@[27; 33) "return" 22 RETURN_KW@27..33 "return"
23 WHITESPACE@[33; 34) " " 23 WHITESPACE@33..34 " "
24 LITERAL@[34; 36) 24 LITERAL@34..36
25 INT_NUMBER@[34; 36) "92" 25 INT_NUMBER@34..36 "92"
26 SEMICOLON@[36; 37) ";" 26 SEMICOLON@36..37 ";"
27 WHITESPACE@[37; 38) "\n" 27 WHITESPACE@37..38 "\n"
28 R_CURLY@[38; 39) "}" 28 R_CURLY@38..39 "}"
29 WHITESPACE@[39; 40) "\n" 29 WHITESPACE@39..40 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast
index 64150b774..cc871ac0c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0073_type_item_type_params.rast
@@ -1,20 +1,20 @@
1SOURCE_FILE@[0; 21) 1SOURCE_FILE@0..21
2 TYPE_ALIAS_DEF@[0; 20) 2 TYPE_ALIAS_DEF@0..20
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 11) 5 NAME@5..11
6 IDENT@[5; 11) "Result" 6 IDENT@5..11 "Result"
7 TYPE_PARAM_LIST@[11; 14) 7 TYPE_PARAM_LIST@11..14
8 L_ANGLE@[11; 12) "<" 8 L_ANGLE@11..12 "<"
9 TYPE_PARAM@[12; 13) 9 TYPE_PARAM@12..13
10 NAME@[12; 13) 10 NAME@12..13
11 IDENT@[12; 13) "T" 11 IDENT@12..13 "T"
12 R_ANGLE@[13; 14) ">" 12 R_ANGLE@13..14 ">"
13 WHITESPACE@[14; 15) " " 13 WHITESPACE@14..15 " "
14 EQ@[15; 16) "=" 14 EQ@15..16 "="
15 WHITESPACE@[16; 17) " " 15 WHITESPACE@16..17 " "
16 TUPLE_TYPE@[17; 19) 16 TUPLE_TYPE@17..19
17 L_PAREN@[17; 18) "(" 17 L_PAREN@17..18 "("
18 R_PAREN@[18; 19) ")" 18 R_PAREN@18..19 ")"
19 SEMICOLON@[19; 20) ";" 19 SEMICOLON@19..20 ";"
20 WHITESPACE@[20; 21) "\n" 20 WHITESPACE@20..21 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
index cbd2d5fbf..c2a73ef25 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0074_stmt_postfix_expr_ambiguity.rast
@@ -1,63 +1,63 @@
1SOURCE_FILE@[0; 84) 1SOURCE_FILE@0..84
2 FN_DEF@[0; 83) 2 FN_DEF@0..83
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 83) 11 BLOCK_EXPR@9..83
12 BLOCK@[9; 83) 12 BLOCK@9..83
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 MATCH_EXPR@[15; 81) 15 MATCH_EXPR@15..81
16 MATCH_KW@[15; 20) "match" 16 MATCH_KW@15..20 "match"
17 WHITESPACE@[20; 21) " " 17 WHITESPACE@20..21 " "
18 TUPLE_EXPR@[21; 23) 18 TUPLE_EXPR@21..23
19 L_PAREN@[21; 22) "(" 19 L_PAREN@21..22 "("
20 R_PAREN@[22; 23) ")" 20 R_PAREN@22..23 ")"
21 WHITESPACE@[23; 24) " " 21 WHITESPACE@23..24 " "
22 MATCH_ARM_LIST@[24; 81) 22 MATCH_ARM_LIST@24..81
23 L_CURLY@[24; 25) "{" 23 L_CURLY@24..25 "{"
24 WHITESPACE@[25; 34) "\n " 24 WHITESPACE@25..34 "\n "
25 MATCH_ARM@[34; 41) 25 MATCH_ARM@34..41
26 PLACEHOLDER_PAT@[34; 35) 26 PLACEHOLDER_PAT@34..35
27 UNDERSCORE@[34; 35) "_" 27 UNDERSCORE@34..35 "_"
28 WHITESPACE@[35; 36) " " 28 WHITESPACE@35..36 " "
29 FAT_ARROW@[36; 38) "=>" 29 FAT_ARROW@36..38 "=>"
30 WHITESPACE@[38; 39) " " 30 WHITESPACE@38..39 " "
31 BLOCK_EXPR@[39; 41) 31 BLOCK_EXPR@39..41
32 BLOCK@[39; 41) 32 BLOCK@39..41
33 L_CURLY@[39; 40) "{" 33 L_CURLY@39..40 "{"
34 R_CURLY@[40; 41) "}" 34 R_CURLY@40..41 "}"
35 WHITESPACE@[41; 50) "\n " 35 WHITESPACE@41..50 "\n "
36 MATCH_ARM@[50; 58) 36 MATCH_ARM@50..58
37 TUPLE_PAT@[50; 52) 37 TUPLE_PAT@50..52
38 L_PAREN@[50; 51) "(" 38 L_PAREN@50..51 "("
39 R_PAREN@[51; 52) ")" 39 R_PAREN@51..52 ")"
40 WHITESPACE@[52; 53) " " 40 WHITESPACE@52..53 " "
41 FAT_ARROW@[53; 55) "=>" 41 FAT_ARROW@53..55 "=>"
42 WHITESPACE@[55; 56) " " 42 WHITESPACE@55..56 " "
43 BLOCK_EXPR@[56; 58) 43 BLOCK_EXPR@56..58
44 BLOCK@[56; 58) 44 BLOCK@56..58
45 L_CURLY@[56; 57) "{" 45 L_CURLY@56..57 "{"
46 R_CURLY@[57; 58) "}" 46 R_CURLY@57..58 "}"
47 WHITESPACE@[58; 67) "\n " 47 WHITESPACE@58..67 "\n "
48 MATCH_ARM@[67; 75) 48 MATCH_ARM@67..75
49 SLICE_PAT@[67; 69) 49 SLICE_PAT@67..69
50 L_BRACK@[67; 68) "[" 50 L_BRACK@67..68 "["
51 R_BRACK@[68; 69) "]" 51 R_BRACK@68..69 "]"
52 WHITESPACE@[69; 70) " " 52 WHITESPACE@69..70 " "
53 FAT_ARROW@[70; 72) "=>" 53 FAT_ARROW@70..72 "=>"
54 WHITESPACE@[72; 73) " " 54 WHITESPACE@72..73 " "
55 BLOCK_EXPR@[73; 75) 55 BLOCK_EXPR@73..75
56 BLOCK@[73; 75) 56 BLOCK@73..75
57 L_CURLY@[73; 74) "{" 57 L_CURLY@73..74 "{"
58 R_CURLY@[74; 75) "}" 58 R_CURLY@74..75 "}"
59 WHITESPACE@[75; 80) "\n " 59 WHITESPACE@75..80 "\n "
60 R_CURLY@[80; 81) "}" 60 R_CURLY@80..81 "}"
61 WHITESPACE@[81; 82) "\n" 61 WHITESPACE@81..82 "\n"
62 R_CURLY@[82; 83) "}" 62 R_CURLY@82..83 "}"
63 WHITESPACE@[83; 84) "\n" 63 WHITESPACE@83..84 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast
index 5c7cb4a88..39a86d002 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0075_block.rast
@@ -1,90 +1,90 @@
1SOURCE_FILE@[0; 65) 1SOURCE_FILE@0..65
2 FN_DEF@[0; 9) 2 FN_DEF@0..9
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 4) 5 NAME@3..4
6 IDENT@[3; 4) "a" 6 IDENT@3..4 "a"
7 PARAM_LIST@[4; 6) 7 PARAM_LIST@4..6
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_EXPR@[7; 9) 11 BLOCK_EXPR@7..9
12 BLOCK@[7; 9) 12 BLOCK@7..9
13 L_CURLY@[7; 8) "{" 13 L_CURLY@7..8 "{"
14 R_CURLY@[8; 9) "}" 14 R_CURLY@8..9 "}"
15 WHITESPACE@[9; 10) "\n" 15 WHITESPACE@9..10 "\n"
16 FN_DEF@[10; 31) 16 FN_DEF@10..31
17 FN_KW@[10; 12) "fn" 17 FN_KW@10..12 "fn"
18 WHITESPACE@[12; 13) " " 18 WHITESPACE@12..13 " "
19 NAME@[13; 14) 19 NAME@13..14
20 IDENT@[13; 14) "b" 20 IDENT@13..14 "b"
21 PARAM_LIST@[14; 16) 21 PARAM_LIST@14..16
22 L_PAREN@[14; 15) "(" 22 L_PAREN@14..15 "("
23 R_PAREN@[15; 16) ")" 23 R_PAREN@15..16 ")"
24 WHITESPACE@[16; 17) " " 24 WHITESPACE@16..17 " "
25 BLOCK_EXPR@[17; 31) 25 BLOCK_EXPR@17..31
26 BLOCK@[17; 31) 26 BLOCK@17..31
27 L_CURLY@[17; 18) "{" 27 L_CURLY@17..18 "{"
28 WHITESPACE@[18; 19) " " 28 WHITESPACE@18..19 " "
29 LET_STMT@[19; 29) 29 LET_STMT@19..29
30 LET_KW@[19; 22) "let" 30 LET_KW@19..22 "let"
31 WHITESPACE@[22; 23) " " 31 WHITESPACE@22..23 " "
32 PLACEHOLDER_PAT@[23; 24) 32 PLACEHOLDER_PAT@23..24
33 UNDERSCORE@[23; 24) "_" 33 UNDERSCORE@23..24 "_"
34 WHITESPACE@[24; 25) " " 34 WHITESPACE@24..25 " "
35 EQ@[25; 26) "=" 35 EQ@25..26 "="
36 WHITESPACE@[26; 27) " " 36 WHITESPACE@26..27 " "
37 LITERAL@[27; 28) 37 LITERAL@27..28
38 INT_NUMBER@[27; 28) "1" 38 INT_NUMBER@27..28 "1"
39 SEMICOLON@[28; 29) ";" 39 SEMICOLON@28..29 ";"
40 WHITESPACE@[29; 30) " " 40 WHITESPACE@29..30 " "
41 R_CURLY@[30; 31) "}" 41 R_CURLY@30..31 "}"
42 WHITESPACE@[31; 32) "\n" 42 WHITESPACE@31..32 "\n"
43 FN_DEF@[32; 48) 43 FN_DEF@32..48
44 FN_KW@[32; 34) "fn" 44 FN_KW@32..34 "fn"
45 WHITESPACE@[34; 35) " " 45 WHITESPACE@34..35 " "
46 NAME@[35; 36) 46 NAME@35..36
47 IDENT@[35; 36) "c" 47 IDENT@35..36 "c"
48 PARAM_LIST@[36; 38) 48 PARAM_LIST@36..38
49 L_PAREN@[36; 37) "(" 49 L_PAREN@36..37 "("
50 R_PAREN@[37; 38) ")" 50 R_PAREN@37..38 ")"
51 WHITESPACE@[38; 39) " " 51 WHITESPACE@38..39 " "
52 BLOCK_EXPR@[39; 48) 52 BLOCK_EXPR@39..48
53 BLOCK@[39; 48) 53 BLOCK@39..48
54 L_CURLY@[39; 40) "{" 54 L_CURLY@39..40 "{"
55 WHITESPACE@[40; 41) " " 55 WHITESPACE@40..41 " "
56 EXPR_STMT@[41; 43) 56 EXPR_STMT@41..43
57 LITERAL@[41; 42) 57 LITERAL@41..42
58 INT_NUMBER@[41; 42) "1" 58 INT_NUMBER@41..42 "1"
59 SEMICOLON@[42; 43) ";" 59 SEMICOLON@42..43 ";"
60 WHITESPACE@[43; 44) " " 60 WHITESPACE@43..44 " "
61 EXPR_STMT@[44; 46) 61 EXPR_STMT@44..46
62 LITERAL@[44; 45) 62 LITERAL@44..45
63 INT_NUMBER@[44; 45) "2" 63 INT_NUMBER@44..45 "2"
64 SEMICOLON@[45; 46) ";" 64 SEMICOLON@45..46 ";"
65 WHITESPACE@[46; 47) " " 65 WHITESPACE@46..47 " "
66 R_CURLY@[47; 48) "}" 66 R_CURLY@47..48 "}"
67 WHITESPACE@[48; 49) "\n" 67 WHITESPACE@48..49 "\n"
68 FN_DEF@[49; 64) 68 FN_DEF@49..64
69 FN_KW@[49; 51) "fn" 69 FN_KW@49..51 "fn"
70 WHITESPACE@[51; 52) " " 70 WHITESPACE@51..52 " "
71 NAME@[52; 53) 71 NAME@52..53
72 IDENT@[52; 53) "d" 72 IDENT@52..53 "d"
73 PARAM_LIST@[53; 55) 73 PARAM_LIST@53..55
74 L_PAREN@[53; 54) "(" 74 L_PAREN@53..54 "("
75 R_PAREN@[54; 55) ")" 75 R_PAREN@54..55 ")"
76 WHITESPACE@[55; 56) " " 76 WHITESPACE@55..56 " "
77 BLOCK_EXPR@[56; 64) 77 BLOCK_EXPR@56..64
78 BLOCK@[56; 64) 78 BLOCK@56..64
79 L_CURLY@[56; 57) "{" 79 L_CURLY@56..57 "{"
80 WHITESPACE@[57; 58) " " 80 WHITESPACE@57..58 " "
81 EXPR_STMT@[58; 60) 81 EXPR_STMT@58..60
82 LITERAL@[58; 59) 82 LITERAL@58..59
83 INT_NUMBER@[58; 59) "1" 83 INT_NUMBER@58..59 "1"
84 SEMICOLON@[59; 60) ";" 84 SEMICOLON@59..60 ";"
85 WHITESPACE@[60; 61) " " 85 WHITESPACE@60..61 " "
86 LITERAL@[61; 62) 86 LITERAL@61..62
87 INT_NUMBER@[61; 62) "2" 87 INT_NUMBER@61..62 "2"
88 WHITESPACE@[62; 63) " " 88 WHITESPACE@62..63 " "
89 R_CURLY@[63; 64) "}" 89 R_CURLY@63..64 "}"
90 WHITESPACE@[64; 65) "\n" 90 WHITESPACE@64..65 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast
index 8e4b63f02..9621ba59e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0076_function_where_clause.rast
@@ -1,40 +1,40 @@
1SOURCE_FILE@[0; 29) 1SOURCE_FILE@0..29
2 FN_DEF@[0; 28) 2 FN_DEF@0..28
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
7 TYPE_PARAM_LIST@[6; 9) 7 TYPE_PARAM_LIST@6..9
8 L_ANGLE@[6; 7) "<" 8 L_ANGLE@6..7 "<"
9 TYPE_PARAM@[7; 8) 9 TYPE_PARAM@7..8
10 NAME@[7; 8) 10 NAME@7..8
11 IDENT@[7; 8) "T" 11 IDENT@7..8 "T"
12 R_ANGLE@[8; 9) ">" 12 R_ANGLE@8..9 ">"
13 PARAM_LIST@[9; 11) 13 PARAM_LIST@9..11
14 L_PAREN@[9; 10) "(" 14 L_PAREN@9..10 "("
15 R_PAREN@[10; 11) ")" 15 R_PAREN@10..11 ")"
16 WHITESPACE@[11; 12) " " 16 WHITESPACE@11..12 " "
17 WHERE_CLAUSE@[12; 25) 17 WHERE_CLAUSE@12..25
18 WHERE_KW@[12; 17) "where" 18 WHERE_KW@12..17 "where"
19 WHITESPACE@[17; 18) " " 19 WHITESPACE@17..18 " "
20 WHERE_PRED@[18; 25) 20 WHERE_PRED@18..25
21 PATH_TYPE@[18; 19) 21 PATH_TYPE@18..19
22 PATH@[18; 19) 22 PATH@18..19
23 PATH_SEGMENT@[18; 19) 23 PATH_SEGMENT@18..19
24 NAME_REF@[18; 19) 24 NAME_REF@18..19
25 IDENT@[18; 19) "T" 25 IDENT@18..19 "T"
26 COLON@[19; 20) ":" 26 COLON@19..20 ":"
27 WHITESPACE@[20; 21) " " 27 WHITESPACE@20..21 " "
28 TYPE_BOUND_LIST@[21; 25) 28 TYPE_BOUND_LIST@21..25
29 TYPE_BOUND@[21; 25) 29 TYPE_BOUND@21..25
30 PATH_TYPE@[21; 25) 30 PATH_TYPE@21..25
31 PATH@[21; 25) 31 PATH@21..25
32 PATH_SEGMENT@[21; 25) 32 PATH_SEGMENT@21..25
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_EXPR@[26; 28) 36 BLOCK_EXPR@26..28
37 BLOCK@[26; 28) 37 BLOCK@26..28
38 L_CURLY@[26; 27) "{" 38 L_CURLY@26..27 "{"
39 R_CURLY@[27; 28) "}" 39 R_CURLY@27..28 "}"
40 WHITESPACE@[28; 29) "\n" 40 WHITESPACE@28..29 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast
index bb9f674e1..ed9d62c5f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0077_try_expr.rast
@@ -1,26 +1,26 @@
1SOURCE_FILE@[0; 21) 1SOURCE_FILE@0..21
2 FN_DEF@[0; 20) 2 FN_DEF@0..20
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 20) 11 BLOCK_EXPR@9..20
12 BLOCK@[9; 20) 12 BLOCK@9..20
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 18) 15 EXPR_STMT@15..18
16 TRY_EXPR@[15; 17) 16 TRY_EXPR@15..17
17 PATH_EXPR@[15; 16) 17 PATH_EXPR@15..16
18 PATH@[15; 16) 18 PATH@15..16
19 PATH_SEGMENT@[15; 16) 19 PATH_SEGMENT@15..16
20 NAME_REF@[15; 16) 20 NAME_REF@15..16
21 IDENT@[15; 16) "x" 21 IDENT@15..16 "x"
22 QUESTION@[16; 17) "?" 22 QUESTION@16..17 "?"
23 SEMICOLON@[17; 18) ";" 23 SEMICOLON@17..18 ";"
24 WHITESPACE@[18; 19) "\n" 24 WHITESPACE@18..19 "\n"
25 R_CURLY@[19; 20) "}" 25 R_CURLY@19..20 "}"
26 WHITESPACE@[20; 21) "\n" 26 WHITESPACE@20..21 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0078_type_item.rast b/crates/ra_syntax/test_data/parser/inline/ok/0078_type_item.rast
index 9a38192d9..a08e16fab 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0078_type_item.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0078_type_item.rast
@@ -1,16 +1,16 @@
1SOURCE_FILE@[0; 16) 1SOURCE_FILE@0..16
2 TYPE_ALIAS_DEF@[0; 15) 2 TYPE_ALIAS_DEF@0..15
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 8) 5 NAME@5..8
6 IDENT@[5; 8) "Foo" 6 IDENT@5..8 "Foo"
7 WHITESPACE@[8; 9) " " 7 WHITESPACE@8..9 " "
8 EQ@[9; 10) "=" 8 EQ@9..10 "="
9 WHITESPACE@[10; 11) " " 9 WHITESPACE@10..11 " "
10 PATH_TYPE@[11; 14) 10 PATH_TYPE@11..14
11 PATH@[11; 14) 11 PATH@11..14
12 PATH_SEGMENT@[11; 14) 12 PATH_SEGMENT@11..14
13 NAME_REF@[11; 14) 13 NAME_REF@11..14
14 IDENT@[11; 14) "Bar" 14 IDENT@11..14 "Bar"
15 SEMICOLON@[14; 15) ";" 15 SEMICOLON@14..15 ";"
16 WHITESPACE@[15; 16) "\n" 16 WHITESPACE@15..16 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0079_impl_def.rast b/crates/ra_syntax/test_data/parser/inline/ok/0079_impl_def.rast
index 4c2863ba7..a00ab40f9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0079_impl_def.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0079_impl_def.rast
@@ -1,14 +1,14 @@
1SOURCE_FILE@[0; 12) 1SOURCE_FILE@0..12
2 IMPL_DEF@[0; 11) 2 IMPL_DEF@0..11
3 IMPL_KW@[0; 4) "impl" 3 IMPL_KW@0..4 "impl"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 PATH_TYPE@[5; 8) 5 PATH_TYPE@5..8
6 PATH@[5; 8) 6 PATH@5..8
7 PATH_SEGMENT@[5; 8) 7 PATH_SEGMENT@5..8
8 NAME_REF@[5; 8) 8 NAME_REF@5..8
9 IDENT@[5; 8) "Foo" 9 IDENT@5..8 "Foo"
10 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 ITEM_LIST@[9; 11) 11 ITEM_LIST@9..11
12 L_CURLY@[9; 10) "{" 12 L_CURLY@9..10 "{"
13 R_CURLY@[10; 11) "}" 13 R_CURLY@10..11 "}"
14 WHITESPACE@[11; 12) "\n" 14 WHITESPACE@11..12 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast
index b8bafc220..5141ce70d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0080_postfix_range.rast
@@ -1,96 +1,96 @@
1SOURCE_FILE@[0; 89) 1SOURCE_FILE@0..89
2 FN_DEF@[0; 88) 2 FN_DEF@0..88
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 88) 11 BLOCK_EXPR@9..88
12 BLOCK@[9; 88) 12 BLOCK@9..88
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 27) 15 LET_STMT@15..27
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 BIND_PAT@[19; 20) 18 BIND_PAT@19..20
19 NAME@[19; 20) 19 NAME@19..20
20 IDENT@[19; 20) "x" 20 IDENT@19..20 "x"
21 WHITESPACE@[20; 21) " " 21 WHITESPACE@20..21 " "
22 EQ@[21; 22) "=" 22 EQ@21..22 "="
23 WHITESPACE@[22; 23) " " 23 WHITESPACE@22..23 " "
24 RANGE_EXPR@[23; 26) 24 RANGE_EXPR@23..26
25 LITERAL@[23; 24) 25 LITERAL@23..24
26 INT_NUMBER@[23; 24) "1" 26 INT_NUMBER@23..24 "1"
27 DOT2@[24; 26) ".." 27 DOT2@24..26 ".."
28 SEMICOLON@[26; 27) ";" 28 SEMICOLON@26..27 ";"
29 WHITESPACE@[27; 32) "\n " 29 WHITESPACE@27..32 "\n "
30 EXPR_STMT@[32; 54) 30 EXPR_STMT@32..54
31 MATCH_EXPR@[32; 53) 31 MATCH_EXPR@32..53
32 MATCH_KW@[32; 37) "match" 32 MATCH_KW@32..37 "match"
33 WHITESPACE@[37; 38) " " 33 WHITESPACE@37..38 " "
34 RANGE_EXPR@[38; 41) 34 RANGE_EXPR@38..41
35 LITERAL@[38; 39) 35 LITERAL@38..39
36 INT_NUMBER@[38; 39) "1" 36 INT_NUMBER@38..39 "1"
37 DOT2@[39; 41) ".." 37 DOT2@39..41 ".."
38 WHITESPACE@[41; 42) " " 38 WHITESPACE@41..42 " "
39 MATCH_ARM_LIST@[42; 53) 39 MATCH_ARM_LIST@42..53
40 L_CURLY@[42; 43) "{" 40 L_CURLY@42..43 "{"
41 WHITESPACE@[43; 44) " " 41 WHITESPACE@43..44 " "
42 MATCH_ARM@[44; 51) 42 MATCH_ARM@44..51
43 PLACEHOLDER_PAT@[44; 45) 43 PLACEHOLDER_PAT@44..45
44 UNDERSCORE@[44; 45) "_" 44 UNDERSCORE@44..45 "_"
45 WHITESPACE@[45; 46) " " 45 WHITESPACE@45..46 " "
46 FAT_ARROW@[46; 48) "=>" 46 FAT_ARROW@46..48 "=>"
47 WHITESPACE@[48; 49) " " 47 WHITESPACE@48..49 " "
48 TUPLE_EXPR@[49; 51) 48 TUPLE_EXPR@49..51
49 L_PAREN@[49; 50) "(" 49 L_PAREN@49..50 "("
50 R_PAREN@[50; 51) ")" 50 R_PAREN@50..51 ")"
51 WHITESPACE@[51; 52) " " 51 WHITESPACE@51..52 " "
52 R_CURLY@[52; 53) "}" 52 R_CURLY@52..53 "}"
53 SEMICOLON@[53; 54) ";" 53 SEMICOLON@53..54 ";"
54 WHITESPACE@[54; 59) "\n " 54 WHITESPACE@54..59 "\n "
55 EXPR_STMT@[59; 86) 55 EXPR_STMT@59..86
56 MATCH_EXPR@[59; 85) 56 MATCH_EXPR@59..85
57 MATCH_KW@[59; 64) "match" 57 MATCH_KW@59..64 "match"
58 WHITESPACE@[64; 65) " " 58 WHITESPACE@64..65 " "
59 RANGE_EXPR@[65; 73) 59 RANGE_EXPR@65..73
60 METHOD_CALL_EXPR@[65; 70) 60 METHOD_CALL_EXPR@65..70
61 PATH_EXPR@[65; 66) 61 PATH_EXPR@65..66
62 PATH@[65; 66) 62 PATH@65..66
63 PATH_SEGMENT@[65; 66) 63 PATH_SEGMENT@65..66
64 NAME_REF@[65; 66) 64 NAME_REF@65..66
65 IDENT@[65; 66) "a" 65 IDENT@65..66 "a"
66 DOT@[66; 67) "." 66 DOT@66..67 "."
67 NAME_REF@[67; 68) 67 NAME_REF@67..68
68 IDENT@[67; 68) "b" 68 IDENT@67..68 "b"
69 ARG_LIST@[68; 70) 69 ARG_LIST@68..70
70 L_PAREN@[68; 69) "(" 70 L_PAREN@68..69 "("
71 R_PAREN@[69; 70) ")" 71 R_PAREN@69..70 ")"
72 DOT2@[70; 72) ".." 72 DOT2@70..72 ".."
73 PATH_EXPR@[72; 73) 73 PATH_EXPR@72..73
74 PATH@[72; 73) 74 PATH@72..73
75 PATH_SEGMENT@[72; 73) 75 PATH_SEGMENT@72..73
76 NAME_REF@[72; 73) 76 NAME_REF@72..73
77 IDENT@[72; 73) "S" 77 IDENT@72..73 "S"
78 WHITESPACE@[73; 74) " " 78 WHITESPACE@73..74 " "
79 MATCH_ARM_LIST@[74; 85) 79 MATCH_ARM_LIST@74..85
80 L_CURLY@[74; 75) "{" 80 L_CURLY@74..75 "{"
81 WHITESPACE@[75; 76) " " 81 WHITESPACE@75..76 " "
82 MATCH_ARM@[76; 83) 82 MATCH_ARM@76..83
83 PLACEHOLDER_PAT@[76; 77) 83 PLACEHOLDER_PAT@76..77
84 UNDERSCORE@[76; 77) "_" 84 UNDERSCORE@76..77 "_"
85 WHITESPACE@[77; 78) " " 85 WHITESPACE@77..78 " "
86 FAT_ARROW@[78; 80) "=>" 86 FAT_ARROW@78..80 "=>"
87 WHITESPACE@[80; 81) " " 87 WHITESPACE@80..81 " "
88 TUPLE_EXPR@[81; 83) 88 TUPLE_EXPR@81..83
89 L_PAREN@[81; 82) "(" 89 L_PAREN@81..82 "("
90 R_PAREN@[82; 83) ")" 90 R_PAREN@82..83 ")"
91 WHITESPACE@[83; 84) " " 91 WHITESPACE@83..84 " "
92 R_CURLY@[84; 85) "}" 92 R_CURLY@84..85 "}"
93 SEMICOLON@[85; 86) ";" 93 SEMICOLON@85..86 ";"
94 WHITESPACE@[86; 87) "\n" 94 WHITESPACE@86..87 "\n"
95 R_CURLY@[87; 88) "}" 95 R_CURLY@87..88 "}"
96 WHITESPACE@[88; 89) "\n" 96 WHITESPACE@88..89 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast
index 00c4e4220..cdbe64180 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.rast
@@ -1,243 +1,243 @@
1SOURCE_FILE@[0; 200) 1SOURCE_FILE@0..200
2 TYPE_ALIAS_DEF@[0; 28) 2 TYPE_ALIAS_DEF@0..28
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "A" 6 IDENT@5..6 "A"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 FOR_TYPE@[9; 27) 10 FOR_TYPE@9..27
11 FOR_KW@[9; 12) "for" 11 FOR_KW@9..12 "for"
12 TYPE_PARAM_LIST@[12; 16) 12 TYPE_PARAM_LIST@12..16
13 L_ANGLE@[12; 13) "<" 13 L_ANGLE@12..13 "<"
14 LIFETIME_PARAM@[13; 15) 14 LIFETIME_PARAM@13..15
15 LIFETIME@[13; 15) "\'a" 15 LIFETIME@13..15 "\'a"
16 R_ANGLE@[15; 16) ">" 16 R_ANGLE@15..16 ">"
17 WHITESPACE@[16; 17) " " 17 WHITESPACE@16..17 " "
18 FN_POINTER_TYPE@[17; 27) 18 FN_POINTER_TYPE@17..27
19 FN_KW@[17; 19) "fn" 19 FN_KW@17..19 "fn"
20 PARAM_LIST@[19; 21) 20 PARAM_LIST@19..21
21 L_PAREN@[19; 20) "(" 21 L_PAREN@19..20 "("
22 R_PAREN@[20; 21) ")" 22 R_PAREN@20..21 ")"
23 WHITESPACE@[21; 22) " " 23 WHITESPACE@21..22 " "
24 RET_TYPE@[22; 27) 24 RET_TYPE@22..27
25 THIN_ARROW@[22; 24) "->" 25 THIN_ARROW@22..24 "->"
26 WHITESPACE@[24; 25) " " 26 WHITESPACE@24..25 " "
27 TUPLE_TYPE@[25; 27) 27 TUPLE_TYPE@25..27
28 L_PAREN@[25; 26) "(" 28 L_PAREN@25..26 "("
29 R_PAREN@[26; 27) ")" 29 R_PAREN@26..27 ")"
30 SEMICOLON@[27; 28) ";" 30 SEMICOLON@27..28 ";"
31 WHITESPACE@[28; 29) "\n" 31 WHITESPACE@28..29 "\n"
32 FN_DEF@[29; 79) 32 FN_DEF@29..79
33 FN_KW@[29; 31) "fn" 33 FN_KW@29..31 "fn"
34 WHITESPACE@[31; 32) " " 34 WHITESPACE@31..32 " "
35 NAME@[32; 35) 35 NAME@32..35
36 IDENT@[32; 35) "foo" 36 IDENT@32..35 "foo"
37 TYPE_PARAM_LIST@[35; 38) 37 TYPE_PARAM_LIST@35..38
38 L_ANGLE@[35; 36) "<" 38 L_ANGLE@35..36 "<"
39 TYPE_PARAM@[36; 37) 39 TYPE_PARAM@36..37
40 NAME@[36; 37) 40 NAME@36..37
41 IDENT@[36; 37) "T" 41 IDENT@36..37 "T"
42 R_ANGLE@[37; 38) ">" 42 R_ANGLE@37..38 ">"
43 PARAM_LIST@[38; 46) 43 PARAM_LIST@38..46
44 L_PAREN@[38; 39) "(" 44 L_PAREN@38..39 "("
45 PARAM@[39; 45) 45 PARAM@39..45
46 BIND_PAT@[39; 41) 46 BIND_PAT@39..41
47 NAME@[39; 41) 47 NAME@39..41
48 IDENT@[39; 41) "_t" 48 IDENT@39..41 "_t"
49 COLON@[41; 42) ":" 49 COLON@41..42 ":"
50 WHITESPACE@[42; 43) " " 50 WHITESPACE@42..43 " "
51 REFERENCE_TYPE@[43; 45) 51 REFERENCE_TYPE@43..45
52 AMP@[43; 44) "&" 52 AMP@43..44 "&"
53 PATH_TYPE@[44; 45) 53 PATH_TYPE@44..45
54 PATH@[44; 45) 54 PATH@44..45
55 PATH_SEGMENT@[44; 45) 55 PATH_SEGMENT@44..45
56 NAME_REF@[44; 45) 56 NAME_REF@44..45
57 IDENT@[44; 45) "T" 57 IDENT@44..45 "T"
58 R_PAREN@[45; 46) ")" 58 R_PAREN@45..46 ")"
59 WHITESPACE@[46; 47) " " 59 WHITESPACE@46..47 " "
60 WHERE_CLAUSE@[47; 76) 60 WHERE_CLAUSE@47..76
61 WHERE_KW@[47; 52) "where" 61 WHERE_KW@47..52 "where"
62 WHITESPACE@[52; 53) " " 62 WHITESPACE@52..53 " "
63 WHERE_PRED@[53; 76) 63 WHERE_PRED@53..76
64 FOR_TYPE@[53; 66) 64 FOR_TYPE@53..66
65 FOR_KW@[53; 56) "for" 65 FOR_KW@53..56 "for"
66 TYPE_PARAM_LIST@[56; 60) 66 TYPE_PARAM_LIST@56..60
67 L_ANGLE@[56; 57) "<" 67 L_ANGLE@56..57 "<"
68 LIFETIME_PARAM@[57; 59) 68 LIFETIME_PARAM@57..59
69 LIFETIME@[57; 59) "\'a" 69 LIFETIME@57..59 "\'a"
70 R_ANGLE@[59; 60) ">" 70 R_ANGLE@59..60 ">"
71 WHITESPACE@[60; 61) " " 71 WHITESPACE@60..61 " "
72 REFERENCE_TYPE@[61; 66) 72 REFERENCE_TYPE@61..66
73 AMP@[61; 62) "&" 73 AMP@61..62 "&"
74 LIFETIME@[62; 64) "\'a" 74 LIFETIME@62..64 "\'a"
75 WHITESPACE@[64; 65) " " 75 WHITESPACE@64..65 " "
76 PATH_TYPE@[65; 66) 76 PATH_TYPE@65..66
77 PATH@[65; 66) 77 PATH@65..66
78 PATH_SEGMENT@[65; 66) 78 PATH_SEGMENT@65..66
79 NAME_REF@[65; 66) 79 NAME_REF@65..66
80 IDENT@[65; 66) "T" 80 IDENT@65..66 "T"
81 COLON@[66; 67) ":" 81 COLON@66..67 ":"
82 WHITESPACE@[67; 68) " " 82 WHITESPACE@67..68 " "
83 TYPE_BOUND_LIST@[68; 76) 83 TYPE_BOUND_LIST@68..76
84 TYPE_BOUND@[68; 76) 84 TYPE_BOUND@68..76
85 PATH_TYPE@[68; 76) 85 PATH_TYPE@68..76
86 PATH@[68; 76) 86 PATH@68..76
87 PATH_SEGMENT@[68; 76) 87 PATH_SEGMENT@68..76
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_EXPR@[77; 79) 91 BLOCK_EXPR@77..79
92 BLOCK@[77; 79) 92 BLOCK@77..79
93 L_CURLY@[77; 78) "{" 93 L_CURLY@77..78 "{"
94 R_CURLY@[78; 79) "}" 94 R_CURLY@78..79 "}"
95 WHITESPACE@[79; 80) "\n" 95 WHITESPACE@79..80 "\n"
96 FN_DEF@[80; 134) 96 FN_DEF@80..134
97 FN_KW@[80; 82) "fn" 97 FN_KW@80..82 "fn"
98 WHITESPACE@[82; 83) " " 98 WHITESPACE@82..83 " "
99 NAME@[83; 86) 99 NAME@83..86
100 IDENT@[83; 86) "bar" 100 IDENT@83..86 "bar"
101 TYPE_PARAM_LIST@[86; 89) 101 TYPE_PARAM_LIST@86..89
102 L_ANGLE@[86; 87) "<" 102 L_ANGLE@86..87 "<"
103 TYPE_PARAM@[87; 88) 103 TYPE_PARAM@87..88
104 NAME@[87; 88) 104 NAME@87..88
105 IDENT@[87; 88) "T" 105 IDENT@87..88 "T"
106 R_ANGLE@[88; 89) ">" 106 R_ANGLE@88..89 ">"
107 PARAM_LIST@[89; 97) 107 PARAM_LIST@89..97
108 L_PAREN@[89; 90) "(" 108 L_PAREN@89..90 "("
109 PARAM@[90; 96) 109 PARAM@90..96
110 BIND_PAT@[90; 92) 110 BIND_PAT@90..92
111 NAME@[90; 92) 111 NAME@90..92
112 IDENT@[90; 92) "_t" 112 IDENT@90..92 "_t"
113 COLON@[92; 93) ":" 113 COLON@92..93 ":"
114 WHITESPACE@[93; 94) " " 114 WHITESPACE@93..94 " "
115 REFERENCE_TYPE@[94; 96) 115 REFERENCE_TYPE@94..96
116 AMP@[94; 95) "&" 116 AMP@94..95 "&"
117 PATH_TYPE@[95; 96) 117 PATH_TYPE@95..96
118 PATH@[95; 96) 118 PATH@95..96
119 PATH_SEGMENT@[95; 96) 119 PATH_SEGMENT@95..96
120 NAME_REF@[95; 96) 120 NAME_REF@95..96
121 IDENT@[95; 96) "T" 121 IDENT@95..96 "T"
122 R_PAREN@[96; 97) ")" 122 R_PAREN@96..97 ")"
123 WHITESPACE@[97; 98) " " 123 WHITESPACE@97..98 " "
124 WHERE_CLAUSE@[98; 131) 124 WHERE_CLAUSE@98..131
125 WHERE_KW@[98; 103) "where" 125 WHERE_KW@98..103 "where"
126 WHITESPACE@[103; 104) " " 126 WHITESPACE@103..104 " "
127 WHERE_PRED@[104; 131) 127 WHERE_PRED@104..131
128 FOR_TYPE@[104; 121) 128 FOR_TYPE@104..121
129 FOR_KW@[104; 107) "for" 129 FOR_KW@104..107 "for"
130 TYPE_PARAM_LIST@[107; 111) 130 TYPE_PARAM_LIST@107..111
131 L_ANGLE@[107; 108) "<" 131 L_ANGLE@107..108 "<"
132 LIFETIME_PARAM@[108; 110) 132 LIFETIME_PARAM@108..110
133 LIFETIME@[108; 110) "\'a" 133 LIFETIME@108..110 "\'a"
134 R_ANGLE@[110; 111) ">" 134 R_ANGLE@110..111 ">"
135 WHITESPACE@[111; 112) " " 135 WHITESPACE@111..112 " "
136 REFERENCE_TYPE@[112; 121) 136 REFERENCE_TYPE@112..121
137 AMP@[112; 113) "&" 137 AMP@112..113 "&"
138 LIFETIME@[113; 115) "\'a" 138 LIFETIME@113..115 "\'a"
139 WHITESPACE@[115; 116) " " 139 WHITESPACE@115..116 " "
140 MUT_KW@[116; 119) "mut" 140 MUT_KW@116..119 "mut"
141 WHITESPACE@[119; 120) " " 141 WHITESPACE@119..120 " "
142 PATH_TYPE@[120; 121) 142 PATH_TYPE@120..121
143 PATH@[120; 121) 143 PATH@120..121
144 PATH_SEGMENT@[120; 121) 144 PATH_SEGMENT@120..121
145 NAME_REF@[120; 121) 145 NAME_REF@120..121
146 IDENT@[120; 121) "T" 146 IDENT@120..121 "T"
147 COLON@[121; 122) ":" 147 COLON@121..122 ":"
148 WHITESPACE@[122; 123) " " 148 WHITESPACE@122..123 " "
149 TYPE_BOUND_LIST@[123; 131) 149 TYPE_BOUND_LIST@123..131
150 TYPE_BOUND@[123; 131) 150 TYPE_BOUND@123..131
151 PATH_TYPE@[123; 131) 151 PATH_TYPE@123..131
152 PATH@[123; 131) 152 PATH@123..131
153 PATH_SEGMENT@[123; 131) 153 PATH_SEGMENT@123..131
154 NAME_REF@[123; 131) 154 NAME_REF@123..131
155 IDENT@[123; 131) "Iterator" 155 IDENT@123..131 "Iterator"
156 WHITESPACE@[131; 132) " " 156 WHITESPACE@131..132 " "
157 BLOCK_EXPR@[132; 134) 157 BLOCK_EXPR@132..134
158 BLOCK@[132; 134) 158 BLOCK@132..134
159 L_CURLY@[132; 133) "{" 159 L_CURLY@132..133 "{"
160 R_CURLY@[133; 134) "}" 160 R_CURLY@133..134 "}"
161 WHITESPACE@[134; 135) "\n" 161 WHITESPACE@134..135 "\n"
162 FN_DEF@[135; 199) 162 FN_DEF@135..199
163 FN_KW@[135; 137) "fn" 163 FN_KW@135..137 "fn"
164 WHITESPACE@[137; 138) " " 164 WHITESPACE@137..138 " "
165 NAME@[138; 141) 165 NAME@138..141
166 IDENT@[138; 141) "baz" 166 IDENT@138..141 "baz"
167 TYPE_PARAM_LIST@[141; 144) 167 TYPE_PARAM_LIST@141..144
168 L_ANGLE@[141; 142) "<" 168 L_ANGLE@141..142 "<"
169 TYPE_PARAM@[142; 143) 169 TYPE_PARAM@142..143
170 NAME@[142; 143) 170 NAME@142..143
171 IDENT@[142; 143) "T" 171 IDENT@142..143 "T"
172 R_ANGLE@[143; 144) ">" 172 R_ANGLE@143..144 ">"
173 PARAM_LIST@[144; 152) 173 PARAM_LIST@144..152
174 L_PAREN@[144; 145) "(" 174 L_PAREN@144..145 "("
175 PARAM@[145; 151) 175 PARAM@145..151
176 BIND_PAT@[145; 147) 176 BIND_PAT@145..147
177 NAME@[145; 147) 177 NAME@145..147
178 IDENT@[145; 147) "_t" 178 IDENT@145..147 "_t"
179 COLON@[147; 148) ":" 179 COLON@147..148 ":"
180 WHITESPACE@[148; 149) " " 180 WHITESPACE@148..149 " "
181 REFERENCE_TYPE@[149; 151) 181 REFERENCE_TYPE@149..151
182 AMP@[149; 150) "&" 182 AMP@149..150 "&"
183 PATH_TYPE@[150; 151) 183 PATH_TYPE@150..151
184 PATH@[150; 151) 184 PATH@150..151
185 PATH_SEGMENT@[150; 151) 185 PATH_SEGMENT@150..151
186 NAME_REF@[150; 151) 186 NAME_REF@150..151
187 IDENT@[150; 151) "T" 187 IDENT@150..151 "T"
188 R_PAREN@[151; 152) ")" 188 R_PAREN@151..152 ")"
189 WHITESPACE@[152; 153) " " 189 WHITESPACE@152..153 " "
190 WHERE_CLAUSE@[153; 196) 190 WHERE_CLAUSE@153..196
191 WHERE_KW@[153; 158) "where" 191 WHERE_KW@153..158 "where"
192 WHITESPACE@[158; 159) " " 192 WHITESPACE@158..159 " "
193 WHERE_PRED@[159; 196) 193 WHERE_PRED@159..196
194 FOR_TYPE@[159; 186) 194 FOR_TYPE@159..186
195 FOR_KW@[159; 162) "for" 195 FOR_KW@159..162 "for"
196 TYPE_PARAM_LIST@[162; 166) 196 TYPE_PARAM_LIST@162..166
197 L_ANGLE@[162; 163) "<" 197 L_ANGLE@162..163 "<"
198 LIFETIME_PARAM@[163; 165) 198 LIFETIME_PARAM@163..165
199 LIFETIME@[163; 165) "\'a" 199 LIFETIME@163..165 "\'a"
200 R_ANGLE@[165; 166) ">" 200 R_ANGLE@165..166 ">"
201 WHITESPACE@[166; 167) " " 201 WHITESPACE@166..167 " "
202 PATH_TYPE@[167; 186) 202 PATH_TYPE@167..186
203 PATH@[167; 186) 203 PATH@167..186
204 PATH@[167; 181) 204 PATH@167..181
205 PATH_SEGMENT@[167; 181) 205 PATH_SEGMENT@167..181
206 L_ANGLE@[167; 168) "<" 206 L_ANGLE@167..168 "<"
207 REFERENCE_TYPE@[168; 173) 207 REFERENCE_TYPE@168..173
208 AMP@[168; 169) "&" 208 AMP@168..169 "&"
209 LIFETIME@[169; 171) "\'a" 209 LIFETIME@169..171 "\'a"
210 WHITESPACE@[171; 172) " " 210 WHITESPACE@171..172 " "
211 PATH_TYPE@[172; 173) 211 PATH_TYPE@172..173
212 PATH@[172; 173) 212 PATH@172..173
213 PATH_SEGMENT@[172; 173) 213 PATH_SEGMENT@172..173
214 NAME_REF@[172; 173) 214 NAME_REF@172..173
215 IDENT@[172; 173) "T" 215 IDENT@172..173 "T"
216 WHITESPACE@[173; 174) " " 216 WHITESPACE@173..174 " "
217 AS_KW@[174; 176) "as" 217 AS_KW@174..176 "as"
218 WHITESPACE@[176; 177) " " 218 WHITESPACE@176..177 " "
219 PATH_TYPE@[177; 180) 219 PATH_TYPE@177..180
220 PATH@[177; 180) 220 PATH@177..180
221 PATH_SEGMENT@[177; 180) 221 PATH_SEGMENT@177..180
222 NAME_REF@[177; 180) 222 NAME_REF@177..180
223 IDENT@[177; 180) "Baz" 223 IDENT@177..180 "Baz"
224 R_ANGLE@[180; 181) ">" 224 R_ANGLE@180..181 ">"
225 COLON2@[181; 183) "::" 225 COLON2@181..183 "::"
226 PATH_SEGMENT@[183; 186) 226 PATH_SEGMENT@183..186
227 NAME_REF@[183; 186) 227 NAME_REF@183..186
228 IDENT@[183; 186) "Foo" 228 IDENT@183..186 "Foo"
229 COLON@[186; 187) ":" 229 COLON@186..187 ":"
230 WHITESPACE@[187; 188) " " 230 WHITESPACE@187..188 " "
231 TYPE_BOUND_LIST@[188; 196) 231 TYPE_BOUND_LIST@188..196
232 TYPE_BOUND@[188; 196) 232 TYPE_BOUND@188..196
233 PATH_TYPE@[188; 196) 233 PATH_TYPE@188..196
234 PATH@[188; 196) 234 PATH@188..196
235 PATH_SEGMENT@[188; 196) 235 PATH_SEGMENT@188..196
236 NAME_REF@[188; 196) 236 NAME_REF@188..196
237 IDENT@[188; 196) "Iterator" 237 IDENT@188..196 "Iterator"
238 WHITESPACE@[196; 197) " " 238 WHITESPACE@196..197 " "
239 BLOCK_EXPR@[197; 199) 239 BLOCK_EXPR@197..199
240 BLOCK@[197; 199) 240 BLOCK@197..199
241 L_CURLY@[197; 198) "{" 241 L_CURLY@197..198 "{"
242 R_CURLY@[198; 199) "}" 242 R_CURLY@198..199 "}"
243 WHITESPACE@[199; 200) "\n" 243 WHITESPACE@199..200 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast
index 2999977fc..fbad33389 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0082_ref_expr.rast
@@ -1,55 +1,55 @@
1SOURCE_FILE@[0; 52) 1SOURCE_FILE@0..52
2 FN_DEF@[0; 51) 2 FN_DEF@0..51
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 51) 11 BLOCK_EXPR@9..51
12 BLOCK@[9; 51) 12 BLOCK@9..51
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 26) 15 LET_STMT@15..26
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 PLACEHOLDER_PAT@[19; 20) 18 PLACEHOLDER_PAT@19..20
19 UNDERSCORE@[19; 20) "_" 19 UNDERSCORE@19..20 "_"
20 WHITESPACE@[20; 21) " " 20 WHITESPACE@20..21 " "
21 EQ@[21; 22) "=" 21 EQ@21..22 "="
22 WHITESPACE@[22; 23) " " 22 WHITESPACE@22..23 " "
23 REF_EXPR@[23; 25) 23 REF_EXPR@23..25
24 AMP@[23; 24) "&" 24 AMP@23..24 "&"
25 LITERAL@[24; 25) 25 LITERAL@24..25
26 INT_NUMBER@[24; 25) "1" 26 INT_NUMBER@24..25 "1"
27 SEMICOLON@[25; 26) ";" 27 SEMICOLON@25..26 ";"
28 WHITESPACE@[26; 31) "\n " 28 WHITESPACE@26..31 "\n "
29 LET_STMT@[31; 49) 29 LET_STMT@31..49
30 LET_KW@[31; 34) "let" 30 LET_KW@31..34 "let"
31 WHITESPACE@[34; 35) " " 31 WHITESPACE@34..35 " "
32 PLACEHOLDER_PAT@[35; 36) 32 PLACEHOLDER_PAT@35..36
33 UNDERSCORE@[35; 36) "_" 33 UNDERSCORE@35..36 "_"
34 WHITESPACE@[36; 37) " " 34 WHITESPACE@36..37 " "
35 EQ@[37; 38) "=" 35 EQ@37..38 "="
36 WHITESPACE@[38; 39) " " 36 WHITESPACE@38..39 " "
37 REF_EXPR@[39; 48) 37 REF_EXPR@39..48
38 AMP@[39; 40) "&" 38 AMP@39..40 "&"
39 MUT_KW@[40; 43) "mut" 39 MUT_KW@40..43 "mut"
40 WHITESPACE@[43; 44) " " 40 WHITESPACE@43..44 " "
41 REF_EXPR@[44; 48) 41 REF_EXPR@44..48
42 AMP@[44; 45) "&" 42 AMP@44..45 "&"
43 CALL_EXPR@[45; 48) 43 CALL_EXPR@45..48
44 PATH_EXPR@[45; 46) 44 PATH_EXPR@45..46
45 PATH@[45; 46) 45 PATH@45..46
46 PATH_SEGMENT@[45; 46) 46 PATH_SEGMENT@45..46
47 NAME_REF@[45; 46) 47 NAME_REF@45..46
48 IDENT@[45; 46) "f" 48 IDENT@45..46 "f"
49 ARG_LIST@[46; 48) 49 ARG_LIST@46..48
50 L_PAREN@[46; 47) "(" 50 L_PAREN@46..47 "("
51 R_PAREN@[47; 48) ")" 51 R_PAREN@47..48 ")"
52 SEMICOLON@[48; 49) ";" 52 SEMICOLON@48..49 ";"
53 WHITESPACE@[49; 50) "\n" 53 WHITESPACE@49..50 "\n"
54 R_CURLY@[50; 51) "}" 54 R_CURLY@50..51 "}"
55 WHITESPACE@[51; 52) "\n" 55 WHITESPACE@51..52 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0083_struct_items.rast b/crates/ra_syntax/test_data/parser/inline/ok/0083_struct_items.rast
index 13393e4b8..217b07e59 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0083_struct_items.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0083_struct_items.rast
@@ -1,87 +1,87 @@
1SOURCE_FILE@[0; 106) 1SOURCE_FILE@0..106
2 STRUCT_DEF@[0; 11) 2 STRUCT_DEF@0..11
3 STRUCT_KW@[0; 6) "struct" 3 STRUCT_KW@0..6 "struct"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 NAME@[7; 10) 5 NAME@7..10
6 IDENT@[7; 10) "Foo" 6 IDENT@7..10 "Foo"
7 SEMICOLON@[10; 11) ";" 7 SEMICOLON@10..11 ";"
8 WHITESPACE@[11; 12) "\n" 8 WHITESPACE@11..12 "\n"
9 STRUCT_DEF@[12; 25) 9 STRUCT_DEF@12..25
10 STRUCT_KW@[12; 18) "struct" 10 STRUCT_KW@12..18 "struct"
11 WHITESPACE@[18; 19) " " 11 WHITESPACE@18..19 " "
12 NAME@[19; 22) 12 NAME@19..22
13 IDENT@[19; 22) "Foo" 13 IDENT@19..22 "Foo"
14 WHITESPACE@[22; 23) " " 14 WHITESPACE@22..23 " "
15 RECORD_FIELD_DEF_LIST@[23; 25) 15 RECORD_FIELD_DEF_LIST@23..25
16 L_CURLY@[23; 24) "{" 16 L_CURLY@23..24 "{"
17 R_CURLY@[24; 25) "}" 17 R_CURLY@24..25 "}"
18 WHITESPACE@[25; 26) "\n" 18 WHITESPACE@25..26 "\n"
19 STRUCT_DEF@[26; 39) 19 STRUCT_DEF@26..39
20 STRUCT_KW@[26; 32) "struct" 20 STRUCT_KW@26..32 "struct"
21 WHITESPACE@[32; 33) " " 21 WHITESPACE@32..33 " "
22 NAME@[33; 36) 22 NAME@33..36
23 IDENT@[33; 36) "Foo" 23 IDENT@33..36 "Foo"
24 TUPLE_FIELD_DEF_LIST@[36; 38) 24 TUPLE_FIELD_DEF_LIST@36..38
25 L_PAREN@[36; 37) "(" 25 L_PAREN@36..37 "("
26 R_PAREN@[37; 38) ")" 26 R_PAREN@37..38 ")"
27 SEMICOLON@[38; 39) ";" 27 SEMICOLON@38..39 ";"
28 WHITESPACE@[39; 40) "\n" 28 WHITESPACE@39..40 "\n"
29 STRUCT_DEF@[40; 66) 29 STRUCT_DEF@40..66
30 STRUCT_KW@[40; 46) "struct" 30 STRUCT_KW@40..46 "struct"
31 WHITESPACE@[46; 47) " " 31 WHITESPACE@46..47 " "
32 NAME@[47; 50) 32 NAME@47..50
33 IDENT@[47; 50) "Foo" 33 IDENT@47..50 "Foo"
34 TUPLE_FIELD_DEF_LIST@[50; 65) 34 TUPLE_FIELD_DEF_LIST@50..65
35 L_PAREN@[50; 51) "(" 35 L_PAREN@50..51 "("
36 TUPLE_FIELD_DEF@[51; 57) 36 TUPLE_FIELD_DEF@51..57
37 PATH_TYPE@[51; 57) 37 PATH_TYPE@51..57
38 PATH@[51; 57) 38 PATH@51..57
39 PATH_SEGMENT@[51; 57) 39 PATH_SEGMENT@51..57
40 NAME_REF@[51; 57) 40 NAME_REF@51..57
41 IDENT@[51; 57) "String" 41 IDENT@51..57 "String"
42 COMMA@[57; 58) "," 42 COMMA@57..58 ","
43 WHITESPACE@[58; 59) " " 43 WHITESPACE@58..59 " "
44 TUPLE_FIELD_DEF@[59; 64) 44 TUPLE_FIELD_DEF@59..64
45 PATH_TYPE@[59; 64) 45 PATH_TYPE@59..64
46 PATH@[59; 64) 46 PATH@59..64
47 PATH_SEGMENT@[59; 64) 47 PATH_SEGMENT@59..64
48 NAME_REF@[59; 64) 48 NAME_REF@59..64
49 IDENT@[59; 64) "usize" 49 IDENT@59..64 "usize"
50 R_PAREN@[64; 65) ")" 50 R_PAREN@64..65 ")"
51 SEMICOLON@[65; 66) ";" 51 SEMICOLON@65..66 ";"
52 WHITESPACE@[66; 67) "\n" 52 WHITESPACE@66..67 "\n"
53 STRUCT_DEF@[67; 105) 53 STRUCT_DEF@67..105
54 STRUCT_KW@[67; 73) "struct" 54 STRUCT_KW@67..73 "struct"
55 WHITESPACE@[73; 74) " " 55 WHITESPACE@73..74 " "
56 NAME@[74; 77) 56 NAME@74..77
57 IDENT@[74; 77) "Foo" 57 IDENT@74..77 "Foo"
58 WHITESPACE@[77; 78) " " 58 WHITESPACE@77..78 " "
59 RECORD_FIELD_DEF_LIST@[78; 105) 59 RECORD_FIELD_DEF_LIST@78..105
60 L_CURLY@[78; 79) "{" 60 L_CURLY@78..79 "{"
61 WHITESPACE@[79; 84) "\n " 61 WHITESPACE@79..84 "\n "
62 RECORD_FIELD_DEF@[84; 90) 62 RECORD_FIELD_DEF@84..90
63 NAME@[84; 85) 63 NAME@84..85
64 IDENT@[84; 85) "a" 64 IDENT@84..85 "a"
65 COLON@[85; 86) ":" 65 COLON@85..86 ":"
66 WHITESPACE@[86; 87) " " 66 WHITESPACE@86..87 " "
67 PATH_TYPE@[87; 90) 67 PATH_TYPE@87..90
68 PATH@[87; 90) 68 PATH@87..90
69 PATH_SEGMENT@[87; 90) 69 PATH_SEGMENT@87..90
70 NAME_REF@[87; 90) 70 NAME_REF@87..90
71 IDENT@[87; 90) "i32" 71 IDENT@87..90 "i32"
72 COMMA@[90; 91) "," 72 COMMA@90..91 ","
73 WHITESPACE@[91; 96) "\n " 73 WHITESPACE@91..96 "\n "
74 RECORD_FIELD_DEF@[96; 102) 74 RECORD_FIELD_DEF@96..102
75 NAME@[96; 97) 75 NAME@96..97
76 IDENT@[96; 97) "b" 76 IDENT@96..97 "b"
77 COLON@[97; 98) ":" 77 COLON@97..98 ":"
78 WHITESPACE@[98; 99) " " 78 WHITESPACE@98..99 " "
79 PATH_TYPE@[99; 102) 79 PATH_TYPE@99..102
80 PATH@[99; 102) 80 PATH@99..102
81 PATH_SEGMENT@[99; 102) 81 PATH_SEGMENT@99..102
82 NAME_REF@[99; 102) 82 NAME_REF@99..102
83 IDENT@[99; 102) "f32" 83 IDENT@99..102 "f32"
84 COMMA@[102; 103) "," 84 COMMA@102..103 ","
85 WHITESPACE@[103; 104) "\n" 85 WHITESPACE@103..104 "\n"
86 R_CURLY@[104; 105) "}" 86 R_CURLY@104..105 "}"
87 WHITESPACE@[105; 106) "\n" 87 WHITESPACE@105..106 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0084_paren_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0084_paren_type.rast
index 79d193616..9cd8910d4 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0084_paren_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0084_paren_type.rast
@@ -1,19 +1,19 @@
1SOURCE_FILE@[0; 16) 1SOURCE_FILE@0..16
2 TYPE_ALIAS_DEF@[0; 15) 2 TYPE_ALIAS_DEF@0..15
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "T" 6 IDENT@5..6 "T"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 PAREN_TYPE@[9; 14) 10 PAREN_TYPE@9..14
11 L_PAREN@[9; 10) "(" 11 L_PAREN@9..10 "("
12 PATH_TYPE@[10; 13) 12 PATH_TYPE@10..13
13 PATH@[10; 13) 13 PATH@10..13
14 PATH_SEGMENT@[10; 13) 14 PATH_SEGMENT@10..13
15 NAME_REF@[10; 13) 15 NAME_REF@10..13
16 IDENT@[10; 13) "i32" 16 IDENT@10..13 "i32"
17 R_PAREN@[13; 14) ")" 17 R_PAREN@13..14 ")"
18 SEMICOLON@[14; 15) ";" 18 SEMICOLON@14..15 ";"
19 WHITESPACE@[15; 16) "\n" 19 WHITESPACE@15..16 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast
index c2cec89b4..b165789fd 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0085_expr_literals.rast
@@ -1,136 +1,136 @@
1SOURCE_FILE@[0; 189) 1SOURCE_FILE@0..189
2 FN_DEF@[0; 188) 2 FN_DEF@0..188
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 188) 11 BLOCK_EXPR@9..188
12 BLOCK@[9; 188) 12 BLOCK@9..188
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 28) 15 LET_STMT@15..28
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 PLACEHOLDER_PAT@[19; 20) 18 PLACEHOLDER_PAT@19..20
19 UNDERSCORE@[19; 20) "_" 19 UNDERSCORE@19..20 "_"
20 WHITESPACE@[20; 21) " " 20 WHITESPACE@20..21 " "
21 EQ@[21; 22) "=" 21 EQ@21..22 "="
22 WHITESPACE@[22; 23) " " 22 WHITESPACE@22..23 " "
23 LITERAL@[23; 27) 23 LITERAL@23..27
24 TRUE_KW@[23; 27) "true" 24 TRUE_KW@23..27 "true"
25 SEMICOLON@[27; 28) ";" 25 SEMICOLON@27..28 ";"
26 WHITESPACE@[28; 33) "\n " 26 WHITESPACE@28..33 "\n "
27 LET_STMT@[33; 47) 27 LET_STMT@33..47
28 LET_KW@[33; 36) "let" 28 LET_KW@33..36 "let"
29 WHITESPACE@[36; 37) " " 29 WHITESPACE@36..37 " "
30 PLACEHOLDER_PAT@[37; 38) 30 PLACEHOLDER_PAT@37..38
31 UNDERSCORE@[37; 38) "_" 31 UNDERSCORE@37..38 "_"
32 WHITESPACE@[38; 39) " " 32 WHITESPACE@38..39 " "
33 EQ@[39; 40) "=" 33 EQ@39..40 "="
34 WHITESPACE@[40; 41) " " 34 WHITESPACE@40..41 " "
35 LITERAL@[41; 46) 35 LITERAL@41..46
36 FALSE_KW@[41; 46) "false" 36 FALSE_KW@41..46 "false"
37 SEMICOLON@[46; 47) ";" 37 SEMICOLON@46..47 ";"
38 WHITESPACE@[47; 52) "\n " 38 WHITESPACE@47..52 "\n "
39 LET_STMT@[52; 62) 39 LET_STMT@52..62
40 LET_KW@[52; 55) "let" 40 LET_KW@52..55 "let"
41 WHITESPACE@[55; 56) " " 41 WHITESPACE@55..56 " "
42 PLACEHOLDER_PAT@[56; 57) 42 PLACEHOLDER_PAT@56..57
43 UNDERSCORE@[56; 57) "_" 43 UNDERSCORE@56..57 "_"
44 WHITESPACE@[57; 58) " " 44 WHITESPACE@57..58 " "
45 EQ@[58; 59) "=" 45 EQ@58..59 "="
46 WHITESPACE@[59; 60) " " 46 WHITESPACE@59..60 " "
47 LITERAL@[60; 61) 47 LITERAL@60..61
48 INT_NUMBER@[60; 61) "1" 48 INT_NUMBER@60..61 "1"
49 SEMICOLON@[61; 62) ";" 49 SEMICOLON@61..62 ";"
50 WHITESPACE@[62; 67) "\n " 50 WHITESPACE@62..67 "\n "
51 LET_STMT@[67; 79) 51 LET_STMT@67..79
52 LET_KW@[67; 70) "let" 52 LET_KW@67..70 "let"
53 WHITESPACE@[70; 71) " " 53 WHITESPACE@70..71 " "
54 PLACEHOLDER_PAT@[71; 72) 54 PLACEHOLDER_PAT@71..72
55 UNDERSCORE@[71; 72) "_" 55 UNDERSCORE@71..72 "_"
56 WHITESPACE@[72; 73) " " 56 WHITESPACE@72..73 " "
57 EQ@[73; 74) "=" 57 EQ@73..74 "="
58 WHITESPACE@[74; 75) " " 58 WHITESPACE@74..75 " "
59 LITERAL@[75; 78) 59 LITERAL@75..78
60 FLOAT_NUMBER@[75; 78) "2.0" 60 FLOAT_NUMBER@75..78 "2.0"
61 SEMICOLON@[78; 79) ";" 61 SEMICOLON@78..79 ";"
62 WHITESPACE@[79; 84) "\n " 62 WHITESPACE@79..84 "\n "
63 LET_STMT@[84; 97) 63 LET_STMT@84..97
64 LET_KW@[84; 87) "let" 64 LET_KW@84..87 "let"
65 WHITESPACE@[87; 88) " " 65 WHITESPACE@87..88 " "
66 PLACEHOLDER_PAT@[88; 89) 66 PLACEHOLDER_PAT@88..89
67 UNDERSCORE@[88; 89) "_" 67 UNDERSCORE@88..89 "_"
68 WHITESPACE@[89; 90) " " 68 WHITESPACE@89..90 " "
69 EQ@[90; 91) "=" 69 EQ@90..91 "="
70 WHITESPACE@[91; 92) " " 70 WHITESPACE@91..92 " "
71 LITERAL@[92; 96) 71 LITERAL@92..96
72 BYTE@[92; 96) "b\'a\'" 72 BYTE@92..96 "b\'a\'"
73 SEMICOLON@[96; 97) ";" 73 SEMICOLON@96..97 ";"
74 WHITESPACE@[97; 102) "\n " 74 WHITESPACE@97..102 "\n "
75 LET_STMT@[102; 114) 75 LET_STMT@102..114
76 LET_KW@[102; 105) "let" 76 LET_KW@102..105 "let"
77 WHITESPACE@[105; 106) " " 77 WHITESPACE@105..106 " "
78 PLACEHOLDER_PAT@[106; 107) 78 PLACEHOLDER_PAT@106..107
79 UNDERSCORE@[106; 107) "_" 79 UNDERSCORE@106..107 "_"
80 WHITESPACE@[107; 108) " " 80 WHITESPACE@107..108 " "
81 EQ@[108; 109) "=" 81 EQ@108..109 "="
82 WHITESPACE@[109; 110) " " 82 WHITESPACE@109..110 " "
83 LITERAL@[110; 113) 83 LITERAL@110..113
84 CHAR@[110; 113) "\'b\'" 84 CHAR@110..113 "\'b\'"
85 SEMICOLON@[113; 114) ";" 85 SEMICOLON@113..114 ";"
86 WHITESPACE@[114; 119) "\n " 86 WHITESPACE@114..119 "\n "
87 LET_STMT@[119; 131) 87 LET_STMT@119..131
88 LET_KW@[119; 122) "let" 88 LET_KW@119..122 "let"
89 WHITESPACE@[122; 123) " " 89 WHITESPACE@122..123 " "
90 PLACEHOLDER_PAT@[123; 124) 90 PLACEHOLDER_PAT@123..124
91 UNDERSCORE@[123; 124) "_" 91 UNDERSCORE@123..124 "_"
92 WHITESPACE@[124; 125) " " 92 WHITESPACE@124..125 " "
93 EQ@[125; 126) "=" 93 EQ@125..126 "="
94 WHITESPACE@[126; 127) " " 94 WHITESPACE@126..127 " "
95 LITERAL@[127; 130) 95 LITERAL@127..130
96 STRING@[127; 130) "\"c\"" 96 STRING@127..130 "\"c\""
97 SEMICOLON@[130; 131) ";" 97 SEMICOLON@130..131 ";"
98 WHITESPACE@[131; 136) "\n " 98 WHITESPACE@131..136 "\n "
99 LET_STMT@[136; 149) 99 LET_STMT@136..149
100 LET_KW@[136; 139) "let" 100 LET_KW@136..139 "let"
101 WHITESPACE@[139; 140) " " 101 WHITESPACE@139..140 " "
102 PLACEHOLDER_PAT@[140; 141) 102 PLACEHOLDER_PAT@140..141
103 UNDERSCORE@[140; 141) "_" 103 UNDERSCORE@140..141 "_"
104 WHITESPACE@[141; 142) " " 104 WHITESPACE@141..142 " "
105 EQ@[142; 143) "=" 105 EQ@142..143 "="
106 WHITESPACE@[143; 144) " " 106 WHITESPACE@143..144 " "
107 LITERAL@[144; 148) 107 LITERAL@144..148
108 RAW_STRING@[144; 148) "r\"d\"" 108 RAW_STRING@144..148 "r\"d\""
109 SEMICOLON@[148; 149) ";" 109 SEMICOLON@148..149 ";"
110 WHITESPACE@[149; 154) "\n " 110 WHITESPACE@149..154 "\n "
111 LET_STMT@[154; 167) 111 LET_STMT@154..167
112 LET_KW@[154; 157) "let" 112 LET_KW@154..157 "let"
113 WHITESPACE@[157; 158) " " 113 WHITESPACE@157..158 " "
114 PLACEHOLDER_PAT@[158; 159) 114 PLACEHOLDER_PAT@158..159
115 UNDERSCORE@[158; 159) "_" 115 UNDERSCORE@158..159 "_"
116 WHITESPACE@[159; 160) " " 116 WHITESPACE@159..160 " "
117 EQ@[160; 161) "=" 117 EQ@160..161 "="
118 WHITESPACE@[161; 162) " " 118 WHITESPACE@161..162 " "
119 LITERAL@[162; 166) 119 LITERAL@162..166
120 BYTE_STRING@[162; 166) "b\"e\"" 120 BYTE_STRING@162..166 "b\"e\""
121 SEMICOLON@[166; 167) ";" 121 SEMICOLON@166..167 ";"
122 WHITESPACE@[167; 172) "\n " 122 WHITESPACE@167..172 "\n "
123 LET_STMT@[172; 186) 123 LET_STMT@172..186
124 LET_KW@[172; 175) "let" 124 LET_KW@172..175 "let"
125 WHITESPACE@[175; 176) " " 125 WHITESPACE@175..176 " "
126 PLACEHOLDER_PAT@[176; 177) 126 PLACEHOLDER_PAT@176..177
127 UNDERSCORE@[176; 177) "_" 127 UNDERSCORE@176..177 "_"
128 WHITESPACE@[177; 178) " " 128 WHITESPACE@177..178 " "
129 EQ@[178; 179) "=" 129 EQ@178..179 "="
130 WHITESPACE@[179; 180) " " 130 WHITESPACE@179..180 " "
131 LITERAL@[180; 185) 131 LITERAL@180..185
132 RAW_BYTE_STRING@[180; 185) "br\"f\"" 132 RAW_BYTE_STRING@180..185 "br\"f\""
133 SEMICOLON@[185; 186) ";" 133 SEMICOLON@185..186 ";"
134 WHITESPACE@[186; 187) "\n" 134 WHITESPACE@186..187 "\n"
135 R_CURLY@[187; 188) "}" 135 R_CURLY@187..188 "}"
136 WHITESPACE@[188; 189) "\n" 136 WHITESPACE@188..189 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast
index ca1a97161..36f17133d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0086_function_ret_type.rast
@@ -1,36 +1,36 @@
1SOURCE_FILE@[0; 30) 1SOURCE_FILE@0..30
2 FN_DEF@[0; 11) 2 FN_DEF@0..11
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 11) 11 BLOCK_EXPR@9..11
12 BLOCK@[9; 11) 12 BLOCK@9..11
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 R_CURLY@[10; 11) "}" 14 R_CURLY@10..11 "}"
15 WHITESPACE@[11; 12) "\n" 15 WHITESPACE@11..12 "\n"
16 FN_DEF@[12; 29) 16 FN_DEF@12..29
17 FN_KW@[12; 14) "fn" 17 FN_KW@12..14 "fn"
18 WHITESPACE@[14; 15) " " 18 WHITESPACE@14..15 " "
19 NAME@[15; 18) 19 NAME@15..18
20 IDENT@[15; 18) "bar" 20 IDENT@15..18 "bar"
21 PARAM_LIST@[18; 20) 21 PARAM_LIST@18..20
22 L_PAREN@[18; 19) "(" 22 L_PAREN@18..19 "("
23 R_PAREN@[19; 20) ")" 23 R_PAREN@19..20 ")"
24 WHITESPACE@[20; 21) " " 24 WHITESPACE@20..21 " "
25 RET_TYPE@[21; 26) 25 RET_TYPE@21..26
26 THIN_ARROW@[21; 23) "->" 26 THIN_ARROW@21..23 "->"
27 WHITESPACE@[23; 24) " " 27 WHITESPACE@23..24 " "
28 TUPLE_TYPE@[24; 26) 28 TUPLE_TYPE@24..26
29 L_PAREN@[24; 25) "(" 29 L_PAREN@24..25 "("
30 R_PAREN@[25; 26) ")" 30 R_PAREN@25..26 ")"
31 WHITESPACE@[26; 27) " " 31 WHITESPACE@26..27 " "
32 BLOCK_EXPR@[27; 29) 32 BLOCK_EXPR@27..29
33 BLOCK@[27; 29) 33 BLOCK@27..29
34 L_CURLY@[27; 28) "{" 34 L_CURLY@27..28 "{"
35 R_CURLY@[28; 29) "}" 35 R_CURLY@28..29 "}"
36 WHITESPACE@[29; 30) "\n" 36 WHITESPACE@29..30 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0087_unsafe_impl.rast b/crates/ra_syntax/test_data/parser/inline/ok/0087_unsafe_impl.rast
index e614acc6f..01ed3afca 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0087_unsafe_impl.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0087_unsafe_impl.rast
@@ -1,16 +1,16 @@
1SOURCE_FILE@[0; 19) 1SOURCE_FILE@0..19
2 IMPL_DEF@[0; 18) 2 IMPL_DEF@0..18
3 UNSAFE_KW@[0; 6) "unsafe" 3 UNSAFE_KW@0..6 "unsafe"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 IMPL_KW@[7; 11) "impl" 5 IMPL_KW@7..11 "impl"
6 WHITESPACE@[11; 12) " " 6 WHITESPACE@11..12 " "
7 PATH_TYPE@[12; 15) 7 PATH_TYPE@12..15
8 PATH@[12; 15) 8 PATH@12..15
9 PATH_SEGMENT@[12; 15) 9 PATH_SEGMENT@12..15
10 NAME_REF@[12; 15) 10 NAME_REF@12..15
11 IDENT@[12; 15) "Foo" 11 IDENT@12..15 "Foo"
12 WHITESPACE@[15; 16) " " 12 WHITESPACE@15..16 " "
13 ITEM_LIST@[16; 18) 13 ITEM_LIST@16..18
14 L_CURLY@[16; 17) "{" 14 L_CURLY@16..17 "{"
15 R_CURLY@[17; 18) "}" 15 R_CURLY@17..18 "}"
16 WHITESPACE@[18; 19) "\n" 16 WHITESPACE@18..19 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast
index b23f43b46..ca5aa007e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0088_break_ambiguity.rast
@@ -1,69 +1,69 @@
1SOURCE_FILE@[0; 88) 1SOURCE_FILE@0..88
2 FN_DEF@[0; 87) 2 FN_DEF@0..87
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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_EXPR@[8; 87) 10 BLOCK_EXPR@8..87
11 BLOCK@[8; 87) 11 BLOCK@8..87
12 L_CURLY@[8; 9) "{" 12 L_CURLY@8..9 "{"
13 WHITESPACE@[9; 14) "\n " 13 WHITESPACE@9..14 "\n "
14 EXPR_STMT@[14; 25) 14 EXPR_STMT@14..25
15 IF_EXPR@[14; 25) 15 IF_EXPR@14..25
16 IF_KW@[14; 16) "if" 16 IF_KW@14..16 "if"
17 WHITESPACE@[16; 17) " " 17 WHITESPACE@16..17 " "
18 CONDITION@[17; 22) 18 CONDITION@17..22
19 BREAK_EXPR@[17; 22) 19 BREAK_EXPR@17..22
20 BREAK_KW@[17; 22) "break" 20 BREAK_KW@17..22 "break"
21 WHITESPACE@[22; 23) " " 21 WHITESPACE@22..23 " "
22 BLOCK_EXPR@[23; 25) 22 BLOCK_EXPR@23..25
23 BLOCK@[23; 25) 23 BLOCK@23..25
24 L_CURLY@[23; 24) "{" 24 L_CURLY@23..24 "{"
25 R_CURLY@[24; 25) "}" 25 R_CURLY@24..25 "}"
26 WHITESPACE@[25; 30) "\n " 26 WHITESPACE@25..30 "\n "
27 EXPR_STMT@[30; 44) 27 EXPR_STMT@30..44
28 WHILE_EXPR@[30; 44) 28 WHILE_EXPR@30..44
29 WHILE_KW@[30; 35) "while" 29 WHILE_KW@30..35 "while"
30 WHITESPACE@[35; 36) " " 30 WHITESPACE@35..36 " "
31 CONDITION@[36; 41) 31 CONDITION@36..41
32 BREAK_EXPR@[36; 41) 32 BREAK_EXPR@36..41
33 BREAK_KW@[36; 41) "break" 33 BREAK_KW@36..41 "break"
34 WHITESPACE@[41; 42) " " 34 WHITESPACE@41..42 " "
35 BLOCK_EXPR@[42; 44) 35 BLOCK_EXPR@42..44
36 BLOCK@[42; 44) 36 BLOCK@42..44
37 L_CURLY@[42; 43) "{" 37 L_CURLY@42..43 "{"
38 R_CURLY@[43; 44) "}" 38 R_CURLY@43..44 "}"
39 WHITESPACE@[44; 49) "\n " 39 WHITESPACE@44..49 "\n "
40 EXPR_STMT@[49; 66) 40 EXPR_STMT@49..66
41 FOR_EXPR@[49; 66) 41 FOR_EXPR@49..66
42 FOR_KW@[49; 52) "for" 42 FOR_KW@49..52 "for"
43 WHITESPACE@[52; 53) " " 43 WHITESPACE@52..53 " "
44 BIND_PAT@[53; 54) 44 BIND_PAT@53..54
45 NAME@[53; 54) 45 NAME@53..54
46 IDENT@[53; 54) "i" 46 IDENT@53..54 "i"
47 WHITESPACE@[54; 55) " " 47 WHITESPACE@54..55 " "
48 IN_KW@[55; 57) "in" 48 IN_KW@55..57 "in"
49 WHITESPACE@[57; 58) " " 49 WHITESPACE@57..58 " "
50 BREAK_EXPR@[58; 63) 50 BREAK_EXPR@58..63
51 BREAK_KW@[58; 63) "break" 51 BREAK_KW@58..63 "break"
52 WHITESPACE@[63; 64) " " 52 WHITESPACE@63..64 " "
53 BLOCK_EXPR@[64; 66) 53 BLOCK_EXPR@64..66
54 BLOCK@[64; 66) 54 BLOCK@64..66
55 L_CURLY@[64; 65) "{" 55 L_CURLY@64..65 "{"
56 R_CURLY@[65; 66) "}" 56 R_CURLY@65..66 "}"
57 WHITESPACE@[66; 71) "\n " 57 WHITESPACE@66..71 "\n "
58 MATCH_EXPR@[71; 85) 58 MATCH_EXPR@71..85
59 MATCH_KW@[71; 76) "match" 59 MATCH_KW@71..76 "match"
60 WHITESPACE@[76; 77) " " 60 WHITESPACE@76..77 " "
61 BREAK_EXPR@[77; 82) 61 BREAK_EXPR@77..82
62 BREAK_KW@[77; 82) "break" 62 BREAK_KW@77..82 "break"
63 WHITESPACE@[82; 83) " " 63 WHITESPACE@82..83 " "
64 MATCH_ARM_LIST@[83; 85) 64 MATCH_ARM_LIST@83..85
65 L_CURLY@[83; 84) "{" 65 L_CURLY@83..84 "{"
66 R_CURLY@[84; 85) "}" 66 R_CURLY@84..85 "}"
67 WHITESPACE@[85; 86) "\n" 67 WHITESPACE@85..86 "\n"
68 R_CURLY@[86; 87) "}" 68 R_CURLY@86..87 "}"
69 WHITESPACE@[87; 88) "\n" 69 WHITESPACE@87..88 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast
index b494f6c59..1c1e349e1 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0089_extern_fn.rast
@@ -1,18 +1,18 @@
1SOURCE_FILE@[0; 19) 1SOURCE_FILE@0..19
2 FN_DEF@[0; 18) 2 FN_DEF@0..18
3 ABI@[0; 6) 3 ABI@0..6
4 EXTERN_KW@[0; 6) "extern" 4 EXTERN_KW@0..6 "extern"
5 WHITESPACE@[6; 7) " " 5 WHITESPACE@6..7 " "
6 FN_KW@[7; 9) "fn" 6 FN_KW@7..9 "fn"
7 WHITESPACE@[9; 10) " " 7 WHITESPACE@9..10 " "
8 NAME@[10; 13) 8 NAME@10..13
9 IDENT@[10; 13) "foo" 9 IDENT@10..13 "foo"
10 PARAM_LIST@[13; 15) 10 PARAM_LIST@13..15
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_EXPR@[16; 18) 14 BLOCK_EXPR@16..18
15 BLOCK@[16; 18) 15 BLOCK@16..18
16 L_CURLY@[16; 17) "{" 16 L_CURLY@16..17 "{"
17 R_CURLY@[17; 18) "}" 17 R_CURLY@17..18 "}"
18 WHITESPACE@[18; 19) "\n" 18 WHITESPACE@18..19 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast b/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast
index 1d7796449..cee2bc906 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0090_type_param_default.rast
@@ -1,22 +1,22 @@
1SOURCE_FILE@[0; 19) 1SOURCE_FILE@0..19
2 STRUCT_DEF@[0; 18) 2 STRUCT_DEF@0..18
3 STRUCT_KW@[0; 6) "struct" 3 STRUCT_KW@0..6 "struct"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 NAME@[7; 8) 5 NAME@7..8
6 IDENT@[7; 8) "S" 6 IDENT@7..8 "S"
7 TYPE_PARAM_LIST@[8; 17) 7 TYPE_PARAM_LIST@8..17
8 L_ANGLE@[8; 9) "<" 8 L_ANGLE@8..9 "<"
9 TYPE_PARAM@[9; 16) 9 TYPE_PARAM@9..16
10 NAME@[9; 10) 10 NAME@9..10
11 IDENT@[9; 10) "T" 11 IDENT@9..10 "T"
12 WHITESPACE@[10; 11) " " 12 WHITESPACE@10..11 " "
13 EQ@[11; 12) "=" 13 EQ@11..12 "="
14 WHITESPACE@[12; 13) " " 14 WHITESPACE@12..13 " "
15 PATH_TYPE@[13; 16) 15 PATH_TYPE@13..16
16 PATH@[13; 16) 16 PATH@13..16
17 PATH_SEGMENT@[13; 16) 17 PATH_SEGMENT@13..16
18 NAME_REF@[13; 16) 18 NAME_REF@13..16
19 IDENT@[13; 16) "i32" 19 IDENT@13..16 "i32"
20 R_ANGLE@[16; 17) ">" 20 R_ANGLE@16..17 ">"
21 SEMICOLON@[17; 18) ";" 21 SEMICOLON@17..18 ";"
22 WHITESPACE@[18; 19) "\n" 22 WHITESPACE@18..19 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0091_auto_trait.rast b/crates/ra_syntax/test_data/parser/inline/ok/0091_auto_trait.rast
index 7093c2b1f..800412cef 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0091_auto_trait.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0091_auto_trait.rast
@@ -1,13 +1,13 @@
1SOURCE_FILE@[0; 16) 1SOURCE_FILE@0..16
2 TRAIT_DEF@[0; 15) 2 TRAIT_DEF@0..15
3 AUTO_KW@[0; 4) "auto" 3 AUTO_KW@0..4 "auto"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 TRAIT_KW@[5; 10) "trait" 5 TRAIT_KW@5..10 "trait"
6 WHITESPACE@[10; 11) " " 6 WHITESPACE@10..11 " "
7 NAME@[11; 12) 7 NAME@11..12
8 IDENT@[11; 12) "T" 8 IDENT@11..12 "T"
9 WHITESPACE@[12; 13) " " 9 WHITESPACE@12..13 " "
10 ITEM_LIST@[13; 15) 10 ITEM_LIST@13..15
11 L_CURLY@[13; 14) "{" 11 L_CURLY@13..14 "{"
12 R_CURLY@[14; 15) "}" 12 R_CURLY@14..15 "}"
13 WHITESPACE@[15; 16) "\n" 13 WHITESPACE@15..16 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast b/crates/ra_syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast
index db6013c6f..1e2d7db7c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0092_fn_pointer_type_with_ret.rast
@@ -1,23 +1,23 @@
1SOURCE_FILE@[0; 21) 1SOURCE_FILE@0..21
2 TYPE_ALIAS_DEF@[0; 20) 2 TYPE_ALIAS_DEF@0..20
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "F" 6 IDENT@5..6 "F"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 FN_POINTER_TYPE@[9; 19) 10 FN_POINTER_TYPE@9..19
11 FN_KW@[9; 11) "fn" 11 FN_KW@9..11 "fn"
12 PARAM_LIST@[11; 13) 12 PARAM_LIST@11..13
13 L_PAREN@[11; 12) "(" 13 L_PAREN@11..12 "("
14 R_PAREN@[12; 13) ")" 14 R_PAREN@12..13 ")"
15 WHITESPACE@[13; 14) " " 15 WHITESPACE@13..14 " "
16 RET_TYPE@[14; 19) 16 RET_TYPE@14..19
17 THIN_ARROW@[14; 16) "->" 17 THIN_ARROW@14..16 "->"
18 WHITESPACE@[16; 17) " " 18 WHITESPACE@16..17 " "
19 TUPLE_TYPE@[17; 19) 19 TUPLE_TYPE@17..19
20 L_PAREN@[17; 18) "(" 20 L_PAREN@17..18 "("
21 R_PAREN@[18; 19) ")" 21 R_PAREN@18..19 ")"
22 SEMICOLON@[19; 20) ";" 22 SEMICOLON@19..20 ";"
23 WHITESPACE@[20; 21) "\n" 23 WHITESPACE@20..21 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast
index 118cfc096..c264dae5e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0093_index_expr.rast
@@ -1,34 +1,34 @@
1SOURCE_FILE@[0; 26) 1SOURCE_FILE@0..26
2 FN_DEF@[0; 25) 2 FN_DEF@0..25
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 25) 11 BLOCK_EXPR@9..25
12 BLOCK@[9; 25) 12 BLOCK@9..25
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 23) 15 EXPR_STMT@15..23
16 INDEX_EXPR@[15; 22) 16 INDEX_EXPR@15..22
17 INDEX_EXPR@[15; 19) 17 INDEX_EXPR@15..19
18 PATH_EXPR@[15; 16) 18 PATH_EXPR@15..16
19 PATH@[15; 16) 19 PATH@15..16
20 PATH_SEGMENT@[15; 16) 20 PATH_SEGMENT@15..16
21 NAME_REF@[15; 16) 21 NAME_REF@15..16
22 IDENT@[15; 16) "x" 22 IDENT@15..16 "x"
23 L_BRACK@[16; 17) "[" 23 L_BRACK@16..17 "["
24 LITERAL@[17; 18) 24 LITERAL@17..18
25 INT_NUMBER@[17; 18) "1" 25 INT_NUMBER@17..18 "1"
26 R_BRACK@[18; 19) "]" 26 R_BRACK@18..19 "]"
27 L_BRACK@[19; 20) "[" 27 L_BRACK@19..20 "["
28 LITERAL@[20; 21) 28 LITERAL@20..21
29 INT_NUMBER@[20; 21) "2" 29 INT_NUMBER@20..21 "2"
30 R_BRACK@[21; 22) "]" 30 R_BRACK@21..22 "]"
31 SEMICOLON@[22; 23) ";" 31 SEMICOLON@22..23 ";"
32 WHITESPACE@[23; 24) "\n" 32 WHITESPACE@23..24 "\n"
33 R_CURLY@[24; 25) "}" 33 R_CURLY@24..25 "}"
34 WHITESPACE@[25; 26) "\n" 34 WHITESPACE@25..26 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0094_unsafe_auto_trait.rast b/crates/ra_syntax/test_data/parser/inline/ok/0094_unsafe_auto_trait.rast
index 3da3beaf4..9370f6ae7 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0094_unsafe_auto_trait.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0094_unsafe_auto_trait.rast
@@ -1,15 +1,15 @@
1SOURCE_FILE@[0; 23) 1SOURCE_FILE@0..23
2 TRAIT_DEF@[0; 22) 2 TRAIT_DEF@0..22
3 UNSAFE_KW@[0; 6) "unsafe" 3 UNSAFE_KW@0..6 "unsafe"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 AUTO_KW@[7; 11) "auto" 5 AUTO_KW@7..11 "auto"
6 WHITESPACE@[11; 12) " " 6 WHITESPACE@11..12 " "
7 TRAIT_KW@[12; 17) "trait" 7 TRAIT_KW@12..17 "trait"
8 WHITESPACE@[17; 18) " " 8 WHITESPACE@17..18 " "
9 NAME@[18; 19) 9 NAME@18..19
10 IDENT@[18; 19) "T" 10 IDENT@18..19 "T"
11 WHITESPACE@[19; 20) " " 11 WHITESPACE@19..20 " "
12 ITEM_LIST@[20; 22) 12 ITEM_LIST@20..22
13 L_CURLY@[20; 21) "{" 13 L_CURLY@20..21 "{"
14 R_CURLY@[21; 22) "}" 14 R_CURLY@21..22 "}"
15 WHITESPACE@[22; 23) "\n" 15 WHITESPACE@22..23 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast
index ebe7816a4..24e1ba8a0 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0095_placeholder_pat.rast
@@ -1,29 +1,29 @@
1SOURCE_FILE@[0; 26) 1SOURCE_FILE@0..26
2 FN_DEF@[0; 25) 2 FN_DEF@0..25
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 25) 11 BLOCK_EXPR@10..25
12 BLOCK@[10; 25) 12 BLOCK@10..25
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 12) " " 14 WHITESPACE@11..12 " "
15 LET_STMT@[12; 23) 15 LET_STMT@12..23
16 LET_KW@[12; 15) "let" 16 LET_KW@12..15 "let"
17 WHITESPACE@[15; 16) " " 17 WHITESPACE@15..16 " "
18 PLACEHOLDER_PAT@[16; 17) 18 PLACEHOLDER_PAT@16..17
19 UNDERSCORE@[16; 17) "_" 19 UNDERSCORE@16..17 "_"
20 WHITESPACE@[17; 18) " " 20 WHITESPACE@17..18 " "
21 EQ@[18; 19) "=" 21 EQ@18..19 "="
22 WHITESPACE@[19; 20) " " 22 WHITESPACE@19..20 " "
23 TUPLE_EXPR@[20; 22) 23 TUPLE_EXPR@20..22
24 L_PAREN@[20; 21) "(" 24 L_PAREN@20..21 "("
25 R_PAREN@[21; 22) ")" 25 R_PAREN@21..22 ")"
26 SEMICOLON@[22; 23) ";" 26 SEMICOLON@22..23 ";"
27 WHITESPACE@[23; 24) " " 27 WHITESPACE@23..24 " "
28 R_CURLY@[24; 25) "}" 28 R_CURLY@24..25 "}"
29 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.rast b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast
index 6bd6f5a6b..47462d44e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0096_no_semi_after_block.rast
@@ -1,130 +1,130 @@
1SOURCE_FILE@[0; 167) 1SOURCE_FILE@0..167
2 FN_DEF@[0; 166) 2 FN_DEF@0..166
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 166) 11 BLOCK_EXPR@9..166
12 BLOCK@[9; 166) 12 BLOCK@9..166
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 25) 15 EXPR_STMT@15..25
16 IF_EXPR@[15; 25) 16 IF_EXPR@15..25
17 IF_KW@[15; 17) "if" 17 IF_KW@15..17 "if"
18 WHITESPACE@[17; 18) " " 18 WHITESPACE@17..18 " "
19 CONDITION@[18; 22) 19 CONDITION@18..22
20 LITERAL@[18; 22) 20 LITERAL@18..22
21 TRUE_KW@[18; 22) "true" 21 TRUE_KW@18..22 "true"
22 WHITESPACE@[22; 23) " " 22 WHITESPACE@22..23 " "
23 BLOCK_EXPR@[23; 25) 23 BLOCK_EXPR@23..25
24 BLOCK@[23; 25) 24 BLOCK@23..25
25 L_CURLY@[23; 24) "{" 25 L_CURLY@23..24 "{"
26 R_CURLY@[24; 25) "}" 26 R_CURLY@24..25 "}"
27 WHITESPACE@[25; 30) "\n " 27 WHITESPACE@25..30 "\n "
28 EXPR_STMT@[30; 37) 28 EXPR_STMT@30..37
29 LOOP_EXPR@[30; 37) 29 LOOP_EXPR@30..37
30 LOOP_KW@[30; 34) "loop" 30 LOOP_KW@30..34 "loop"
31 WHITESPACE@[34; 35) " " 31 WHITESPACE@34..35 " "
32 BLOCK_EXPR@[35; 37) 32 BLOCK_EXPR@35..37
33 BLOCK@[35; 37) 33 BLOCK@35..37
34 L_CURLY@[35; 36) "{" 34 L_CURLY@35..36 "{"
35 R_CURLY@[36; 37) "}" 35 R_CURLY@36..37 "}"
36 WHITESPACE@[37; 42) "\n " 36 WHITESPACE@37..42 "\n "
37 EXPR_STMT@[42; 53) 37 EXPR_STMT@42..53
38 MATCH_EXPR@[42; 53) 38 MATCH_EXPR@42..53
39 MATCH_KW@[42; 47) "match" 39 MATCH_KW@42..47 "match"
40 WHITESPACE@[47; 48) " " 40 WHITESPACE@47..48 " "
41 TUPLE_EXPR@[48; 50) 41 TUPLE_EXPR@48..50
42 L_PAREN@[48; 49) "(" 42 L_PAREN@48..49 "("
43 R_PAREN@[49; 50) ")" 43 R_PAREN@49..50 ")"
44 WHITESPACE@[50; 51) " " 44 WHITESPACE@50..51 " "
45 MATCH_ARM_LIST@[51; 53) 45 MATCH_ARM_LIST@51..53
46 L_CURLY@[51; 52) "{" 46 L_CURLY@51..52 "{"
47 R_CURLY@[52; 53) "}" 47 R_CURLY@52..53 "}"
48 WHITESPACE@[53; 58) "\n " 48 WHITESPACE@53..58 "\n "
49 EXPR_STMT@[58; 71) 49 EXPR_STMT@58..71
50 WHILE_EXPR@[58; 71) 50 WHILE_EXPR@58..71
51 WHILE_KW@[58; 63) "while" 51 WHILE_KW@58..63 "while"
52 WHITESPACE@[63; 64) " " 52 WHITESPACE@63..64 " "
53 CONDITION@[64; 68) 53 CONDITION@64..68
54 LITERAL@[64; 68) 54 LITERAL@64..68
55 TRUE_KW@[64; 68) "true" 55 TRUE_KW@64..68 "true"
56 WHITESPACE@[68; 69) " " 56 WHITESPACE@68..69 " "
57 BLOCK_EXPR@[69; 71) 57 BLOCK_EXPR@69..71
58 BLOCK@[69; 71) 58 BLOCK@69..71
59 L_CURLY@[69; 70) "{" 59 L_CURLY@69..70 "{"
60 R_CURLY@[70; 71) "}" 60 R_CURLY@70..71 "}"
61 WHITESPACE@[71; 76) "\n " 61 WHITESPACE@71..76 "\n "
62 EXPR_STMT@[76; 90) 62 EXPR_STMT@76..90
63 FOR_EXPR@[76; 90) 63 FOR_EXPR@76..90
64 FOR_KW@[76; 79) "for" 64 FOR_KW@76..79 "for"
65 WHITESPACE@[79; 80) " " 65 WHITESPACE@79..80 " "
66 PLACEHOLDER_PAT@[80; 81) 66 PLACEHOLDER_PAT@80..81
67 UNDERSCORE@[80; 81) "_" 67 UNDERSCORE@80..81 "_"
68 WHITESPACE@[81; 82) " " 68 WHITESPACE@81..82 " "
69 IN_KW@[82; 84) "in" 69 IN_KW@82..84 "in"
70 WHITESPACE@[84; 85) " " 70 WHITESPACE@84..85 " "
71 TUPLE_EXPR@[85; 87) 71 TUPLE_EXPR@85..87
72 L_PAREN@[85; 86) "(" 72 L_PAREN@85..86 "("
73 R_PAREN@[86; 87) ")" 73 R_PAREN@86..87 ")"
74 WHITESPACE@[87; 88) " " 74 WHITESPACE@87..88 " "
75 BLOCK_EXPR@[88; 90) 75 BLOCK_EXPR@88..90
76 BLOCK@[88; 90) 76 BLOCK@88..90
77 L_CURLY@[88; 89) "{" 77 L_CURLY@88..89 "{"
78 R_CURLY@[89; 90) "}" 78 R_CURLY@89..90 "}"
79 WHITESPACE@[90; 95) "\n " 79 WHITESPACE@90..95 "\n "
80 EXPR_STMT@[95; 97) 80 EXPR_STMT@95..97
81 BLOCK_EXPR@[95; 97) 81 BLOCK_EXPR@95..97
82 BLOCK@[95; 97) 82 BLOCK@95..97
83 L_CURLY@[95; 96) "{" 83 L_CURLY@95..96 "{"
84 R_CURLY@[96; 97) "}" 84 R_CURLY@96..97 "}"
85 WHITESPACE@[97; 102) "\n " 85 WHITESPACE@97..102 "\n "
86 EXPR_STMT@[102; 104) 86 EXPR_STMT@102..104
87 BLOCK_EXPR@[102; 104) 87 BLOCK_EXPR@102..104
88 BLOCK@[102; 104) 88 BLOCK@102..104
89 L_CURLY@[102; 103) "{" 89 L_CURLY@102..103 "{"
90 R_CURLY@[103; 104) "}" 90 R_CURLY@103..104 "}"
91 WHITESPACE@[104; 109) "\n " 91 WHITESPACE@104..109 "\n "
92 EXPR_STMT@[109; 152) 92 EXPR_STMT@109..152
93 MACRO_CALL@[109; 152) 93 MACRO_CALL@109..152
94 PATH@[109; 120) 94 PATH@109..120
95 PATH_SEGMENT@[109; 120) 95 PATH_SEGMENT@109..120
96 NAME_REF@[109; 120) 96 NAME_REF@109..120
97 IDENT@[109; 120) "macro_rules" 97 IDENT@109..120 "macro_rules"
98 BANG@[120; 121) "!" 98 BANG@120..121 "!"
99 WHITESPACE@[121; 122) " " 99 WHITESPACE@121..122 " "
100 NAME@[122; 126) 100 NAME@122..126
101 IDENT@[122; 126) "test" 101 IDENT@122..126 "test"
102 WHITESPACE@[126; 127) " " 102 WHITESPACE@126..127 " "
103 TOKEN_TREE@[127; 152) 103 TOKEN_TREE@127..152
104 L_CURLY@[127; 128) "{" 104 L_CURLY@127..128 "{"
105 WHITESPACE@[128; 138) "\n " 105 WHITESPACE@128..138 "\n "
106 TOKEN_TREE@[138; 140) 106 TOKEN_TREE@138..140
107 L_PAREN@[138; 139) "(" 107 L_PAREN@138..139 "("
108 R_PAREN@[139; 140) ")" 108 R_PAREN@139..140 ")"
109 WHITESPACE@[140; 141) " " 109 WHITESPACE@140..141 " "
110 EQ@[141; 142) "=" 110 EQ@141..142 "="
111 R_ANGLE@[142; 143) ">" 111 R_ANGLE@142..143 ">"
112 WHITESPACE@[143; 144) " " 112 WHITESPACE@143..144 " "
113 TOKEN_TREE@[144; 146) 113 TOKEN_TREE@144..146
114 L_CURLY@[144; 145) "{" 114 L_CURLY@144..145 "{"
115 R_CURLY@[145; 146) "}" 115 R_CURLY@145..146 "}"
116 WHITESPACE@[146; 151) "\n " 116 WHITESPACE@146..151 "\n "
117 R_CURLY@[151; 152) "}" 117 R_CURLY@151..152 "}"
118 WHITESPACE@[152; 157) "\n " 118 WHITESPACE@152..157 "\n "
119 MACRO_CALL@[157; 164) 119 MACRO_CALL@157..164
120 PATH@[157; 161) 120 PATH@157..161
121 PATH_SEGMENT@[157; 161) 121 PATH_SEGMENT@157..161
122 NAME_REF@[157; 161) 122 NAME_REF@157..161
123 IDENT@[157; 161) "test" 123 IDENT@157..161 "test"
124 BANG@[161; 162) "!" 124 BANG@161..162 "!"
125 TOKEN_TREE@[162; 164) 125 TOKEN_TREE@162..164
126 L_CURLY@[162; 163) "{" 126 L_CURLY@162..163 "{"
127 R_CURLY@[163; 164) "}" 127 R_CURLY@163..164 "}"
128 WHITESPACE@[164; 165) "\n" 128 WHITESPACE@164..165 "\n"
129 R_CURLY@[165; 166) "}" 129 R_CURLY@165..166 "}"
130 WHITESPACE@[166; 167) "\n" 130 WHITESPACE@166..167 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0097_default_impl.rast b/crates/ra_syntax/test_data/parser/inline/ok/0097_default_impl.rast
index af9077270..80bda4ba7 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0097_default_impl.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0097_default_impl.rast
@@ -1,16 +1,16 @@
1SOURCE_FILE@[0; 20) 1SOURCE_FILE@0..20
2 IMPL_DEF@[0; 19) 2 IMPL_DEF@0..19
3 DEFAULT_KW@[0; 7) "default" 3 DEFAULT_KW@0..7 "default"
4 WHITESPACE@[7; 8) " " 4 WHITESPACE@7..8 " "
5 IMPL_KW@[8; 12) "impl" 5 IMPL_KW@8..12 "impl"
6 WHITESPACE@[12; 13) " " 6 WHITESPACE@12..13 " "
7 PATH_TYPE@[13; 16) 7 PATH_TYPE@13..16
8 PATH@[13; 16) 8 PATH@13..16
9 PATH_SEGMENT@[13; 16) 9 PATH_SEGMENT@13..16
10 NAME_REF@[13; 16) 10 NAME_REF@13..16
11 IDENT@[13; 16) "Foo" 11 IDENT@13..16 "Foo"
12 WHITESPACE@[16; 17) " " 12 WHITESPACE@16..17 " "
13 ITEM_LIST@[17; 19) 13 ITEM_LIST@17..19
14 L_CURLY@[17; 18) "{" 14 L_CURLY@17..18 "{"
15 R_CURLY@[18; 19) "}" 15 R_CURLY@18..19 "}"
16 WHITESPACE@[19; 20) "\n" 16 WHITESPACE@19..20 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast
index 072dc9d16..a51fb5511 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0098_const_unsafe_fn.rast
@@ -1,19 +1,19 @@
1SOURCE_FILE@[0; 25) 1SOURCE_FILE@0..25
2 FN_DEF@[0; 24) 2 FN_DEF@0..24
3 CONST_KW@[0; 5) "const" 3 CONST_KW@0..5 "const"
4 WHITESPACE@[5; 6) " " 4 WHITESPACE@5..6 " "
5 UNSAFE_KW@[6; 12) "unsafe" 5 UNSAFE_KW@6..12 "unsafe"
6 WHITESPACE@[12; 13) " " 6 WHITESPACE@12..13 " "
7 FN_KW@[13; 15) "fn" 7 FN_KW@13..15 "fn"
8 WHITESPACE@[15; 16) " " 8 WHITESPACE@15..16 " "
9 NAME@[16; 19) 9 NAME@16..19
10 IDENT@[16; 19) "foo" 10 IDENT@16..19 "foo"
11 PARAM_LIST@[19; 21) 11 PARAM_LIST@19..21
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_EXPR@[22; 24) 15 BLOCK_EXPR@22..24
16 BLOCK@[22; 24) 16 BLOCK@22..24
17 L_CURLY@[22; 23) "{" 17 L_CURLY@22..23 "{"
18 R_CURLY@[23; 24) "}" 18 R_CURLY@23..24 "}"
19 WHITESPACE@[24; 25) "\n" 19 WHITESPACE@24..25 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast
index ed57a9eea..61b47bf35 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0099_param_list.rast
@@ -1,103 +1,103 @@
1SOURCE_FILE@[0; 67) 1SOURCE_FILE@0..67
2 FN_DEF@[0; 9) 2 FN_DEF@0..9
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 4) 5 NAME@3..4
6 IDENT@[3; 4) "a" 6 IDENT@3..4 "a"
7 PARAM_LIST@[4; 6) 7 PARAM_LIST@4..6
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_EXPR@[7; 9) 11 BLOCK_EXPR@7..9
12 BLOCK@[7; 9) 12 BLOCK@7..9
13 L_CURLY@[7; 8) "{" 13 L_CURLY@7..8 "{"
14 R_CURLY@[8; 9) "}" 14 R_CURLY@8..9 "}"
15 WHITESPACE@[9; 10) "\n" 15 WHITESPACE@9..10 "\n"
16 FN_DEF@[10; 25) 16 FN_DEF@10..25
17 FN_KW@[10; 12) "fn" 17 FN_KW@10..12 "fn"
18 WHITESPACE@[12; 13) " " 18 WHITESPACE@12..13 " "
19 NAME@[13; 14) 19 NAME@13..14
20 IDENT@[13; 14) "b" 20 IDENT@13..14 "b"
21 PARAM_LIST@[14; 22) 21 PARAM_LIST@14..22
22 L_PAREN@[14; 15) "(" 22 L_PAREN@14..15 "("
23 PARAM@[15; 21) 23 PARAM@15..21
24 BIND_PAT@[15; 16) 24 BIND_PAT@15..16
25 NAME@[15; 16) 25 NAME@15..16
26 IDENT@[15; 16) "x" 26 IDENT@15..16 "x"
27 COLON@[16; 17) ":" 27 COLON@16..17 ":"
28 WHITESPACE@[17; 18) " " 28 WHITESPACE@17..18 " "
29 PATH_TYPE@[18; 21) 29 PATH_TYPE@18..21
30 PATH@[18; 21) 30 PATH@18..21
31 PATH_SEGMENT@[18; 21) 31 PATH_SEGMENT@18..21
32 NAME_REF@[18; 21) 32 NAME_REF@18..21
33 IDENT@[18; 21) "i32" 33 IDENT@18..21 "i32"
34 R_PAREN@[21; 22) ")" 34 R_PAREN@21..22 ")"
35 WHITESPACE@[22; 23) " " 35 WHITESPACE@22..23 " "
36 BLOCK_EXPR@[23; 25) 36 BLOCK_EXPR@23..25
37 BLOCK@[23; 25) 37 BLOCK@23..25
38 L_CURLY@[23; 24) "{" 38 L_CURLY@23..24 "{"
39 R_CURLY@[24; 25) "}" 39 R_CURLY@24..25 "}"
40 WHITESPACE@[25; 26) "\n" 40 WHITESPACE@25..26 "\n"
41 FN_DEF@[26; 43) 41 FN_DEF@26..43
42 FN_KW@[26; 28) "fn" 42 FN_KW@26..28 "fn"
43 WHITESPACE@[28; 29) " " 43 WHITESPACE@28..29 " "
44 NAME@[29; 30) 44 NAME@29..30
45 IDENT@[29; 30) "c" 45 IDENT@29..30 "c"
46 PARAM_LIST@[30; 40) 46 PARAM_LIST@30..40
47 L_PAREN@[30; 31) "(" 47 L_PAREN@30..31 "("
48 PARAM@[31; 37) 48 PARAM@31..37
49 BIND_PAT@[31; 32) 49 BIND_PAT@31..32
50 NAME@[31; 32) 50 NAME@31..32
51 IDENT@[31; 32) "x" 51 IDENT@31..32 "x"
52 COLON@[32; 33) ":" 52 COLON@32..33 ":"
53 WHITESPACE@[33; 34) " " 53 WHITESPACE@33..34 " "
54 PATH_TYPE@[34; 37) 54 PATH_TYPE@34..37
55 PATH@[34; 37) 55 PATH@34..37
56 PATH_SEGMENT@[34; 37) 56 PATH_SEGMENT@34..37
57 NAME_REF@[34; 37) 57 NAME_REF@34..37
58 IDENT@[34; 37) "i32" 58 IDENT@34..37 "i32"
59 COMMA@[37; 38) "," 59 COMMA@37..38 ","
60 WHITESPACE@[38; 39) " " 60 WHITESPACE@38..39 " "
61 R_PAREN@[39; 40) ")" 61 R_PAREN@39..40 ")"
62 WHITESPACE@[40; 41) " " 62 WHITESPACE@40..41 " "
63 BLOCK_EXPR@[41; 43) 63 BLOCK_EXPR@41..43
64 BLOCK@[41; 43) 64 BLOCK@41..43
65 L_CURLY@[41; 42) "{" 65 L_CURLY@41..42 "{"
66 R_CURLY@[42; 43) "}" 66 R_CURLY@42..43 "}"
67 WHITESPACE@[43; 44) "\n" 67 WHITESPACE@43..44 "\n"
68 FN_DEF@[44; 66) 68 FN_DEF@44..66
69 FN_KW@[44; 46) "fn" 69 FN_KW@44..46 "fn"
70 WHITESPACE@[46; 47) " " 70 WHITESPACE@46..47 " "
71 NAME@[47; 48) 71 NAME@47..48
72 IDENT@[47; 48) "d" 72 IDENT@47..48 "d"
73 PARAM_LIST@[48; 63) 73 PARAM_LIST@48..63
74 L_PAREN@[48; 49) "(" 74 L_PAREN@48..49 "("
75 PARAM@[49; 55) 75 PARAM@49..55
76 BIND_PAT@[49; 50) 76 BIND_PAT@49..50
77 NAME@[49; 50) 77 NAME@49..50
78 IDENT@[49; 50) "x" 78 IDENT@49..50 "x"
79 COLON@[50; 51) ":" 79 COLON@50..51 ":"
80 WHITESPACE@[51; 52) " " 80 WHITESPACE@51..52 " "
81 PATH_TYPE@[52; 55) 81 PATH_TYPE@52..55
82 PATH@[52; 55) 82 PATH@52..55
83 PATH_SEGMENT@[52; 55) 83 PATH_SEGMENT@52..55
84 NAME_REF@[52; 55) 84 NAME_REF@52..55
85 IDENT@[52; 55) "i32" 85 IDENT@52..55 "i32"
86 COMMA@[55; 56) "," 86 COMMA@55..56 ","
87 WHITESPACE@[56; 57) " " 87 WHITESPACE@56..57 " "
88 PARAM@[57; 62) 88 PARAM@57..62
89 BIND_PAT@[57; 58) 89 BIND_PAT@57..58
90 NAME@[57; 58) 90 NAME@57..58
91 IDENT@[57; 58) "y" 91 IDENT@57..58 "y"
92 COLON@[58; 59) ":" 92 COLON@58..59 ":"
93 WHITESPACE@[59; 60) " " 93 WHITESPACE@59..60 " "
94 TUPLE_TYPE@[60; 62) 94 TUPLE_TYPE@60..62
95 L_PAREN@[60; 61) "(" 95 L_PAREN@60..61 "("
96 R_PAREN@[61; 62) ")" 96 R_PAREN@61..62 ")"
97 R_PAREN@[62; 63) ")" 97 R_PAREN@62..63 ")"
98 WHITESPACE@[63; 64) " " 98 WHITESPACE@63..64 " "
99 BLOCK_EXPR@[64; 66) 99 BLOCK_EXPR@64..66
100 BLOCK@[64; 66) 100 BLOCK@64..66
101 L_CURLY@[64; 65) "{" 101 L_CURLY@64..65 "{"
102 R_CURLY@[65; 66) "}" 102 R_CURLY@65..66 "}"
103 WHITESPACE@[66; 67) "\n" 103 WHITESPACE@66..67 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast
index d25f087a5..89d435d1f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0100_for_expr.rast
@@ -1,36 +1,36 @@
1SOURCE_FILE@[0; 33) 1SOURCE_FILE@0..33
2 FN_DEF@[0; 32) 2 FN_DEF@0..32
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 32) 11 BLOCK_EXPR@9..32
12 BLOCK@[9; 32) 12 BLOCK@9..32
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 30) 15 EXPR_STMT@15..30
16 FOR_EXPR@[15; 29) 16 FOR_EXPR@15..29
17 FOR_KW@[15; 18) "for" 17 FOR_KW@15..18 "for"
18 WHITESPACE@[18; 19) " " 18 WHITESPACE@18..19 " "
19 BIND_PAT@[19; 20) 19 BIND_PAT@19..20
20 NAME@[19; 20) 20 NAME@19..20
21 IDENT@[19; 20) "x" 21 IDENT@19..20 "x"
22 WHITESPACE@[20; 21) " " 22 WHITESPACE@20..21 " "
23 IN_KW@[21; 23) "in" 23 IN_KW@21..23 "in"
24 WHITESPACE@[23; 24) " " 24 WHITESPACE@23..24 " "
25 ARRAY_EXPR@[24; 26) 25 ARRAY_EXPR@24..26
26 L_BRACK@[24; 25) "[" 26 L_BRACK@24..25 "["
27 R_BRACK@[25; 26) "]" 27 R_BRACK@25..26 "]"
28 WHITESPACE@[26; 27) " " 28 WHITESPACE@26..27 " "
29 BLOCK_EXPR@[27; 29) 29 BLOCK_EXPR@27..29
30 BLOCK@[27; 29) 30 BLOCK@27..29
31 L_CURLY@[27; 28) "{" 31 L_CURLY@27..28 "{"
32 R_CURLY@[28; 29) "}" 32 R_CURLY@28..29 "}"
33 SEMICOLON@[29; 30) ";" 33 SEMICOLON@29..30 ";"
34 WHITESPACE@[30; 31) "\n" 34 WHITESPACE@30..31 "\n"
35 R_CURLY@[31; 32) "}" 35 R_CURLY@31..32 "}"
36 WHITESPACE@[32; 33) "\n" 36 WHITESPACE@32..33 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast
index b7979fbf5..57b4d0c4f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0101_unsafe_fn.rast
@@ -1,17 +1,17 @@
1SOURCE_FILE@[0; 19) 1SOURCE_FILE@0..19
2 FN_DEF@[0; 18) 2 FN_DEF@0..18
3 UNSAFE_KW@[0; 6) "unsafe" 3 UNSAFE_KW@0..6 "unsafe"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 FN_KW@[7; 9) "fn" 5 FN_KW@7..9 "fn"
6 WHITESPACE@[9; 10) " " 6 WHITESPACE@9..10 " "
7 NAME@[10; 13) 7 NAME@10..13
8 IDENT@[10; 13) "foo" 8 IDENT@10..13 "foo"
9 PARAM_LIST@[13; 15) 9 PARAM_LIST@13..15
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_EXPR@[16; 18) 13 BLOCK_EXPR@16..18
14 BLOCK@[16; 18) 14 BLOCK@16..18
15 L_CURLY@[16; 17) "{" 15 L_CURLY@16..17 "{"
16 R_CURLY@[17; 18) "}" 16 R_CURLY@17..18 "}"
17 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.rast b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast
index fcd099de9..ed6f6f326 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0102_record_field_pat_list.rast
@@ -1,133 +1,133 @@
1SOURCE_FILE@[0; 119) 1SOURCE_FILE@0..119
2 FN_DEF@[0; 118) 2 FN_DEF@0..118
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 118) 11 BLOCK_EXPR@9..118
12 BLOCK@[9; 118) 12 BLOCK@9..118
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 29) 15 LET_STMT@15..29
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 RECORD_PAT@[19; 23) 18 RECORD_PAT@19..23
19 PATH@[19; 20) 19 PATH@19..20
20 PATH_SEGMENT@[19; 20) 20 PATH_SEGMENT@19..20
21 NAME_REF@[19; 20) 21 NAME_REF@19..20
22 IDENT@[19; 20) "S" 22 IDENT@19..20 "S"
23 WHITESPACE@[20; 21) " " 23 WHITESPACE@20..21 " "
24 RECORD_FIELD_PAT_LIST@[21; 23) 24 RECORD_FIELD_PAT_LIST@21..23
25 L_CURLY@[21; 22) "{" 25 L_CURLY@21..22 "{"
26 R_CURLY@[22; 23) "}" 26 R_CURLY@22..23 "}"
27 WHITESPACE@[23; 24) " " 27 WHITESPACE@23..24 " "
28 EQ@[24; 25) "=" 28 EQ@24..25 "="
29 WHITESPACE@[25; 26) " " 29 WHITESPACE@25..26 " "
30 TUPLE_EXPR@[26; 28) 30 TUPLE_EXPR@26..28
31 L_PAREN@[26; 27) "(" 31 L_PAREN@26..27 "("
32 R_PAREN@[27; 28) ")" 32 R_PAREN@27..28 ")"
33 SEMICOLON@[28; 29) ";" 33 SEMICOLON@28..29 ";"
34 WHITESPACE@[29; 34) "\n " 34 WHITESPACE@29..34 "\n "
35 LET_STMT@[34; 62) 35 LET_STMT@34..62
36 LET_KW@[34; 37) "let" 36 LET_KW@34..37 "let"
37 WHITESPACE@[37; 38) " " 37 WHITESPACE@37..38 " "
38 RECORD_PAT@[38; 56) 38 RECORD_PAT@38..56
39 PATH@[38; 39) 39 PATH@38..39
40 PATH_SEGMENT@[38; 39) 40 PATH_SEGMENT@38..39
41 NAME_REF@[38; 39) 41 NAME_REF@38..39
42 IDENT@[38; 39) "S" 42 IDENT@38..39 "S"
43 WHITESPACE@[39; 40) " " 43 WHITESPACE@39..40 " "
44 RECORD_FIELD_PAT_LIST@[40; 56) 44 RECORD_FIELD_PAT_LIST@40..56
45 L_CURLY@[40; 41) "{" 45 L_CURLY@40..41 "{"
46 WHITESPACE@[41; 42) " " 46 WHITESPACE@41..42 " "
47 RECORD_FIELD_PAT@[42; 43) 47 RECORD_FIELD_PAT@42..43
48 BIND_PAT@[42; 43) 48 BIND_PAT@42..43
49 NAME@[42; 43) 49 NAME@42..43
50 IDENT@[42; 43) "f" 50 IDENT@42..43 "f"
51 COMMA@[43; 44) "," 51 COMMA@43..44 ","
52 WHITESPACE@[44; 45) " " 52 WHITESPACE@44..45 " "
53 RECORD_FIELD_PAT@[45; 54) 53 RECORD_FIELD_PAT@45..54
54 BIND_PAT@[45; 54) 54 BIND_PAT@45..54
55 REF_KW@[45; 48) "ref" 55 REF_KW@45..48 "ref"
56 WHITESPACE@[48; 49) " " 56 WHITESPACE@48..49 " "
57 MUT_KW@[49; 52) "mut" 57 MUT_KW@49..52 "mut"
58 WHITESPACE@[52; 53) " " 58 WHITESPACE@52..53 " "
59 NAME@[53; 54) 59 NAME@53..54
60 IDENT@[53; 54) "g" 60 IDENT@53..54 "g"
61 WHITESPACE@[54; 55) " " 61 WHITESPACE@54..55 " "
62 R_CURLY@[55; 56) "}" 62 R_CURLY@55..56 "}"
63 WHITESPACE@[56; 57) " " 63 WHITESPACE@56..57 " "
64 EQ@[57; 58) "=" 64 EQ@57..58 "="
65 WHITESPACE@[58; 59) " " 65 WHITESPACE@58..59 " "
66 TUPLE_EXPR@[59; 61) 66 TUPLE_EXPR@59..61
67 L_PAREN@[59; 60) "(" 67 L_PAREN@59..60 "("
68 R_PAREN@[60; 61) ")" 68 R_PAREN@60..61 ")"
69 SEMICOLON@[61; 62) ";" 69 SEMICOLON@61..62 ";"
70 WHITESPACE@[62; 67) "\n " 70 WHITESPACE@62..67 "\n "
71 LET_STMT@[67; 90) 71 LET_STMT@67..90
72 LET_KW@[67; 70) "let" 72 LET_KW@67..70 "let"
73 WHITESPACE@[70; 71) " " 73 WHITESPACE@70..71 " "
74 RECORD_PAT@[71; 84) 74 RECORD_PAT@71..84
75 PATH@[71; 72) 75 PATH@71..72
76 PATH_SEGMENT@[71; 72) 76 PATH_SEGMENT@71..72
77 NAME_REF@[71; 72) 77 NAME_REF@71..72
78 IDENT@[71; 72) "S" 78 IDENT@71..72 "S"
79 WHITESPACE@[72; 73) " " 79 WHITESPACE@72..73 " "
80 RECORD_FIELD_PAT_LIST@[73; 84) 80 RECORD_FIELD_PAT_LIST@73..84
81 L_CURLY@[73; 74) "{" 81 L_CURLY@73..74 "{"
82 WHITESPACE@[74; 75) " " 82 WHITESPACE@74..75 " "
83 RECORD_FIELD_PAT@[75; 79) 83 RECORD_FIELD_PAT@75..79
84 NAME_REF@[75; 76) 84 NAME_REF@75..76
85 IDENT@[75; 76) "h" 85 IDENT@75..76 "h"
86 COLON@[76; 77) ":" 86 COLON@76..77 ":"
87 WHITESPACE@[77; 78) " " 87 WHITESPACE@77..78 " "
88 PLACEHOLDER_PAT@[78; 79) 88 PLACEHOLDER_PAT@78..79
89 UNDERSCORE@[78; 79) "_" 89 UNDERSCORE@78..79 "_"
90 COMMA@[79; 80) "," 90 COMMA@79..80 ","
91 WHITESPACE@[80; 81) " " 91 WHITESPACE@80..81 " "
92 DOT2@[81; 83) ".." 92 DOT2@81..83 ".."
93 R_CURLY@[83; 84) "}" 93 R_CURLY@83..84 "}"
94 WHITESPACE@[84; 85) " " 94 WHITESPACE@84..85 " "
95 EQ@[85; 86) "=" 95 EQ@85..86 "="
96 WHITESPACE@[86; 87) " " 96 WHITESPACE@86..87 " "
97 TUPLE_EXPR@[87; 89) 97 TUPLE_EXPR@87..89
98 L_PAREN@[87; 88) "(" 98 L_PAREN@87..88 "("
99 R_PAREN@[88; 89) ")" 99 R_PAREN@88..89 ")"
100 SEMICOLON@[89; 90) ";" 100 SEMICOLON@89..90 ";"
101 WHITESPACE@[90; 95) "\n " 101 WHITESPACE@90..95 "\n "
102 LET_STMT@[95; 116) 102 LET_STMT@95..116
103 LET_KW@[95; 98) "let" 103 LET_KW@95..98 "let"
104 WHITESPACE@[98; 99) " " 104 WHITESPACE@98..99 " "
105 RECORD_PAT@[99; 110) 105 RECORD_PAT@99..110
106 PATH@[99; 100) 106 PATH@99..100
107 PATH_SEGMENT@[99; 100) 107 PATH_SEGMENT@99..100
108 NAME_REF@[99; 100) 108 NAME_REF@99..100
109 IDENT@[99; 100) "S" 109 IDENT@99..100 "S"
110 WHITESPACE@[100; 101) " " 110 WHITESPACE@100..101 " "
111 RECORD_FIELD_PAT_LIST@[101; 110) 111 RECORD_FIELD_PAT_LIST@101..110
112 L_CURLY@[101; 102) "{" 112 L_CURLY@101..102 "{"
113 WHITESPACE@[102; 103) " " 113 WHITESPACE@102..103 " "
114 RECORD_FIELD_PAT@[103; 107) 114 RECORD_FIELD_PAT@103..107
115 NAME_REF@[103; 104) 115 NAME_REF@103..104
116 IDENT@[103; 104) "h" 116 IDENT@103..104 "h"
117 COLON@[104; 105) ":" 117 COLON@104..105 ":"
118 WHITESPACE@[105; 106) " " 118 WHITESPACE@105..106 " "
119 PLACEHOLDER_PAT@[106; 107) 119 PLACEHOLDER_PAT@106..107
120 UNDERSCORE@[106; 107) "_" 120 UNDERSCORE@106..107 "_"
121 COMMA@[107; 108) "," 121 COMMA@107..108 ","
122 WHITESPACE@[108; 109) " " 122 WHITESPACE@108..109 " "
123 R_CURLY@[109; 110) "}" 123 R_CURLY@109..110 "}"
124 WHITESPACE@[110; 111) " " 124 WHITESPACE@110..111 " "
125 EQ@[111; 112) "=" 125 EQ@111..112 "="
126 WHITESPACE@[112; 113) " " 126 WHITESPACE@112..113 " "
127 TUPLE_EXPR@[113; 115) 127 TUPLE_EXPR@113..115
128 L_PAREN@[113; 114) "(" 128 L_PAREN@113..114 "("
129 R_PAREN@[114; 115) ")" 129 R_PAREN@114..115 ")"
130 SEMICOLON@[115; 116) ";" 130 SEMICOLON@115..116 ";"
131 WHITESPACE@[116; 117) "\n" 131 WHITESPACE@116..117 "\n"
132 R_CURLY@[117; 118) "}" 132 R_CURLY@117..118 "}"
133 WHITESPACE@[118; 119) "\n" 133 WHITESPACE@118..119 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast
index 60fbf2771..461c61914 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0103_array_expr.rast
@@ -1,55 +1,55 @@
1SOURCE_FILE@[0; 55) 1SOURCE_FILE@0..55
2 FN_DEF@[0; 54) 2 FN_DEF@0..54
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 54) 11 BLOCK_EXPR@9..54
12 BLOCK@[9; 54) 12 BLOCK@9..54
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 18) 15 EXPR_STMT@15..18
16 ARRAY_EXPR@[15; 17) 16 ARRAY_EXPR@15..17
17 L_BRACK@[15; 16) "[" 17 L_BRACK@15..16 "["
18 R_BRACK@[16; 17) "]" 18 R_BRACK@16..17 "]"
19 SEMICOLON@[17; 18) ";" 19 SEMICOLON@17..18 ";"
20 WHITESPACE@[18; 23) "\n " 20 WHITESPACE@18..23 "\n "
21 EXPR_STMT@[23; 27) 21 EXPR_STMT@23..27
22 ARRAY_EXPR@[23; 26) 22 ARRAY_EXPR@23..26
23 L_BRACK@[23; 24) "[" 23 L_BRACK@23..24 "["
24 LITERAL@[24; 25) 24 LITERAL@24..25
25 INT_NUMBER@[24; 25) "1" 25 INT_NUMBER@24..25 "1"
26 R_BRACK@[25; 26) "]" 26 R_BRACK@25..26 "]"
27 SEMICOLON@[26; 27) ";" 27 SEMICOLON@26..27 ";"
28 WHITESPACE@[27; 32) "\n " 28 WHITESPACE@27..32 "\n "
29 EXPR_STMT@[32; 40) 29 EXPR_STMT@32..40
30 ARRAY_EXPR@[32; 39) 30 ARRAY_EXPR@32..39
31 L_BRACK@[32; 33) "[" 31 L_BRACK@32..33 "["
32 LITERAL@[33; 34) 32 LITERAL@33..34
33 INT_NUMBER@[33; 34) "1" 33 INT_NUMBER@33..34 "1"
34 COMMA@[34; 35) "," 34 COMMA@34..35 ","
35 WHITESPACE@[35; 36) " " 35 WHITESPACE@35..36 " "
36 LITERAL@[36; 37) 36 LITERAL@36..37
37 INT_NUMBER@[36; 37) "2" 37 INT_NUMBER@36..37 "2"
38 COMMA@[37; 38) "," 38 COMMA@37..38 ","
39 R_BRACK@[38; 39) "]" 39 R_BRACK@38..39 "]"
40 SEMICOLON@[39; 40) ";" 40 SEMICOLON@39..40 ";"
41 WHITESPACE@[40; 45) "\n " 41 WHITESPACE@40..45 "\n "
42 EXPR_STMT@[45; 52) 42 EXPR_STMT@45..52
43 ARRAY_EXPR@[45; 51) 43 ARRAY_EXPR@45..51
44 L_BRACK@[45; 46) "[" 44 L_BRACK@45..46 "["
45 LITERAL@[46; 47) 45 LITERAL@46..47
46 INT_NUMBER@[46; 47) "1" 46 INT_NUMBER@46..47 "1"
47 SEMICOLON@[47; 48) ";" 47 SEMICOLON@47..48 ";"
48 WHITESPACE@[48; 49) " " 48 WHITESPACE@48..49 " "
49 LITERAL@[49; 50) 49 LITERAL@49..50
50 INT_NUMBER@[49; 50) "2" 50 INT_NUMBER@49..50 "2"
51 R_BRACK@[50; 51) "]" 51 R_BRACK@50..51 "]"
52 SEMICOLON@[51; 52) ";" 52 SEMICOLON@51..52 ";"
53 WHITESPACE@[52; 53) "\n" 53 WHITESPACE@52..53 "\n"
54 R_CURLY@[53; 54) "}" 54 R_CURLY@53..54 "}"
55 WHITESPACE@[54; 55) "\n" 55 WHITESPACE@54..55 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast b/crates/ra_syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast
index d65c75c65..e3c4cfeb3 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0104_path_fn_trait_args.rast
@@ -1,41 +1,41 @@
1SOURCE_FILE@[0; 29) 1SOURCE_FILE@0..29
2 TYPE_ALIAS_DEF@[0; 28) 2 TYPE_ALIAS_DEF@0..28
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "F" 6 IDENT@5..6 "F"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 PATH_TYPE@[9; 27) 10 PATH_TYPE@9..27
11 PATH@[9; 27) 11 PATH@9..27
12 PATH_SEGMENT@[9; 27) 12 PATH_SEGMENT@9..27
13 NAME_REF@[9; 12) 13 NAME_REF@9..12
14 IDENT@[9; 12) "Box" 14 IDENT@9..12 "Box"
15 TYPE_ARG_LIST@[12; 27) 15 TYPE_ARG_LIST@12..27
16 L_ANGLE@[12; 13) "<" 16 L_ANGLE@12..13 "<"
17 TYPE_ARG@[13; 26) 17 TYPE_ARG@13..26
18 PATH_TYPE@[13; 26) 18 PATH_TYPE@13..26
19 PATH@[13; 26) 19 PATH@13..26
20 PATH_SEGMENT@[13; 26) 20 PATH_SEGMENT@13..26
21 NAME_REF@[13; 15) 21 NAME_REF@13..15
22 IDENT@[13; 15) "Fn" 22 IDENT@13..15 "Fn"
23 PARAM_LIST@[15; 20) 23 PARAM_LIST@15..20
24 L_PAREN@[15; 16) "(" 24 L_PAREN@15..16 "("
25 PARAM@[16; 19) 25 PARAM@16..19
26 PATH_TYPE@[16; 19) 26 PATH_TYPE@16..19
27 PATH@[16; 19) 27 PATH@16..19
28 PATH_SEGMENT@[16; 19) 28 PATH_SEGMENT@16..19
29 NAME_REF@[16; 19) 29 NAME_REF@16..19
30 IDENT@[16; 19) "i32" 30 IDENT@16..19 "i32"
31 R_PAREN@[19; 20) ")" 31 R_PAREN@19..20 ")"
32 WHITESPACE@[20; 21) " " 32 WHITESPACE@20..21 " "
33 RET_TYPE@[21; 26) 33 RET_TYPE@21..26
34 THIN_ARROW@[21; 23) "->" 34 THIN_ARROW@21..23 "->"
35 WHITESPACE@[23; 24) " " 35 WHITESPACE@23..24 " "
36 TUPLE_TYPE@[24; 26) 36 TUPLE_TYPE@24..26
37 L_PAREN@[24; 25) "(" 37 L_PAREN@24..25 "("
38 R_PAREN@[25; 26) ")" 38 R_PAREN@25..26 ")"
39 R_ANGLE@[26; 27) ">" 39 R_ANGLE@26..27 ">"
40 SEMICOLON@[27; 28) ";" 40 SEMICOLON@27..28 ";"
41 WHITESPACE@[28; 29) "\n" 41 WHITESPACE@28..29 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast
index 5635cba9b..8b2323cf2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0105_block_expr.rast
@@ -1,43 +1,43 @@
1SOURCE_FILE@[0; 52) 1SOURCE_FILE@0..52
2 FN_DEF@[0; 51) 2 FN_DEF@0..51
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 51) 11 BLOCK_EXPR@9..51
12 BLOCK@[9; 51) 12 BLOCK@9..51
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 18) 15 EXPR_STMT@15..18
16 BLOCK_EXPR@[15; 17) 16 BLOCK_EXPR@15..17
17 BLOCK@[15; 17) 17 BLOCK@15..17
18 L_CURLY@[15; 16) "{" 18 L_CURLY@15..16 "{"
19 R_CURLY@[16; 17) "}" 19 R_CURLY@16..17 "}"
20 SEMICOLON@[17; 18) ";" 20 SEMICOLON@17..18 ";"
21 WHITESPACE@[18; 23) "\n " 21 WHITESPACE@18..23 "\n "
22 EXPR_STMT@[23; 33) 22 EXPR_STMT@23..33
23 BLOCK_EXPR@[23; 32) 23 BLOCK_EXPR@23..32
24 UNSAFE_KW@[23; 29) "unsafe" 24 UNSAFE_KW@23..29 "unsafe"
25 WHITESPACE@[29; 30) " " 25 WHITESPACE@29..30 " "
26 BLOCK@[30; 32) 26 BLOCK@30..32
27 L_CURLY@[30; 31) "{" 27 L_CURLY@30..31 "{"
28 R_CURLY@[31; 32) "}" 28 R_CURLY@31..32 "}"
29 SEMICOLON@[32; 33) ";" 29 SEMICOLON@32..33 ";"
30 WHITESPACE@[33; 38) "\n " 30 WHITESPACE@33..38 "\n "
31 EXPR_STMT@[38; 49) 31 EXPR_STMT@38..49
32 BLOCK_EXPR@[38; 48) 32 BLOCK_EXPR@38..48
33 LABEL@[38; 45) 33 LABEL@38..45
34 LIFETIME@[38; 44) "\'label" 34 LIFETIME@38..44 "\'label"
35 COLON@[44; 45) ":" 35 COLON@44..45 ":"
36 WHITESPACE@[45; 46) " " 36 WHITESPACE@45..46 " "
37 BLOCK@[46; 48) 37 BLOCK@46..48
38 L_CURLY@[46; 47) "{" 38 L_CURLY@46..47 "{"
39 R_CURLY@[47; 48) "}" 39 R_CURLY@47..48 "}"
40 SEMICOLON@[48; 49) ";" 40 SEMICOLON@48..49 ";"
41 WHITESPACE@[49; 50) "\n" 41 WHITESPACE@49..50 "\n"
42 R_CURLY@[50; 51) "}" 42 R_CURLY@50..51 "}"
43 WHITESPACE@[51; 52) "\n" 43 WHITESPACE@51..52 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast
index 157dfcdb8..73c314e07 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0106_lambda_expr.rast
@@ -1,140 +1,140 @@
1SOURCE_FILE@[0; 134) 1SOURCE_FILE@0..134
2 FN_DEF@[0; 133) 2 FN_DEF@0..133
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 133) 11 BLOCK_EXPR@9..133
12 BLOCK@[9; 133) 12 BLOCK@9..133
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 21) 15 EXPR_STMT@15..21
16 LAMBDA_EXPR@[15; 20) 16 LAMBDA_EXPR@15..20
17 PARAM_LIST@[15; 17) 17 PARAM_LIST@15..17
18 PIPE@[15; 16) "|" 18 PIPE@15..16 "|"
19 PIPE@[16; 17) "|" 19 PIPE@16..17 "|"
20 WHITESPACE@[17; 18) " " 20 WHITESPACE@17..18 " "
21 TUPLE_EXPR@[18; 20) 21 TUPLE_EXPR@18..20
22 L_PAREN@[18; 19) "(" 22 L_PAREN@18..19 "("
23 R_PAREN@[19; 20) ")" 23 R_PAREN@19..20 ")"
24 SEMICOLON@[20; 21) ";" 24 SEMICOLON@20..21 ";"
25 WHITESPACE@[21; 26) "\n " 25 WHITESPACE@21..26 "\n "
26 EXPR_STMT@[26; 43) 26 EXPR_STMT@26..43
27 LAMBDA_EXPR@[26; 42) 27 LAMBDA_EXPR@26..42
28 PARAM_LIST@[26; 28) 28 PARAM_LIST@26..28
29 PIPE@[26; 27) "|" 29 PIPE@26..27 "|"
30 PIPE@[27; 28) "|" 30 PIPE@27..28 "|"
31 WHITESPACE@[28; 29) " " 31 WHITESPACE@28..29 " "
32 RET_TYPE@[29; 35) 32 RET_TYPE@29..35
33 THIN_ARROW@[29; 31) "->" 33 THIN_ARROW@29..31 "->"
34 WHITESPACE@[31; 32) " " 34 WHITESPACE@31..32 " "
35 PATH_TYPE@[32; 35) 35 PATH_TYPE@32..35
36 PATH@[32; 35) 36 PATH@32..35
37 PATH_SEGMENT@[32; 35) 37 PATH_SEGMENT@32..35
38 NAME_REF@[32; 35) 38 NAME_REF@32..35
39 IDENT@[32; 35) "i32" 39 IDENT@32..35 "i32"
40 WHITESPACE@[35; 36) " " 40 WHITESPACE@35..36 " "
41 BLOCK_EXPR@[36; 42) 41 BLOCK_EXPR@36..42
42 BLOCK@[36; 42) 42 BLOCK@36..42
43 L_CURLY@[36; 37) "{" 43 L_CURLY@36..37 "{"
44 WHITESPACE@[37; 38) " " 44 WHITESPACE@37..38 " "
45 LITERAL@[38; 40) 45 LITERAL@38..40
46 INT_NUMBER@[38; 40) "92" 46 INT_NUMBER@38..40 "92"
47 WHITESPACE@[40; 41) " " 47 WHITESPACE@40..41 " "
48 R_CURLY@[41; 42) "}" 48 R_CURLY@41..42 "}"
49 SEMICOLON@[42; 43) ";" 49 SEMICOLON@42..43 ";"
50 WHITESPACE@[43; 48) "\n " 50 WHITESPACE@43..48 "\n "
51 EXPR_STMT@[48; 54) 51 EXPR_STMT@48..54
52 LAMBDA_EXPR@[48; 53) 52 LAMBDA_EXPR@48..53
53 PARAM_LIST@[48; 51) 53 PARAM_LIST@48..51
54 PIPE@[48; 49) "|" 54 PIPE@48..49 "|"
55 PARAM@[49; 50) 55 PARAM@49..50
56 BIND_PAT@[49; 50) 56 BIND_PAT@49..50
57 NAME@[49; 50) 57 NAME@49..50
58 IDENT@[49; 50) "x" 58 IDENT@49..50 "x"
59 PIPE@[50; 51) "|" 59 PIPE@50..51 "|"
60 WHITESPACE@[51; 52) " " 60 WHITESPACE@51..52 " "
61 PATH_EXPR@[52; 53) 61 PATH_EXPR@52..53
62 PATH@[52; 53) 62 PATH@52..53
63 PATH_SEGMENT@[52; 53) 63 PATH_SEGMENT@52..53
64 NAME_REF@[52; 53) 64 NAME_REF@52..53
65 IDENT@[52; 53) "x" 65 IDENT@52..53 "x"
66 SEMICOLON@[53; 54) ";" 66 SEMICOLON@53..54 ";"
67 WHITESPACE@[54; 59) "\n " 67 WHITESPACE@54..59 "\n "
68 EXPR_STMT@[59; 76) 68 EXPR_STMT@59..76
69 LAMBDA_EXPR@[59; 75) 69 LAMBDA_EXPR@59..75
70 MOVE_KW@[59; 63) "move" 70 MOVE_KW@59..63 "move"
71 WHITESPACE@[63; 64) " " 71 WHITESPACE@63..64 " "
72 PARAM_LIST@[64; 73) 72 PARAM_LIST@64..73
73 PIPE@[64; 65) "|" 73 PIPE@64..65 "|"
74 PARAM@[65; 71) 74 PARAM@65..71
75 BIND_PAT@[65; 66) 75 BIND_PAT@65..66
76 NAME@[65; 66) 76 NAME@65..66
77 IDENT@[65; 66) "x" 77 IDENT@65..66 "x"
78 COLON@[66; 67) ":" 78 COLON@66..67 ":"
79 WHITESPACE@[67; 68) " " 79 WHITESPACE@67..68 " "
80 PATH_TYPE@[68; 71) 80 PATH_TYPE@68..71
81 PATH@[68; 71) 81 PATH@68..71
82 PATH_SEGMENT@[68; 71) 82 PATH_SEGMENT@68..71
83 NAME_REF@[68; 71) 83 NAME_REF@68..71
84 IDENT@[68; 71) "i32" 84 IDENT@68..71 "i32"
85 COMMA@[71; 72) "," 85 COMMA@71..72 ","
86 PIPE@[72; 73) "|" 86 PIPE@72..73 "|"
87 WHITESPACE@[73; 74) " " 87 WHITESPACE@73..74 " "
88 PATH_EXPR@[74; 75) 88 PATH_EXPR@74..75
89 PATH@[74; 75) 89 PATH@74..75
90 PATH_SEGMENT@[74; 75) 90 PATH_SEGMENT@74..75
91 NAME_REF@[74; 75) 91 NAME_REF@74..75
92 IDENT@[74; 75) "x" 92 IDENT@74..75 "x"
93 SEMICOLON@[75; 76) ";" 93 SEMICOLON@75..76 ";"
94 WHITESPACE@[76; 81) "\n " 94 WHITESPACE@76..81 "\n "
95 EXPR_STMT@[81; 93) 95 EXPR_STMT@81..93
96 LAMBDA_EXPR@[81; 92) 96 LAMBDA_EXPR@81..92
97 ASYNC_KW@[81; 86) "async" 97 ASYNC_KW@81..86 "async"
98 WHITESPACE@[86; 87) " " 98 WHITESPACE@86..87 " "
99 PARAM_LIST@[87; 89) 99 PARAM_LIST@87..89
100 PIPE@[87; 88) "|" 100 PIPE@87..88 "|"
101 PIPE@[88; 89) "|" 101 PIPE@88..89 "|"
102 WHITESPACE@[89; 90) " " 102 WHITESPACE@89..90 " "
103 BLOCK_EXPR@[90; 92) 103 BLOCK_EXPR@90..92
104 BLOCK@[90; 92) 104 BLOCK@90..92
105 L_CURLY@[90; 91) "{" 105 L_CURLY@90..91 "{"
106 R_CURLY@[91; 92) "}" 106 R_CURLY@91..92 "}"
107 SEMICOLON@[92; 93) ";" 107 SEMICOLON@92..93 ";"
108 WHITESPACE@[93; 98) "\n " 108 WHITESPACE@93..98 "\n "
109 EXPR_STMT@[98; 109) 109 EXPR_STMT@98..109
110 LAMBDA_EXPR@[98; 108) 110 LAMBDA_EXPR@98..108
111 MOVE_KW@[98; 102) "move" 111 MOVE_KW@98..102 "move"
112 WHITESPACE@[102; 103) " " 112 WHITESPACE@102..103 " "
113 PARAM_LIST@[103; 105) 113 PARAM_LIST@103..105
114 PIPE@[103; 104) "|" 114 PIPE@103..104 "|"
115 PIPE@[104; 105) "|" 115 PIPE@104..105 "|"
116 WHITESPACE@[105; 106) " " 116 WHITESPACE@105..106 " "
117 BLOCK_EXPR@[106; 108) 117 BLOCK_EXPR@106..108
118 BLOCK@[106; 108) 118 BLOCK@106..108
119 L_CURLY@[106; 107) "{" 119 L_CURLY@106..107 "{"
120 R_CURLY@[107; 108) "}" 120 R_CURLY@107..108 "}"
121 SEMICOLON@[108; 109) ";" 121 SEMICOLON@108..109 ";"
122 WHITESPACE@[109; 114) "\n " 122 WHITESPACE@109..114 "\n "
123 EXPR_STMT@[114; 131) 123 EXPR_STMT@114..131
124 LAMBDA_EXPR@[114; 130) 124 LAMBDA_EXPR@114..130
125 ASYNC_KW@[114; 119) "async" 125 ASYNC_KW@114..119 "async"
126 WHITESPACE@[119; 120) " " 126 WHITESPACE@119..120 " "
127 MOVE_KW@[120; 124) "move" 127 MOVE_KW@120..124 "move"
128 WHITESPACE@[124; 125) " " 128 WHITESPACE@124..125 " "
129 PARAM_LIST@[125; 127) 129 PARAM_LIST@125..127
130 PIPE@[125; 126) "|" 130 PIPE@125..126 "|"
131 PIPE@[126; 127) "|" 131 PIPE@126..127 "|"
132 WHITESPACE@[127; 128) " " 132 WHITESPACE@127..128 " "
133 BLOCK_EXPR@[128; 130) 133 BLOCK_EXPR@128..130
134 BLOCK@[128; 130) 134 BLOCK@128..130
135 L_CURLY@[128; 129) "{" 135 L_CURLY@128..129 "{"
136 R_CURLY@[129; 130) "}" 136 R_CURLY@129..130 "}"
137 SEMICOLON@[130; 131) ";" 137 SEMICOLON@130..131 ";"
138 WHITESPACE@[131; 132) "\n" 138 WHITESPACE@131..132 "\n"
139 R_CURLY@[132; 133) "}" 139 R_CURLY@132..133 "}"
140 WHITESPACE@[133; 134) "\n" 140 WHITESPACE@133..134 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast
index cc813038c..5392b1a74 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0107_method_call_expr.rast
@@ -1,63 +1,63 @@
1SOURCE_FILE@[0; 49) 1SOURCE_FILE@0..49
2 FN_DEF@[0; 48) 2 FN_DEF@0..48
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 48) 11 BLOCK_EXPR@9..48
12 BLOCK@[9; 48) 12 BLOCK@9..48
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 23) 15 EXPR_STMT@15..23
16 METHOD_CALL_EXPR@[15; 22) 16 METHOD_CALL_EXPR@15..22
17 PATH_EXPR@[15; 16) 17 PATH_EXPR@15..16
18 PATH@[15; 16) 18 PATH@15..16
19 PATH_SEGMENT@[15; 16) 19 PATH_SEGMENT@15..16
20 NAME_REF@[15; 16) 20 NAME_REF@15..16
21 IDENT@[15; 16) "x" 21 IDENT@15..16 "x"
22 DOT@[16; 17) "." 22 DOT@16..17 "."
23 NAME_REF@[17; 20) 23 NAME_REF@17..20
24 IDENT@[17; 20) "foo" 24 IDENT@17..20 "foo"
25 ARG_LIST@[20; 22) 25 ARG_LIST@20..22
26 L_PAREN@[20; 21) "(" 26 L_PAREN@20..21 "("
27 R_PAREN@[21; 22) ")" 27 R_PAREN@21..22 ")"
28 SEMICOLON@[22; 23) ";" 28 SEMICOLON@22..23 ";"
29 WHITESPACE@[23; 28) "\n " 29 WHITESPACE@23..28 "\n "
30 EXPR_STMT@[28; 46) 30 EXPR_STMT@28..46
31 METHOD_CALL_EXPR@[28; 45) 31 METHOD_CALL_EXPR@28..45
32 PATH_EXPR@[28; 29) 32 PATH_EXPR@28..29
33 PATH@[28; 29) 33 PATH@28..29
34 PATH_SEGMENT@[28; 29) 34 PATH_SEGMENT@28..29
35 NAME_REF@[28; 29) 35 NAME_REF@28..29
36 IDENT@[28; 29) "y" 36 IDENT@28..29 "y"
37 DOT@[29; 30) "." 37 DOT@29..30 "."
38 NAME_REF@[30; 33) 38 NAME_REF@30..33
39 IDENT@[30; 33) "bar" 39 IDENT@30..33 "bar"
40 TYPE_ARG_LIST@[33; 38) 40 TYPE_ARG_LIST@33..38
41 COLON2@[33; 35) "::" 41 COLON2@33..35 "::"
42 L_ANGLE@[35; 36) "<" 42 L_ANGLE@35..36 "<"
43 TYPE_ARG@[36; 37) 43 TYPE_ARG@36..37
44 PATH_TYPE@[36; 37) 44 PATH_TYPE@36..37
45 PATH@[36; 37) 45 PATH@36..37
46 PATH_SEGMENT@[36; 37) 46 PATH_SEGMENT@36..37
47 NAME_REF@[36; 37) 47 NAME_REF@36..37
48 IDENT@[36; 37) "T" 48 IDENT@36..37 "T"
49 R_ANGLE@[37; 38) ">" 49 R_ANGLE@37..38 ">"
50 ARG_LIST@[38; 45) 50 ARG_LIST@38..45
51 L_PAREN@[38; 39) "(" 51 L_PAREN@38..39 "("
52 LITERAL@[39; 40) 52 LITERAL@39..40
53 INT_NUMBER@[39; 40) "1" 53 INT_NUMBER@39..40 "1"
54 COMMA@[40; 41) "," 54 COMMA@40..41 ","
55 WHITESPACE@[41; 42) " " 55 WHITESPACE@41..42 " "
56 LITERAL@[42; 43) 56 LITERAL@42..43
57 INT_NUMBER@[42; 43) "2" 57 INT_NUMBER@42..43 "2"
58 COMMA@[43; 44) "," 58 COMMA@43..44 ","
59 R_PAREN@[44; 45) ")" 59 R_PAREN@44..45 ")"
60 SEMICOLON@[45; 46) ";" 60 SEMICOLON@45..46 ";"
61 WHITESPACE@[46; 47) "\n" 61 WHITESPACE@46..47 "\n"
62 R_CURLY@[47; 48) "}" 62 R_CURLY@47..48 "}"
63 WHITESPACE@[48; 49) "\n" 63 WHITESPACE@48..49 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast
index 27c3f398e..54f18adac 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0108_tuple_expr.rast
@@ -1,39 +1,39 @@
1SOURCE_FILE@[0; 40) 1SOURCE_FILE@0..40
2 FN_DEF@[0; 39) 2 FN_DEF@0..39
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 39) 11 BLOCK_EXPR@9..39
12 BLOCK@[9; 39) 12 BLOCK@9..39
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 18) 15 EXPR_STMT@15..18
16 TUPLE_EXPR@[15; 17) 16 TUPLE_EXPR@15..17
17 L_PAREN@[15; 16) "(" 17 L_PAREN@15..16 "("
18 R_PAREN@[16; 17) ")" 18 R_PAREN@16..17 ")"
19 SEMICOLON@[17; 18) ";" 19 SEMICOLON@17..18 ";"
20 WHITESPACE@[18; 23) "\n " 20 WHITESPACE@18..23 "\n "
21 EXPR_STMT@[23; 27) 21 EXPR_STMT@23..27
22 PAREN_EXPR@[23; 26) 22 PAREN_EXPR@23..26
23 L_PAREN@[23; 24) "(" 23 L_PAREN@23..24 "("
24 LITERAL@[24; 25) 24 LITERAL@24..25
25 INT_NUMBER@[24; 25) "1" 25 INT_NUMBER@24..25 "1"
26 R_PAREN@[25; 26) ")" 26 R_PAREN@25..26 ")"
27 SEMICOLON@[26; 27) ";" 27 SEMICOLON@26..27 ";"
28 WHITESPACE@[27; 32) "\n " 28 WHITESPACE@27..32 "\n "
29 EXPR_STMT@[32; 37) 29 EXPR_STMT@32..37
30 TUPLE_EXPR@[32; 36) 30 TUPLE_EXPR@32..36
31 L_PAREN@[32; 33) "(" 31 L_PAREN@32..33 "("
32 LITERAL@[33; 34) 32 LITERAL@33..34
33 INT_NUMBER@[33; 34) "1" 33 INT_NUMBER@33..34 "1"
34 COMMA@[34; 35) "," 34 COMMA@34..35 ","
35 R_PAREN@[35; 36) ")" 35 R_PAREN@35..36 ")"
36 SEMICOLON@[36; 37) ";" 36 SEMICOLON@36..37 ";"
37 WHITESPACE@[37; 38) "\n" 37 WHITESPACE@37..38 "\n"
38 R_CURLY@[38; 39) "}" 38 R_CURLY@38..39 "}"
39 WHITESPACE@[39; 40) "\n" 39 WHITESPACE@39..40 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast
index 3376a90cb..6c9e45684 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0109_label.rast
@@ -1,68 +1,68 @@
1SOURCE_FILE@[0; 74) 1SOURCE_FILE@0..74
2 FN_DEF@[0; 73) 2 FN_DEF@0..73
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 73) 11 BLOCK_EXPR@9..73
12 BLOCK@[9; 73) 12 BLOCK@9..73
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 26) 15 EXPR_STMT@15..26
16 LOOP_EXPR@[15; 26) 16 LOOP_EXPR@15..26
17 LABEL@[15; 18) 17 LABEL@15..18
18 LIFETIME@[15; 17) "\'a" 18 LIFETIME@15..17 "\'a"
19 COLON@[17; 18) ":" 19 COLON@17..18 ":"
20 WHITESPACE@[18; 19) " " 20 WHITESPACE@18..19 " "
21 LOOP_KW@[19; 23) "loop" 21 LOOP_KW@19..23 "loop"
22 WHITESPACE@[23; 24) " " 22 WHITESPACE@23..24 " "
23 BLOCK_EXPR@[24; 26) 23 BLOCK_EXPR@24..26
24 BLOCK@[24; 26) 24 BLOCK@24..26
25 L_CURLY@[24; 25) "{" 25 L_CURLY@24..25 "{"
26 R_CURLY@[25; 26) "}" 26 R_CURLY@25..26 "}"
27 WHITESPACE@[26; 31) "\n " 27 WHITESPACE@26..31 "\n "
28 EXPR_STMT@[31; 48) 28 EXPR_STMT@31..48
29 WHILE_EXPR@[31; 48) 29 WHILE_EXPR@31..48
30 LABEL@[31; 34) 30 LABEL@31..34
31 LIFETIME@[31; 33) "\'b" 31 LIFETIME@31..33 "\'b"
32 COLON@[33; 34) ":" 32 COLON@33..34 ":"
33 WHITESPACE@[34; 35) " " 33 WHITESPACE@34..35 " "
34 WHILE_KW@[35; 40) "while" 34 WHILE_KW@35..40 "while"
35 WHITESPACE@[40; 41) " " 35 WHITESPACE@40..41 " "
36 CONDITION@[41; 45) 36 CONDITION@41..45
37 LITERAL@[41; 45) 37 LITERAL@41..45
38 TRUE_KW@[41; 45) "true" 38 TRUE_KW@41..45 "true"
39 WHITESPACE@[45; 46) " " 39 WHITESPACE@45..46 " "
40 BLOCK_EXPR@[46; 48) 40 BLOCK_EXPR@46..48
41 BLOCK@[46; 48) 41 BLOCK@46..48
42 L_CURLY@[46; 47) "{" 42 L_CURLY@46..47 "{"
43 R_CURLY@[47; 48) "}" 43 R_CURLY@47..48 "}"
44 WHITESPACE@[48; 53) "\n " 44 WHITESPACE@48..53 "\n "
45 FOR_EXPR@[53; 71) 45 FOR_EXPR@53..71
46 LABEL@[53; 56) 46 LABEL@53..56
47 LIFETIME@[53; 55) "\'c" 47 LIFETIME@53..55 "\'c"
48 COLON@[55; 56) ":" 48 COLON@55..56 ":"
49 WHITESPACE@[56; 57) " " 49 WHITESPACE@56..57 " "
50 FOR_KW@[57; 60) "for" 50 FOR_KW@57..60 "for"
51 WHITESPACE@[60; 61) " " 51 WHITESPACE@60..61 " "
52 BIND_PAT@[61; 62) 52 BIND_PAT@61..62
53 NAME@[61; 62) 53 NAME@61..62
54 IDENT@[61; 62) "x" 54 IDENT@61..62 "x"
55 WHITESPACE@[62; 63) " " 55 WHITESPACE@62..63 " "
56 IN_KW@[63; 65) "in" 56 IN_KW@63..65 "in"
57 WHITESPACE@[65; 66) " " 57 WHITESPACE@65..66 " "
58 TUPLE_EXPR@[66; 68) 58 TUPLE_EXPR@66..68
59 L_PAREN@[66; 67) "(" 59 L_PAREN@66..67 "("
60 R_PAREN@[67; 68) ")" 60 R_PAREN@67..68 ")"
61 WHITESPACE@[68; 69) " " 61 WHITESPACE@68..69 " "
62 BLOCK_EXPR@[69; 71) 62 BLOCK_EXPR@69..71
63 BLOCK@[69; 71) 63 BLOCK@69..71
64 L_CURLY@[69; 70) "{" 64 L_CURLY@69..70 "{"
65 R_CURLY@[70; 71) "}" 65 R_CURLY@70..71 "}"
66 WHITESPACE@[71; 72) "\n" 66 WHITESPACE@71..72 "\n"
67 R_CURLY@[72; 73) "}" 67 R_CURLY@72..73 "}"
68 WHITESPACE@[73; 74) "\n" 68 WHITESPACE@73..74 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0110_use_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0110_use_path.rast
index d4f5737d5..015a7a7d2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0110_use_path.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0110_use_path.rast
@@ -1,38 +1,38 @@
1SOURCE_FILE@[0; 154) 1SOURCE_FILE@0..154
2 USE_ITEM@[0; 17) 2 USE_ITEM@0..17
3 USE_KW@[0; 3) "use" 3 USE_KW@0..3 "use"
4 WHITESPACE@[3; 4) " " 4 WHITESPACE@3..4 " "
5 USE_TREE@[4; 16) 5 USE_TREE@4..16
6 PATH@[4; 16) 6 PATH@4..16
7 PATH_SEGMENT@[4; 16) 7 PATH_SEGMENT@4..16
8 COLON2@[4; 6) "::" 8 COLON2@4..6 "::"
9 NAME_REF@[6; 16) 9 NAME_REF@6..16
10 IDENT@[6; 16) "crate_name" 10 IDENT@6..16 "crate_name"
11 SEMICOLON@[16; 17) ";" 11 SEMICOLON@16..17 ";"
12 WHITESPACE@[17; 18) " " 12 WHITESPACE@17..18 " "
13 COMMENT@[18; 45) "// Rust 2018 - All fl ..." 13 COMMENT@18..45 "// Rust 2018 - All fl ..."
14 WHITESPACE@[45; 46) "\n" 14 WHITESPACE@45..46 "\n"
15 USE_ITEM@[46; 61) 15 USE_ITEM@46..61
16 USE_KW@[46; 49) "use" 16 USE_KW@46..49 "use"
17 WHITESPACE@[49; 50) " " 17 WHITESPACE@49..50 " "
18 USE_TREE@[50; 60) 18 USE_TREE@50..60
19 PATH@[50; 60) 19 PATH@50..60
20 PATH_SEGMENT@[50; 60) 20 PATH_SEGMENT@50..60
21 NAME_REF@[50; 60) 21 NAME_REF@50..60
22 IDENT@[50; 60) "crate_name" 22 IDENT@50..60 "crate_name"
23 SEMICOLON@[60; 61) ";" 23 SEMICOLON@60..61 ";"
24 WHITESPACE@[61; 62) " " 24 WHITESPACE@61..62 " "
25 COMMENT@[62; 91) "// Rust 2018 - Anchor ..." 25 COMMENT@62..91 "// Rust 2018 - Anchor ..."
26 WHITESPACE@[91; 92) "\n" 26 WHITESPACE@91..92 "\n"
27 USE_ITEM@[92; 124) 27 USE_ITEM@92..124
28 USE_KW@[92; 95) "use" 28 USE_KW@92..95 "use"
29 WHITESPACE@[95; 96) " " 29 WHITESPACE@95..96 " "
30 USE_TREE@[96; 123) 30 USE_TREE@96..123
31 PATH@[96; 123) 31 PATH@96..123
32 PATH_SEGMENT@[96; 123) 32 PATH_SEGMENT@96..123
33 NAME_REF@[96; 123) 33 NAME_REF@96..123
34 IDENT@[96; 123) "item_in_scope_or_crat ..." 34 IDENT@96..123 "item_in_scope_or_crat ..."
35 SEMICOLON@[123; 124) ";" 35 SEMICOLON@123..124 ";"
36 WHITESPACE@[124; 125) " " 36 WHITESPACE@124..125 " "
37 COMMENT@[125; 153) "// Rust 2018 - Unifor ..." 37 COMMENT@125..153 "// Rust 2018 - Unifor ..."
38 WHITESPACE@[153; 154) "\n" 38 WHITESPACE@153..154 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast
index 88e72d057..a1c5475e7 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0111_tuple_pat.rast
@@ -1,90 +1,90 @@
1SOURCE_FILE@[0; 94) 1SOURCE_FILE@0..94
2 FN_DEF@[0; 93) 2 FN_DEF@0..93
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 93) 11 BLOCK_EXPR@10..93
12 BLOCK@[10; 93) 12 BLOCK@10..93
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 LET_STMT@[16; 36) 15 LET_STMT@16..36
16 LET_KW@[16; 19) "let" 16 LET_KW@16..19 "let"
17 WHITESPACE@[19; 20) " " 17 WHITESPACE@19..20 " "
18 TUPLE_PAT@[20; 30) 18 TUPLE_PAT@20..30
19 L_PAREN@[20; 21) "(" 19 L_PAREN@20..21 "("
20 BIND_PAT@[21; 22) 20 BIND_PAT@21..22
21 NAME@[21; 22) 21 NAME@21..22
22 IDENT@[21; 22) "a" 22 IDENT@21..22 "a"
23 COMMA@[22; 23) "," 23 COMMA@22..23 ","
24 WHITESPACE@[23; 24) " " 24 WHITESPACE@23..24 " "
25 BIND_PAT@[24; 25) 25 BIND_PAT@24..25
26 NAME@[24; 25) 26 NAME@24..25
27 IDENT@[24; 25) "b" 27 IDENT@24..25 "b"
28 COMMA@[25; 26) "," 28 COMMA@25..26 ","
29 WHITESPACE@[26; 27) " " 29 WHITESPACE@26..27 " "
30 DOT_DOT_PAT@[27; 29) 30 DOT_DOT_PAT@27..29
31 DOT2@[27; 29) ".." 31 DOT2@27..29 ".."
32 R_PAREN@[29; 30) ")" 32 R_PAREN@29..30 ")"
33 WHITESPACE@[30; 31) " " 33 WHITESPACE@30..31 " "
34 EQ@[31; 32) "=" 34 EQ@31..32 "="
35 WHITESPACE@[32; 33) " " 35 WHITESPACE@32..33 " "
36 TUPLE_EXPR@[33; 35) 36 TUPLE_EXPR@33..35
37 L_PAREN@[33; 34) "(" 37 L_PAREN@33..34 "("
38 R_PAREN@[34; 35) ")" 38 R_PAREN@34..35 ")"
39 SEMICOLON@[35; 36) ";" 39 SEMICOLON@35..36 ";"
40 WHITESPACE@[36; 41) "\n " 40 WHITESPACE@36..41 "\n "
41 LET_STMT@[41; 55) 41 LET_STMT@41..55
42 LET_KW@[41; 44) "let" 42 LET_KW@41..44 "let"
43 WHITESPACE@[44; 45) " " 43 WHITESPACE@44..45 " "
44 TUPLE_PAT@[45; 49) 44 TUPLE_PAT@45..49
45 L_PAREN@[45; 46) "(" 45 L_PAREN@45..46 "("
46 BIND_PAT@[46; 47) 46 BIND_PAT@46..47
47 NAME@[46; 47) 47 NAME@46..47
48 IDENT@[46; 47) "a" 48 IDENT@46..47 "a"
49 COMMA@[47; 48) "," 49 COMMA@47..48 ","
50 R_PAREN@[48; 49) ")" 50 R_PAREN@48..49 ")"
51 WHITESPACE@[49; 50) " " 51 WHITESPACE@49..50 " "
52 EQ@[50; 51) "=" 52 EQ@50..51 "="
53 WHITESPACE@[51; 52) " " 53 WHITESPACE@51..52 " "
54 TUPLE_EXPR@[52; 54) 54 TUPLE_EXPR@52..54
55 L_PAREN@[52; 53) "(" 55 L_PAREN@52..53 "("
56 R_PAREN@[53; 54) ")" 56 R_PAREN@53..54 ")"
57 SEMICOLON@[54; 55) ";" 57 SEMICOLON@54..55 ";"
58 WHITESPACE@[55; 60) "\n " 58 WHITESPACE@55..60 "\n "
59 LET_STMT@[60; 74) 59 LET_STMT@60..74
60 LET_KW@[60; 63) "let" 60 LET_KW@60..63 "let"
61 WHITESPACE@[63; 64) " " 61 WHITESPACE@63..64 " "
62 TUPLE_PAT@[64; 68) 62 TUPLE_PAT@64..68
63 L_PAREN@[64; 65) "(" 63 L_PAREN@64..65 "("
64 DOT_DOT_PAT@[65; 67) 64 DOT_DOT_PAT@65..67
65 DOT2@[65; 67) ".." 65 DOT2@65..67 ".."
66 R_PAREN@[67; 68) ")" 66 R_PAREN@67..68 ")"
67 WHITESPACE@[68; 69) " " 67 WHITESPACE@68..69 " "
68 EQ@[69; 70) "=" 68 EQ@69..70 "="
69 WHITESPACE@[70; 71) " " 69 WHITESPACE@70..71 " "
70 TUPLE_EXPR@[71; 73) 70 TUPLE_EXPR@71..73
71 L_PAREN@[71; 72) "(" 71 L_PAREN@71..72 "("
72 R_PAREN@[72; 73) ")" 72 R_PAREN@72..73 ")"
73 SEMICOLON@[73; 74) ";" 73 SEMICOLON@73..74 ";"
74 WHITESPACE@[74; 79) "\n " 74 WHITESPACE@74..79 "\n "
75 LET_STMT@[79; 91) 75 LET_STMT@79..91
76 LET_KW@[79; 82) "let" 76 LET_KW@79..82 "let"
77 WHITESPACE@[82; 83) " " 77 WHITESPACE@82..83 " "
78 TUPLE_PAT@[83; 85) 78 TUPLE_PAT@83..85
79 L_PAREN@[83; 84) "(" 79 L_PAREN@83..84 "("
80 R_PAREN@[84; 85) ")" 80 R_PAREN@84..85 ")"
81 WHITESPACE@[85; 86) " " 81 WHITESPACE@85..86 " "
82 EQ@[86; 87) "=" 82 EQ@86..87 "="
83 WHITESPACE@[87; 88) " " 83 WHITESPACE@87..88 " "
84 TUPLE_EXPR@[88; 90) 84 TUPLE_EXPR@88..90
85 L_PAREN@[88; 89) "(" 85 L_PAREN@88..89 "("
86 R_PAREN@[89; 90) ")" 86 R_PAREN@89..90 ")"
87 SEMICOLON@[90; 91) ";" 87 SEMICOLON@90..91 ";"
88 WHITESPACE@[91; 92) "\n" 88 WHITESPACE@91..92 "\n"
89 R_CURLY@[92; 93) "}" 89 R_CURLY@92..93 "}"
90 WHITESPACE@[93; 94) "\n" 90 WHITESPACE@93..94 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast
index 5e8f625dc..42a770a83 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0112_bind_pat.rast
@@ -1,128 +1,128 @@
1SOURCE_FILE@[0; 146) 1SOURCE_FILE@0..146
2 FN_DEF@[0; 145) 2 FN_DEF@0..145
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 145) 11 BLOCK_EXPR@10..145
12 BLOCK@[10; 145) 12 BLOCK@10..145
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 LET_STMT@[16; 27) 15 LET_STMT@16..27
16 LET_KW@[16; 19) "let" 16 LET_KW@16..19 "let"
17 WHITESPACE@[19; 20) " " 17 WHITESPACE@19..20 " "
18 BIND_PAT@[20; 21) 18 BIND_PAT@20..21
19 NAME@[20; 21) 19 NAME@20..21
20 IDENT@[20; 21) "a" 20 IDENT@20..21 "a"
21 WHITESPACE@[21; 22) " " 21 WHITESPACE@21..22 " "
22 EQ@[22; 23) "=" 22 EQ@22..23 "="
23 WHITESPACE@[23; 24) " " 23 WHITESPACE@23..24 " "
24 TUPLE_EXPR@[24; 26) 24 TUPLE_EXPR@24..26
25 L_PAREN@[24; 25) "(" 25 L_PAREN@24..25 "("
26 R_PAREN@[25; 26) ")" 26 R_PAREN@25..26 ")"
27 SEMICOLON@[26; 27) ";" 27 SEMICOLON@26..27 ";"
28 WHITESPACE@[27; 32) "\n " 28 WHITESPACE@27..32 "\n "
29 LET_STMT@[32; 47) 29 LET_STMT@32..47
30 LET_KW@[32; 35) "let" 30 LET_KW@32..35 "let"
31 WHITESPACE@[35; 36) " " 31 WHITESPACE@35..36 " "
32 BIND_PAT@[36; 41) 32 BIND_PAT@36..41
33 MUT_KW@[36; 39) "mut" 33 MUT_KW@36..39 "mut"
34 WHITESPACE@[39; 40) " " 34 WHITESPACE@39..40 " "
35 NAME@[40; 41) 35 NAME@40..41
36 IDENT@[40; 41) "b" 36 IDENT@40..41 "b"
37 WHITESPACE@[41; 42) " " 37 WHITESPACE@41..42 " "
38 EQ@[42; 43) "=" 38 EQ@42..43 "="
39 WHITESPACE@[43; 44) " " 39 WHITESPACE@43..44 " "
40 TUPLE_EXPR@[44; 46) 40 TUPLE_EXPR@44..46
41 L_PAREN@[44; 45) "(" 41 L_PAREN@44..45 "("
42 R_PAREN@[45; 46) ")" 42 R_PAREN@45..46 ")"
43 SEMICOLON@[46; 47) ";" 43 SEMICOLON@46..47 ";"
44 WHITESPACE@[47; 52) "\n " 44 WHITESPACE@47..52 "\n "
45 LET_STMT@[52; 67) 45 LET_STMT@52..67
46 LET_KW@[52; 55) "let" 46 LET_KW@52..55 "let"
47 WHITESPACE@[55; 56) " " 47 WHITESPACE@55..56 " "
48 BIND_PAT@[56; 61) 48 BIND_PAT@56..61
49 REF_KW@[56; 59) "ref" 49 REF_KW@56..59 "ref"
50 WHITESPACE@[59; 60) " " 50 WHITESPACE@59..60 " "
51 NAME@[60; 61) 51 NAME@60..61
52 IDENT@[60; 61) "c" 52 IDENT@60..61 "c"
53 WHITESPACE@[61; 62) " " 53 WHITESPACE@61..62 " "
54 EQ@[62; 63) "=" 54 EQ@62..63 "="
55 WHITESPACE@[63; 64) " " 55 WHITESPACE@63..64 " "
56 TUPLE_EXPR@[64; 66) 56 TUPLE_EXPR@64..66
57 L_PAREN@[64; 65) "(" 57 L_PAREN@64..65 "("
58 R_PAREN@[65; 66) ")" 58 R_PAREN@65..66 ")"
59 SEMICOLON@[66; 67) ";" 59 SEMICOLON@66..67 ";"
60 WHITESPACE@[67; 72) "\n " 60 WHITESPACE@67..72 "\n "
61 LET_STMT@[72; 91) 61 LET_STMT@72..91
62 LET_KW@[72; 75) "let" 62 LET_KW@72..75 "let"
63 WHITESPACE@[75; 76) " " 63 WHITESPACE@75..76 " "
64 BIND_PAT@[76; 85) 64 BIND_PAT@76..85
65 REF_KW@[76; 79) "ref" 65 REF_KW@76..79 "ref"
66 WHITESPACE@[79; 80) " " 66 WHITESPACE@79..80 " "
67 MUT_KW@[80; 83) "mut" 67 MUT_KW@80..83 "mut"
68 WHITESPACE@[83; 84) " " 68 WHITESPACE@83..84 " "
69 NAME@[84; 85) 69 NAME@84..85
70 IDENT@[84; 85) "d" 70 IDENT@84..85 "d"
71 WHITESPACE@[85; 86) " " 71 WHITESPACE@85..86 " "
72 EQ@[86; 87) "=" 72 EQ@86..87 "="
73 WHITESPACE@[87; 88) " " 73 WHITESPACE@87..88 " "
74 TUPLE_EXPR@[88; 90) 74 TUPLE_EXPR@88..90
75 L_PAREN@[88; 89) "(" 75 L_PAREN@88..89 "("
76 R_PAREN@[89; 90) ")" 76 R_PAREN@89..90 ")"
77 SEMICOLON@[90; 91) ";" 77 SEMICOLON@90..91 ";"
78 WHITESPACE@[91; 96) "\n " 78 WHITESPACE@91..96 "\n "
79 LET_STMT@[96; 111) 79 LET_STMT@96..111
80 LET_KW@[96; 99) "let" 80 LET_KW@96..99 "let"
81 WHITESPACE@[99; 100) " " 81 WHITESPACE@99..100 " "
82 BIND_PAT@[100; 105) 82 BIND_PAT@100..105
83 NAME@[100; 101) 83 NAME@100..101
84 IDENT@[100; 101) "e" 84 IDENT@100..101 "e"
85 WHITESPACE@[101; 102) " " 85 WHITESPACE@101..102 " "
86 AT@[102; 103) "@" 86 AT@102..103 "@"
87 WHITESPACE@[103; 104) " " 87 WHITESPACE@103..104 " "
88 PLACEHOLDER_PAT@[104; 105) 88 PLACEHOLDER_PAT@104..105
89 UNDERSCORE@[104; 105) "_" 89 UNDERSCORE@104..105 "_"
90 WHITESPACE@[105; 106) " " 90 WHITESPACE@105..106 " "
91 EQ@[106; 107) "=" 91 EQ@106..107 "="
92 WHITESPACE@[107; 108) " " 92 WHITESPACE@107..108 " "
93 TUPLE_EXPR@[108; 110) 93 TUPLE_EXPR@108..110
94 L_PAREN@[108; 109) "(" 94 L_PAREN@108..109 "("
95 R_PAREN@[109; 110) ")" 95 R_PAREN@109..110 ")"
96 SEMICOLON@[110; 111) ";" 96 SEMICOLON@110..111 ";"
97 WHITESPACE@[111; 116) "\n " 97 WHITESPACE@111..116 "\n "
98 LET_STMT@[116; 143) 98 LET_STMT@116..143
99 LET_KW@[116; 119) "let" 99 LET_KW@116..119 "let"
100 WHITESPACE@[119; 120) " " 100 WHITESPACE@119..120 " "
101 BIND_PAT@[120; 137) 101 BIND_PAT@120..137
102 REF_KW@[120; 123) "ref" 102 REF_KW@120..123 "ref"
103 WHITESPACE@[123; 124) " " 103 WHITESPACE@123..124 " "
104 MUT_KW@[124; 127) "mut" 104 MUT_KW@124..127 "mut"
105 WHITESPACE@[127; 128) " " 105 WHITESPACE@127..128 " "
106 NAME@[128; 129) 106 NAME@128..129
107 IDENT@[128; 129) "f" 107 IDENT@128..129 "f"
108 WHITESPACE@[129; 130) " " 108 WHITESPACE@129..130 " "
109 AT@[130; 131) "@" 109 AT@130..131 "@"
110 WHITESPACE@[131; 132) " " 110 WHITESPACE@131..132 " "
111 BIND_PAT@[132; 137) 111 BIND_PAT@132..137
112 NAME@[132; 133) 112 NAME@132..133
113 IDENT@[132; 133) "g" 113 IDENT@132..133 "g"
114 WHITESPACE@[133; 134) " " 114 WHITESPACE@133..134 " "
115 AT@[134; 135) "@" 115 AT@134..135 "@"
116 WHITESPACE@[135; 136) " " 116 WHITESPACE@135..136 " "
117 PLACEHOLDER_PAT@[136; 137) 117 PLACEHOLDER_PAT@136..137
118 UNDERSCORE@[136; 137) "_" 118 UNDERSCORE@136..137 "_"
119 WHITESPACE@[137; 138) " " 119 WHITESPACE@137..138 " "
120 EQ@[138; 139) "=" 120 EQ@138..139 "="
121 WHITESPACE@[139; 140) " " 121 WHITESPACE@139..140 " "
122 TUPLE_EXPR@[140; 142) 122 TUPLE_EXPR@140..142
123 L_PAREN@[140; 141) "(" 123 L_PAREN@140..141 "("
124 R_PAREN@[141; 142) ")" 124 R_PAREN@141..142 ")"
125 SEMICOLON@[142; 143) ";" 125 SEMICOLON@142..143 ";"
126 WHITESPACE@[143; 144) "\n" 126 WHITESPACE@143..144 "\n"
127 R_CURLY@[144; 145) "}" 127 R_CURLY@144..145 "}"
128 WHITESPACE@[145; 146) "\n" 128 WHITESPACE@145..146 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast
index f2f649410..5414c90b8 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0113_nocontentexpr.rast
@@ -1,57 +1,57 @@
1SOURCE_FILE@[0; 50) 1SOURCE_FILE@0..50
2 FN_DEF@[0; 49) 2 FN_DEF@0..49
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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_EXPR@[8; 49) 10 BLOCK_EXPR@8..49
11 BLOCK@[8; 49) 11 BLOCK@8..49
12 L_CURLY@[8; 9) "{" 12 L_CURLY@8..9 "{"
13 WHITESPACE@[9; 14) "\n " 13 WHITESPACE@9..14 "\n "
14 SEMICOLON@[14; 15) ";" 14 SEMICOLON@14..15 ";"
15 SEMICOLON@[15; 16) ";" 15 SEMICOLON@15..16 ";"
16 SEMICOLON@[16; 17) ";" 16 SEMICOLON@16..17 ";"
17 EXPR_STMT@[17; 29) 17 EXPR_STMT@17..29
18 CALL_EXPR@[17; 28) 18 CALL_EXPR@17..28
19 PATH_EXPR@[17; 26) 19 PATH_EXPR@17..26
20 PATH@[17; 26) 20 PATH@17..26
21 PATH_SEGMENT@[17; 26) 21 PATH_SEGMENT@17..26
22 NAME_REF@[17; 26) 22 NAME_REF@17..26
23 IDENT@[17; 26) "some_expr" 23 IDENT@17..26 "some_expr"
24 ARG_LIST@[26; 28) 24 ARG_LIST@26..28
25 L_PAREN@[26; 27) "(" 25 L_PAREN@26..27 "("
26 R_PAREN@[27; 28) ")" 26 R_PAREN@27..28 ")"
27 SEMICOLON@[28; 29) ";" 27 SEMICOLON@28..29 ";"
28 SEMICOLON@[29; 30) ";" 28 SEMICOLON@29..30 ";"
29 SEMICOLON@[30; 31) ";" 29 SEMICOLON@30..31 ";"
30 SEMICOLON@[31; 32) ";" 30 SEMICOLON@31..32 ";"
31 EXPR_STMT@[32; 38) 31 EXPR_STMT@32..38
32 BLOCK_EXPR@[32; 37) 32 BLOCK_EXPR@32..37
33 BLOCK@[32; 37) 33 BLOCK@32..37
34 L_CURLY@[32; 33) "{" 34 L_CURLY@32..33 "{"
35 SEMICOLON@[33; 34) ";" 35 SEMICOLON@33..34 ";"
36 SEMICOLON@[34; 35) ";" 36 SEMICOLON@34..35 ";"
37 SEMICOLON@[35; 36) ";" 37 SEMICOLON@35..36 ";"
38 R_CURLY@[36; 37) "}" 38 R_CURLY@36..37 "}"
39 SEMICOLON@[37; 38) ";" 39 SEMICOLON@37..38 ";"
40 SEMICOLON@[38; 39) ";" 40 SEMICOLON@38..39 ";"
41 SEMICOLON@[39; 40) ";" 41 SEMICOLON@39..40 ";"
42 SEMICOLON@[40; 41) ";" 42 SEMICOLON@40..41 ";"
43 CALL_EXPR@[41; 47) 43 CALL_EXPR@41..47
44 PATH_EXPR@[41; 43) 44 PATH_EXPR@41..43
45 PATH@[41; 43) 45 PATH@41..43
46 PATH_SEGMENT@[41; 43) 46 PATH_SEGMENT@41..43
47 NAME_REF@[41; 43) 47 NAME_REF@41..43
48 IDENT@[41; 43) "Ok" 48 IDENT@41..43 "Ok"
49 ARG_LIST@[43; 47) 49 ARG_LIST@43..47
50 L_PAREN@[43; 44) "(" 50 L_PAREN@43..44 "("
51 TUPLE_EXPR@[44; 46) 51 TUPLE_EXPR@44..46
52 L_PAREN@[44; 45) "(" 52 L_PAREN@44..45 "("
53 R_PAREN@[45; 46) ")" 53 R_PAREN@45..46 ")"
54 R_PAREN@[46; 47) ")" 54 R_PAREN@46..47 ")"
55 WHITESPACE@[47; 48) "\n" 55 WHITESPACE@47..48 "\n"
56 R_CURLY@[48; 49) "}" 56 R_CURLY@48..49 "}"
57 WHITESPACE@[49; 50) "\n" 57 WHITESPACE@49..50 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast b/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast
index 457c82e74..01d717d6b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0114_tuple_struct_where.rast
@@ -1,64 +1,64 @@
1SOURCE_FILE@[0; 53) 1SOURCE_FILE@0..53
2 STRUCT_DEF@[0; 33) 2 STRUCT_DEF@0..33
3 STRUCT_KW@[0; 6) "struct" 3 STRUCT_KW@0..6 "struct"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 NAME@[7; 11) 5 NAME@7..11
6 IDENT@[7; 11) "Test" 6 IDENT@7..11 "Test"
7 TYPE_PARAM_LIST@[11; 14) 7 TYPE_PARAM_LIST@11..14
8 L_ANGLE@[11; 12) "<" 8 L_ANGLE@11..12 "<"
9 TYPE_PARAM@[12; 13) 9 TYPE_PARAM@12..13
10 NAME@[12; 13) 10 NAME@12..13
11 IDENT@[12; 13) "T" 11 IDENT@12..13 "T"
12 R_ANGLE@[13; 14) ">" 12 R_ANGLE@13..14 ">"
13 TUPLE_FIELD_DEF_LIST@[14; 17) 13 TUPLE_FIELD_DEF_LIST@14..17
14 L_PAREN@[14; 15) "(" 14 L_PAREN@14..15 "("
15 TUPLE_FIELD_DEF@[15; 16) 15 TUPLE_FIELD_DEF@15..16
16 PATH_TYPE@[15; 16) 16 PATH_TYPE@15..16
17 PATH@[15; 16) 17 PATH@15..16
18 PATH_SEGMENT@[15; 16) 18 PATH_SEGMENT@15..16
19 NAME_REF@[15; 16) 19 NAME_REF@15..16
20 IDENT@[15; 16) "T" 20 IDENT@15..16 "T"
21 R_PAREN@[16; 17) ")" 21 R_PAREN@16..17 ")"
22 WHITESPACE@[17; 18) " " 22 WHITESPACE@17..18 " "
23 WHERE_CLAUSE@[18; 32) 23 WHERE_CLAUSE@18..32
24 WHERE_KW@[18; 23) "where" 24 WHERE_KW@18..23 "where"
25 WHITESPACE@[23; 24) " " 25 WHITESPACE@23..24 " "
26 WHERE_PRED@[24; 32) 26 WHERE_PRED@24..32
27 PATH_TYPE@[24; 25) 27 PATH_TYPE@24..25
28 PATH@[24; 25) 28 PATH@24..25
29 PATH_SEGMENT@[24; 25) 29 PATH_SEGMENT@24..25
30 NAME_REF@[24; 25) 30 NAME_REF@24..25
31 IDENT@[24; 25) "T" 31 IDENT@24..25 "T"
32 COLON@[25; 26) ":" 32 COLON@25..26 ":"
33 WHITESPACE@[26; 27) " " 33 WHITESPACE@26..27 " "
34 TYPE_BOUND_LIST@[27; 32) 34 TYPE_BOUND_LIST@27..32
35 TYPE_BOUND@[27; 32) 35 TYPE_BOUND@27..32
36 PATH_TYPE@[27; 32) 36 PATH_TYPE@27..32
37 PATH@[27; 32) 37 PATH@27..32
38 PATH_SEGMENT@[27; 32) 38 PATH_SEGMENT@27..32
39 NAME_REF@[27; 32) 39 NAME_REF@27..32
40 IDENT@[27; 32) "Clone" 40 IDENT@27..32 "Clone"
41 SEMICOLON@[32; 33) ";" 41 SEMICOLON@32..33 ";"
42 WHITESPACE@[33; 34) "\n" 42 WHITESPACE@33..34 "\n"
43 STRUCT_DEF@[34; 52) 43 STRUCT_DEF@34..52
44 STRUCT_KW@[34; 40) "struct" 44 STRUCT_KW@34..40 "struct"
45 WHITESPACE@[40; 41) " " 45 WHITESPACE@40..41 " "
46 NAME@[41; 45) 46 NAME@41..45
47 IDENT@[41; 45) "Test" 47 IDENT@41..45 "Test"
48 TYPE_PARAM_LIST@[45; 48) 48 TYPE_PARAM_LIST@45..48
49 L_ANGLE@[45; 46) "<" 49 L_ANGLE@45..46 "<"
50 TYPE_PARAM@[46; 47) 50 TYPE_PARAM@46..47
51 NAME@[46; 47) 51 NAME@46..47
52 IDENT@[46; 47) "T" 52 IDENT@46..47 "T"
53 R_ANGLE@[47; 48) ">" 53 R_ANGLE@47..48 ">"
54 TUPLE_FIELD_DEF_LIST@[48; 51) 54 TUPLE_FIELD_DEF_LIST@48..51
55 L_PAREN@[48; 49) "(" 55 L_PAREN@48..49 "("
56 TUPLE_FIELD_DEF@[49; 50) 56 TUPLE_FIELD_DEF@49..50
57 PATH_TYPE@[49; 50) 57 PATH_TYPE@49..50
58 PATH@[49; 50) 58 PATH@49..50
59 PATH_SEGMENT@[49; 50) 59 PATH_SEGMENT@49..50
60 NAME_REF@[49; 50) 60 NAME_REF@49..50
61 IDENT@[49; 50) "T" 61 IDENT@49..50 "T"
62 R_PAREN@[50; 51) ")" 62 R_PAREN@50..51 ")"
63 SEMICOLON@[51; 52) ";" 63 SEMICOLON@51..52 ";"
64 WHITESPACE@[52; 53) "\n" 64 WHITESPACE@52..53 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast b/crates/ra_syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast
index 0b1552a9d..3c0ef9005 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0115_tuple_field_attrs.rast
@@ -1,41 +1,41 @@
1SOURCE_FILE@[0; 60) 1SOURCE_FILE@0..60
2 STRUCT_DEF@[0; 59) 2 STRUCT_DEF@0..59
3 STRUCT_KW@[0; 6) "struct" 3 STRUCT_KW@0..6 "struct"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 NAME@[7; 8) 5 NAME@7..8
6 IDENT@[7; 8) "S" 6 IDENT@7..8 "S"
7 WHITESPACE@[8; 9) " " 7 WHITESPACE@8..9 " "
8 TUPLE_FIELD_DEF_LIST@[9; 58) 8 TUPLE_FIELD_DEF_LIST@9..58
9 L_PAREN@[9; 10) "(" 9 L_PAREN@9..10 "("
10 WHITESPACE@[10; 15) "\n " 10 WHITESPACE@10..15 "\n "
11 TUPLE_FIELD_DEF@[15; 55) 11 TUPLE_FIELD_DEF@15..55
12 ATTR@[15; 43) 12 ATTR@15..43
13 POUND@[15; 16) "#" 13 POUND@15..16 "#"
14 L_BRACK@[16; 17) "[" 14 L_BRACK@16..17 "["
15 PATH@[17; 22) 15 PATH@17..22
16 PATH_SEGMENT@[17; 22) 16 PATH_SEGMENT@17..22
17 NAME_REF@[17; 22) 17 NAME_REF@17..22
18 IDENT@[17; 22) "serde" 18 IDENT@17..22 "serde"
19 TOKEN_TREE@[22; 42) 19 TOKEN_TREE@22..42
20 L_PAREN@[22; 23) "(" 20 L_PAREN@22..23 "("
21 IDENT@[23; 27) "with" 21 IDENT@23..27 "with"
22 WHITESPACE@[27; 28) " " 22 WHITESPACE@27..28 " "
23 EQ@[28; 29) "=" 23 EQ@28..29 "="
24 WHITESPACE@[29; 30) " " 24 WHITESPACE@29..30 " "
25 STRING@[30; 41) "\"url_serde\"" 25 STRING@30..41 "\"url_serde\""
26 R_PAREN@[41; 42) ")" 26 R_PAREN@41..42 ")"
27 R_BRACK@[42; 43) "]" 27 R_BRACK@42..43 "]"
28 WHITESPACE@[43; 48) "\n " 28 WHITESPACE@43..48 "\n "
29 VISIBILITY@[48; 51) 29 VISIBILITY@48..51
30 PUB_KW@[48; 51) "pub" 30 PUB_KW@48..51 "pub"
31 WHITESPACE@[51; 52) " " 31 WHITESPACE@51..52 " "
32 PATH_TYPE@[52; 55) 32 PATH_TYPE@52..55
33 PATH@[52; 55) 33 PATH@52..55
34 PATH_SEGMENT@[52; 55) 34 PATH_SEGMENT@52..55
35 NAME_REF@[52; 55) 35 NAME_REF@52..55
36 IDENT@[52; 55) "Uri" 36 IDENT@52..55 "Uri"
37 COMMA@[55; 56) "," 37 COMMA@55..56 ","
38 WHITESPACE@[56; 57) "\n" 38 WHITESPACE@56..57 "\n"
39 R_PAREN@[57; 58) ")" 39 R_PAREN@57..58 ")"
40 SEMICOLON@[58; 59) ";" 40 SEMICOLON@58..59 ";"
41 WHITESPACE@[59; 60) "\n" 41 WHITESPACE@59..60 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0117_macro_call_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0117_macro_call_type.rast
index 4f9e80e2e..ddfcf974e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0117_macro_call_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0117_macro_call_type.rast
@@ -1,43 +1,43 @@
1SOURCE_FILE@[0; 41) 1SOURCE_FILE@0..41
2 TYPE_ALIAS_DEF@[0; 16) 2 TYPE_ALIAS_DEF@0..16
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "A" 6 IDENT@5..6 "A"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 EQ@[7; 8) "=" 8 EQ@7..8 "="
9 WHITESPACE@[8; 9) " " 9 WHITESPACE@8..9 " "
10 MACRO_CALL@[9; 15) 10 MACRO_CALL@9..15
11 PATH@[9; 12) 11 PATH@9..12
12 PATH_SEGMENT@[9; 12) 12 PATH_SEGMENT@9..12
13 NAME_REF@[9; 12) 13 NAME_REF@9..12
14 IDENT@[9; 12) "foo" 14 IDENT@9..12 "foo"
15 BANG@[12; 13) "!" 15 BANG@12..13 "!"
16 TOKEN_TREE@[13; 15) 16 TOKEN_TREE@13..15
17 L_PAREN@[13; 14) "(" 17 L_PAREN@13..14 "("
18 R_PAREN@[14; 15) ")" 18 R_PAREN@14..15 ")"
19 SEMICOLON@[15; 16) ";" 19 SEMICOLON@15..16 ";"
20 WHITESPACE@[16; 17) "\n" 20 WHITESPACE@16..17 "\n"
21 TYPE_ALIAS_DEF@[17; 40) 21 TYPE_ALIAS_DEF@17..40
22 TYPE_KW@[17; 21) "type" 22 TYPE_KW@17..21 "type"
23 WHITESPACE@[21; 22) " " 23 WHITESPACE@21..22 " "
24 NAME@[22; 23) 24 NAME@22..23
25 IDENT@[22; 23) "B" 25 IDENT@22..23 "B"
26 WHITESPACE@[23; 24) " " 26 WHITESPACE@23..24 " "
27 EQ@[24; 25) "=" 27 EQ@24..25 "="
28 WHITESPACE@[25; 26) " " 28 WHITESPACE@25..26 " "
29 MACRO_CALL@[26; 39) 29 MACRO_CALL@26..39
30 PATH@[26; 36) 30 PATH@26..36
31 PATH@[26; 31) 31 PATH@26..31
32 PATH_SEGMENT@[26; 31) 32 PATH_SEGMENT@26..31
33 CRATE_KW@[26; 31) "crate" 33 CRATE_KW@26..31 "crate"
34 COLON2@[31; 33) "::" 34 COLON2@31..33 "::"
35 PATH_SEGMENT@[33; 36) 35 PATH_SEGMENT@33..36
36 NAME_REF@[33; 36) 36 NAME_REF@33..36
37 IDENT@[33; 36) "foo" 37 IDENT@33..36 "foo"
38 BANG@[36; 37) "!" 38 BANG@36..37 "!"
39 TOKEN_TREE@[37; 39) 39 TOKEN_TREE@37..39
40 L_PAREN@[37; 38) "(" 40 L_PAREN@37..38 "("
41 R_PAREN@[38; 39) ")" 41 R_PAREN@38..39 ")"
42 SEMICOLON@[39; 40) ";" 42 SEMICOLON@39..40 ";"
43 WHITESPACE@[40; 41) "\n" 43 WHITESPACE@40..41 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast b/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast
index f9a4bc81b..a65a5c85f 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0118_impl_inner_attributes.rast
@@ -1,40 +1,40 @@
1SOURCE_FILE@[0; 94) 1SOURCE_FILE@0..94
2 ENUM_DEF@[0; 8) 2 ENUM_DEF@0..8
3 ENUM_KW@[0; 4) "enum" 3 ENUM_KW@0..4 "enum"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "F" 6 IDENT@5..6 "F"
7 ENUM_VARIANT_LIST@[6; 8) 7 ENUM_VARIANT_LIST@6..8
8 L_CURLY@[6; 7) "{" 8 L_CURLY@6..7 "{"
9 R_CURLY@[7; 8) "}" 9 R_CURLY@7..8 "}"
10 WHITESPACE@[8; 9) "\n" 10 WHITESPACE@8..9 "\n"
11 IMPL_DEF@[9; 93) 11 IMPL_DEF@9..93
12 IMPL_KW@[9; 13) "impl" 12 IMPL_KW@9..13 "impl"
13 WHITESPACE@[13; 14) " " 13 WHITESPACE@13..14 " "
14 PATH_TYPE@[14; 15) 14 PATH_TYPE@14..15
15 PATH@[14; 15) 15 PATH@14..15
16 PATH_SEGMENT@[14; 15) 16 PATH_SEGMENT@14..15
17 NAME_REF@[14; 15) 17 NAME_REF@14..15
18 IDENT@[14; 15) "F" 18 IDENT@14..15 "F"
19 WHITESPACE@[15; 16) " " 19 WHITESPACE@15..16 " "
20 ITEM_LIST@[16; 93) 20 ITEM_LIST@16..93
21 L_CURLY@[16; 17) "{" 21 L_CURLY@16..17 "{"
22 WHITESPACE@[17; 23) "\n " 22 WHITESPACE@17..23 "\n "
23 COMMENT@[23; 48) "//! This is a doc com ..." 23 COMMENT@23..48 "//! This is a doc com ..."
24 WHITESPACE@[48; 54) "\n " 24 WHITESPACE@48..54 "\n "
25 ATTR@[54; 91) 25 ATTR@54..91
26 POUND@[54; 55) "#" 26 POUND@54..55 "#"
27 BANG@[55; 56) "!" 27 BANG@55..56 "!"
28 L_BRACK@[56; 57) "[" 28 L_BRACK@56..57 "["
29 PATH@[57; 60) 29 PATH@57..60
30 PATH_SEGMENT@[57; 60) 30 PATH_SEGMENT@57..60
31 NAME_REF@[57; 60) 31 NAME_REF@57..60
32 IDENT@[57; 60) "doc" 32 IDENT@57..60 "doc"
33 TOKEN_TREE@[60; 90) 33 TOKEN_TREE@60..90
34 L_PAREN@[60; 61) "(" 34 L_PAREN@60..61 "("
35 STRING@[61; 89) "\"This is also a doc c ..." 35 STRING@61..89 "\"This is also a doc c ..."
36 R_PAREN@[89; 90) ")" 36 R_PAREN@89..90 ")"
37 R_BRACK@[90; 91) "]" 37 R_BRACK@90..91 "]"
38 WHITESPACE@[91; 92) "\n" 38 WHITESPACE@91..92 "\n"
39 R_CURLY@[92; 93) "}" 39 R_CURLY@92..93 "}"
40 WHITESPACE@[93; 94) "\n" 40 WHITESPACE@93..94 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast
index 852e4e489..8e080fb60 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0118_match_guard.rast
@@ -1,48 +1,48 @@
1SOURCE_FILE@[0; 58) 1SOURCE_FILE@0..58
2 FN_DEF@[0; 57) 2 FN_DEF@0..57
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 57) 11 BLOCK_EXPR@9..57
12 BLOCK@[9; 57) 12 BLOCK@9..57
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 MATCH_EXPR@[15; 55) 15 MATCH_EXPR@15..55
16 MATCH_KW@[15; 20) "match" 16 MATCH_KW@15..20 "match"
17 WHITESPACE@[20; 21) " " 17 WHITESPACE@20..21 " "
18 TUPLE_EXPR@[21; 23) 18 TUPLE_EXPR@21..23
19 L_PAREN@[21; 22) "(" 19 L_PAREN@21..22 "("
20 R_PAREN@[22; 23) ")" 20 R_PAREN@22..23 ")"
21 WHITESPACE@[23; 24) " " 21 WHITESPACE@23..24 " "
22 MATCH_ARM_LIST@[24; 55) 22 MATCH_ARM_LIST@24..55
23 L_CURLY@[24; 25) "{" 23 L_CURLY@24..25 "{"
24 WHITESPACE@[25; 34) "\n " 24 WHITESPACE@25..34 "\n "
25 MATCH_ARM@[34; 48) 25 MATCH_ARM@34..48
26 PLACEHOLDER_PAT@[34; 35) 26 PLACEHOLDER_PAT@34..35
27 UNDERSCORE@[34; 35) "_" 27 UNDERSCORE@34..35 "_"
28 WHITESPACE@[35; 36) " " 28 WHITESPACE@35..36 " "
29 MATCH_GUARD@[36; 42) 29 MATCH_GUARD@36..42
30 IF_KW@[36; 38) "if" 30 IF_KW@36..38 "if"
31 WHITESPACE@[38; 39) " " 31 WHITESPACE@38..39 " "
32 PATH_EXPR@[39; 42) 32 PATH_EXPR@39..42
33 PATH@[39; 42) 33 PATH@39..42
34 PATH_SEGMENT@[39; 42) 34 PATH_SEGMENT@39..42
35 NAME_REF@[39; 42) 35 NAME_REF@39..42
36 IDENT@[39; 42) "foo" 36 IDENT@39..42 "foo"
37 WHITESPACE@[42; 43) " " 37 WHITESPACE@42..43 " "
38 FAT_ARROW@[43; 45) "=>" 38 FAT_ARROW@43..45 "=>"
39 WHITESPACE@[45; 46) " " 39 WHITESPACE@45..46 " "
40 TUPLE_EXPR@[46; 48) 40 TUPLE_EXPR@46..48
41 L_PAREN@[46; 47) "(" 41 L_PAREN@46..47 "("
42 R_PAREN@[47; 48) ")" 42 R_PAREN@47..48 ")"
43 COMMA@[48; 49) "," 43 COMMA@48..49 ","
44 WHITESPACE@[49; 54) "\n " 44 WHITESPACE@49..54 "\n "
45 R_CURLY@[54; 55) "}" 45 R_CURLY@54..55 "}"
46 WHITESPACE@[55; 56) "\n" 46 WHITESPACE@55..56 "\n"
47 R_CURLY@[56; 57) "}" 47 R_CURLY@56..57 "}"
48 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.rast b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
index 7eec92e1b..728164f8e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0120_match_arms_inner_attribute.rast
@@ -1,81 +1,81 @@
1SOURCE_FILE@[0; 139) 1SOURCE_FILE@0..139
2 FN_DEF@[0; 138) 2 FN_DEF@0..138
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 138) 11 BLOCK_EXPR@9..138
12 BLOCK@[9; 138) 12 BLOCK@9..138
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 MATCH_EXPR@[15; 136) 15 MATCH_EXPR@15..136
16 MATCH_KW@[15; 20) "match" 16 MATCH_KW@15..20 "match"
17 WHITESPACE@[20; 21) " " 17 WHITESPACE@20..21 " "
18 TUPLE_EXPR@[21; 23) 18 TUPLE_EXPR@21..23
19 L_PAREN@[21; 22) "(" 19 L_PAREN@21..22 "("
20 R_PAREN@[22; 23) ")" 20 R_PAREN@22..23 ")"
21 WHITESPACE@[23; 24) " " 21 WHITESPACE@23..24 " "
22 MATCH_ARM_LIST@[24; 136) 22 MATCH_ARM_LIST@24..136
23 L_CURLY@[24; 25) "{" 23 L_CURLY@24..25 "{"
24 WHITESPACE@[25; 34) "\n " 24 WHITESPACE@25..34 "\n "
25 ATTR@[34; 60) 25 ATTR@34..60
26 POUND@[34; 35) "#" 26 POUND@34..35 "#"
27 BANG@[35; 36) "!" 27 BANG@35..36 "!"
28 L_BRACK@[36; 37) "[" 28 L_BRACK@36..37 "["
29 PATH@[37; 40) 29 PATH@37..40
30 PATH_SEGMENT@[37; 40) 30 PATH_SEGMENT@37..40
31 NAME_REF@[37; 40) 31 NAME_REF@37..40
32 IDENT@[37; 40) "doc" 32 IDENT@37..40 "doc"
33 TOKEN_TREE@[40; 59) 33 TOKEN_TREE@40..59
34 L_PAREN@[40; 41) "(" 34 L_PAREN@40..41 "("
35 STRING@[41; 58) "\"Inner attribute\"" 35 STRING@41..58 "\"Inner attribute\""
36 R_PAREN@[58; 59) ")" 36 R_PAREN@58..59 ")"
37 R_BRACK@[59; 60) "]" 37 R_BRACK@59..60 "]"
38 WHITESPACE@[60; 69) "\n " 38 WHITESPACE@60..69 "\n "
39 ATTR@[69; 86) 39 ATTR@69..86
40 POUND@[69; 70) "#" 40 POUND@69..70 "#"
41 BANG@[70; 71) "!" 41 BANG@70..71 "!"
42 L_BRACK@[71; 72) "[" 42 L_BRACK@71..72 "["
43 PATH@[72; 75) 43 PATH@72..75
44 PATH_SEGMENT@[72; 75) 44 PATH_SEGMENT@72..75
45 NAME_REF@[72; 75) 45 NAME_REF@72..75
46 IDENT@[72; 75) "doc" 46 IDENT@72..75 "doc"
47 TOKEN_TREE@[75; 85) 47 TOKEN_TREE@75..85
48 L_PAREN@[75; 76) "(" 48 L_PAREN@75..76 "("
49 STRING@[76; 84) "\"Can be\"" 49 STRING@76..84 "\"Can be\""
50 R_PAREN@[84; 85) ")" 50 R_PAREN@84..85 ")"
51 R_BRACK@[85; 86) "]" 51 R_BRACK@85..86 "]"
52 WHITESPACE@[86; 95) "\n " 52 WHITESPACE@86..95 "\n "
53 ATTR@[95; 113) 53 ATTR@95..113
54 POUND@[95; 96) "#" 54 POUND@95..96 "#"
55 BANG@[96; 97) "!" 55 BANG@96..97 "!"
56 L_BRACK@[97; 98) "[" 56 L_BRACK@97..98 "["
57 PATH@[98; 101) 57 PATH@98..101
58 PATH_SEGMENT@[98; 101) 58 PATH_SEGMENT@98..101
59 NAME_REF@[98; 101) 59 NAME_REF@98..101
60 IDENT@[98; 101) "doc" 60 IDENT@98..101 "doc"
61 TOKEN_TREE@[101; 112) 61 TOKEN_TREE@101..112
62 L_PAREN@[101; 102) "(" 62 L_PAREN@101..102 "("
63 STRING@[102; 111) "\"Stacked\"" 63 STRING@102..111 "\"Stacked\""
64 R_PAREN@[111; 112) ")" 64 R_PAREN@111..112 ")"
65 R_BRACK@[112; 113) "]" 65 R_BRACK@112..113 "]"
66 WHITESPACE@[113; 122) "\n " 66 WHITESPACE@113..122 "\n "
67 MATCH_ARM@[122; 129) 67 MATCH_ARM@122..129
68 PLACEHOLDER_PAT@[122; 123) 68 PLACEHOLDER_PAT@122..123
69 UNDERSCORE@[122; 123) "_" 69 UNDERSCORE@122..123 "_"
70 WHITESPACE@[123; 124) " " 70 WHITESPACE@123..124 " "
71 FAT_ARROW@[124; 126) "=>" 71 FAT_ARROW@124..126 "=>"
72 WHITESPACE@[126; 127) " " 72 WHITESPACE@126..127 " "
73 TUPLE_EXPR@[127; 129) 73 TUPLE_EXPR@127..129
74 L_PAREN@[127; 128) "(" 74 L_PAREN@127..128 "("
75 R_PAREN@[128; 129) ")" 75 R_PAREN@128..129 ")"
76 COMMA@[129; 130) "," 76 COMMA@129..130 ","
77 WHITESPACE@[130; 135) "\n " 77 WHITESPACE@130..135 "\n "
78 R_CURLY@[135; 136) "}" 78 R_CURLY@135..136 "}"
79 WHITESPACE@[136; 137) "\n" 79 WHITESPACE@136..137 "\n"
80 R_CURLY@[137; 138) "}" 80 R_CURLY@137..138 "}"
81 WHITESPACE@[138; 139) "\n" 81 WHITESPACE@138..139 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
index ff380b448..6123885e3 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0121_match_arms_outer_attributes.rast
@@ -1,146 +1,146 @@
1SOURCE_FILE@[0; 259) 1SOURCE_FILE@0..259
2 FN_DEF@[0; 258) 2 FN_DEF@0..258
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 258) 11 BLOCK_EXPR@9..258
12 BLOCK@[9; 258) 12 BLOCK@9..258
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 MATCH_EXPR@[15; 256) 15 MATCH_EXPR@15..256
16 MATCH_KW@[15; 20) "match" 16 MATCH_KW@15..20 "match"
17 WHITESPACE@[20; 21) " " 17 WHITESPACE@20..21 " "
18 TUPLE_EXPR@[21; 23) 18 TUPLE_EXPR@21..23
19 L_PAREN@[21; 22) "(" 19 L_PAREN@21..22 "("
20 R_PAREN@[22; 23) ")" 20 R_PAREN@22..23 ")"
21 WHITESPACE@[23; 24) " " 21 WHITESPACE@23..24 " "
22 MATCH_ARM_LIST@[24; 256) 22 MATCH_ARM_LIST@24..256
23 L_CURLY@[24; 25) "{" 23 L_CURLY@24..25 "{"
24 WHITESPACE@[25; 34) "\n " 24 WHITESPACE@25..34 "\n "
25 MATCH_ARM@[34; 74) 25 MATCH_ARM@34..74
26 ATTR@[34; 58) 26 ATTR@34..58
27 POUND@[34; 35) "#" 27 POUND@34..35 "#"
28 L_BRACK@[35; 36) "[" 28 L_BRACK@35..36 "["
29 PATH@[36; 39) 29 PATH@36..39
30 PATH_SEGMENT@[36; 39) 30 PATH_SEGMENT@36..39
31 NAME_REF@[36; 39) 31 NAME_REF@36..39
32 IDENT@[36; 39) "cfg" 32 IDENT@36..39 "cfg"
33 TOKEN_TREE@[39; 57) 33 TOKEN_TREE@39..57
34 L_PAREN@[39; 40) "(" 34 L_PAREN@39..40 "("
35 IDENT@[40; 47) "feature" 35 IDENT@40..47 "feature"
36 WHITESPACE@[47; 48) " " 36 WHITESPACE@47..48 " "
37 EQ@[48; 49) "=" 37 EQ@48..49 "="
38 WHITESPACE@[49; 50) " " 38 WHITESPACE@49..50 " "
39 STRING@[50; 56) "\"some\"" 39 STRING@50..56 "\"some\""
40 R_PAREN@[56; 57) ")" 40 R_PAREN@56..57 ")"
41 R_BRACK@[57; 58) "]" 41 R_BRACK@57..58 "]"
42 WHITESPACE@[58; 67) "\n " 42 WHITESPACE@58..67 "\n "
43 PLACEHOLDER_PAT@[67; 68) 43 PLACEHOLDER_PAT@67..68
44 UNDERSCORE@[67; 68) "_" 44 UNDERSCORE@67..68 "_"
45 WHITESPACE@[68; 69) " " 45 WHITESPACE@68..69 " "
46 FAT_ARROW@[69; 71) "=>" 46 FAT_ARROW@69..71 "=>"
47 WHITESPACE@[71; 72) " " 47 WHITESPACE@71..72 " "
48 TUPLE_EXPR@[72; 74) 48 TUPLE_EXPR@72..74
49 L_PAREN@[72; 73) "(" 49 L_PAREN@72..73 "("
50 R_PAREN@[73; 74) ")" 50 R_PAREN@73..74 ")"
51 COMMA@[74; 75) "," 51 COMMA@74..75 ","
52 WHITESPACE@[75; 84) "\n " 52 WHITESPACE@75..84 "\n "
53 MATCH_ARM@[84; 125) 53 MATCH_ARM@84..125
54 ATTR@[84; 109) 54 ATTR@84..109
55 POUND@[84; 85) "#" 55 POUND@84..85 "#"
56 L_BRACK@[85; 86) "[" 56 L_BRACK@85..86 "["
57 PATH@[86; 89) 57 PATH@86..89
58 PATH_SEGMENT@[86; 89) 58 PATH_SEGMENT@86..89
59 NAME_REF@[86; 89) 59 NAME_REF@86..89
60 IDENT@[86; 89) "cfg" 60 IDENT@86..89 "cfg"
61 TOKEN_TREE@[89; 108) 61 TOKEN_TREE@89..108
62 L_PAREN@[89; 90) "(" 62 L_PAREN@89..90 "("
63 IDENT@[90; 97) "feature" 63 IDENT@90..97 "feature"
64 WHITESPACE@[97; 98) " " 64 WHITESPACE@97..98 " "
65 EQ@[98; 99) "=" 65 EQ@98..99 "="
66 WHITESPACE@[99; 100) " " 66 WHITESPACE@99..100 " "
67 STRING@[100; 107) "\"other\"" 67 STRING@100..107 "\"other\""
68 R_PAREN@[107; 108) ")" 68 R_PAREN@107..108 ")"
69 R_BRACK@[108; 109) "]" 69 R_BRACK@108..109 "]"
70 WHITESPACE@[109; 118) "\n " 70 WHITESPACE@109..118 "\n "
71 PLACEHOLDER_PAT@[118; 119) 71 PLACEHOLDER_PAT@118..119
72 UNDERSCORE@[118; 119) "_" 72 UNDERSCORE@118..119 "_"
73 WHITESPACE@[119; 120) " " 73 WHITESPACE@119..120 " "
74 FAT_ARROW@[120; 122) "=>" 74 FAT_ARROW@120..122 "=>"
75 WHITESPACE@[122; 123) " " 75 WHITESPACE@122..123 " "
76 TUPLE_EXPR@[123; 125) 76 TUPLE_EXPR@123..125
77 L_PAREN@[123; 124) "(" 77 L_PAREN@123..124 "("
78 R_PAREN@[124; 125) ")" 78 R_PAREN@124..125 ")"
79 COMMA@[125; 126) "," 79 COMMA@125..126 ","
80 WHITESPACE@[126; 135) "\n " 80 WHITESPACE@126..135 "\n "
81 MATCH_ARM@[135; 249) 81 MATCH_ARM@135..249
82 ATTR@[135; 159) 82 ATTR@135..159
83 POUND@[135; 136) "#" 83 POUND@135..136 "#"
84 L_BRACK@[136; 137) "[" 84 L_BRACK@136..137 "["
85 PATH@[137; 140) 85 PATH@137..140
86 PATH_SEGMENT@[137; 140) 86 PATH_SEGMENT@137..140
87 NAME_REF@[137; 140) 87 NAME_REF@137..140
88 IDENT@[137; 140) "cfg" 88 IDENT@137..140 "cfg"
89 TOKEN_TREE@[140; 158) 89 TOKEN_TREE@140..158
90 L_PAREN@[140; 141) "(" 90 L_PAREN@140..141 "("
91 IDENT@[141; 148) "feature" 91 IDENT@141..148 "feature"
92 WHITESPACE@[148; 149) " " 92 WHITESPACE@148..149 " "
93 EQ@[149; 150) "=" 93 EQ@149..150 "="
94 WHITESPACE@[150; 151) " " 94 WHITESPACE@150..151 " "
95 STRING@[151; 157) "\"many\"" 95 STRING@151..157 "\"many\""
96 R_PAREN@[157; 158) ")" 96 R_PAREN@157..158 ")"
97 R_BRACK@[158; 159) "]" 97 R_BRACK@158..159 "]"
98 WHITESPACE@[159; 168) "\n " 98 WHITESPACE@159..168 "\n "
99 ATTR@[168; 198) 99 ATTR@168..198
100 POUND@[168; 169) "#" 100 POUND@168..169 "#"
101 L_BRACK@[169; 170) "[" 101 L_BRACK@169..170 "["
102 PATH@[170; 173) 102 PATH@170..173
103 PATH_SEGMENT@[170; 173) 103 PATH_SEGMENT@170..173
104 NAME_REF@[170; 173) 104 NAME_REF@170..173
105 IDENT@[170; 173) "cfg" 105 IDENT@170..173 "cfg"
106 TOKEN_TREE@[173; 197) 106 TOKEN_TREE@173..197
107 L_PAREN@[173; 174) "(" 107 L_PAREN@173..174 "("
108 IDENT@[174; 181) "feature" 108 IDENT@174..181 "feature"
109 WHITESPACE@[181; 182) " " 109 WHITESPACE@181..182 " "
110 EQ@[182; 183) "=" 110 EQ@182..183 "="
111 WHITESPACE@[183; 184) " " 111 WHITESPACE@183..184 " "
112 STRING@[184; 196) "\"attributes\"" 112 STRING@184..196 "\"attributes\""
113 R_PAREN@[196; 197) ")" 113 R_PAREN@196..197 ")"
114 R_BRACK@[197; 198) "]" 114 R_BRACK@197..198 "]"
115 WHITESPACE@[198; 207) "\n " 115 WHITESPACE@198..207 "\n "
116 ATTR@[207; 233) 116 ATTR@207..233
117 POUND@[207; 208) "#" 117 POUND@207..208 "#"
118 L_BRACK@[208; 209) "[" 118 L_BRACK@208..209 "["
119 PATH@[209; 212) 119 PATH@209..212
120 PATH_SEGMENT@[209; 212) 120 PATH_SEGMENT@209..212
121 NAME_REF@[209; 212) 121 NAME_REF@209..212
122 IDENT@[209; 212) "cfg" 122 IDENT@209..212 "cfg"
123 TOKEN_TREE@[212; 232) 123 TOKEN_TREE@212..232
124 L_PAREN@[212; 213) "(" 124 L_PAREN@212..213 "("
125 IDENT@[213; 220) "feature" 125 IDENT@213..220 "feature"
126 WHITESPACE@[220; 221) " " 126 WHITESPACE@220..221 " "
127 EQ@[221; 222) "=" 127 EQ@221..222 "="
128 WHITESPACE@[222; 223) " " 128 WHITESPACE@222..223 " "
129 STRING@[223; 231) "\"before\"" 129 STRING@223..231 "\"before\""
130 R_PAREN@[231; 232) ")" 130 R_PAREN@231..232 ")"
131 R_BRACK@[232; 233) "]" 131 R_BRACK@232..233 "]"
132 WHITESPACE@[233; 242) "\n " 132 WHITESPACE@233..242 "\n "
133 PLACEHOLDER_PAT@[242; 243) 133 PLACEHOLDER_PAT@242..243
134 UNDERSCORE@[242; 243) "_" 134 UNDERSCORE@242..243 "_"
135 WHITESPACE@[243; 244) " " 135 WHITESPACE@243..244 " "
136 FAT_ARROW@[244; 246) "=>" 136 FAT_ARROW@244..246 "=>"
137 WHITESPACE@[246; 247) " " 137 WHITESPACE@246..247 " "
138 TUPLE_EXPR@[247; 249) 138 TUPLE_EXPR@247..249
139 L_PAREN@[247; 248) "(" 139 L_PAREN@247..248 "("
140 R_PAREN@[248; 249) ")" 140 R_PAREN@248..249 ")"
141 COMMA@[249; 250) "," 141 COMMA@249..250 ","
142 WHITESPACE@[250; 255) "\n " 142 WHITESPACE@250..255 "\n "
143 R_CURLY@[255; 256) "}" 143 R_CURLY@255..256 "}"
144 WHITESPACE@[256; 257) "\n" 144 WHITESPACE@256..257 "\n"
145 R_CURLY@[257; 258) "}" 145 R_CURLY@257..258 "}"
146 WHITESPACE@[258; 259) "\n" 146 WHITESPACE@258..259 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
index a73ff9c90..67b9c10d5 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0122_generic_lifetime_type_attribute.rast
@@ -1,66 +1,66 @@
1SOURCE_FILE@[0; 64) 1SOURCE_FILE@0..64
2 FN_DEF@[0; 63) 2 FN_DEF@0..63
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
7 TYPE_PARAM_LIST@[6; 49) 7 TYPE_PARAM_LIST@6..49
8 L_ANGLE@[6; 7) "<" 8 L_ANGLE@6..7 "<"
9 LIFETIME_PARAM@[7; 29) 9 LIFETIME_PARAM@7..29
10 ATTR@[7; 26) 10 ATTR@7..26
11 POUND@[7; 8) "#" 11 POUND@7..8 "#"
12 L_BRACK@[8; 9) "[" 12 L_BRACK@8..9 "["
13 PATH@[9; 15) 13 PATH@9..15
14 PATH_SEGMENT@[9; 15) 14 PATH_SEGMENT@9..15
15 NAME_REF@[9; 15) 15 NAME_REF@9..15
16 IDENT@[9; 15) "derive" 16 IDENT@9..15 "derive"
17 TOKEN_TREE@[15; 25) 17 TOKEN_TREE@15..25
18 L_PAREN@[15; 16) "(" 18 L_PAREN@15..16 "("
19 IDENT@[16; 24) "Lifetime" 19 IDENT@16..24 "Lifetime"
20 R_PAREN@[24; 25) ")" 20 R_PAREN@24..25 ")"
21 R_BRACK@[25; 26) "]" 21 R_BRACK@25..26 "]"
22 WHITESPACE@[26; 27) " " 22 WHITESPACE@26..27 " "
23 LIFETIME@[27; 29) "\'a" 23 LIFETIME@27..29 "\'a"
24 COMMA@[29; 30) "," 24 COMMA@29..30 ","
25 WHITESPACE@[30; 31) " " 25 WHITESPACE@30..31 " "
26 TYPE_PARAM@[31; 48) 26 TYPE_PARAM@31..48
27 ATTR@[31; 46) 27 ATTR@31..46
28 POUND@[31; 32) "#" 28 POUND@31..32 "#"
29 L_BRACK@[32; 33) "[" 29 L_BRACK@32..33 "["
30 PATH@[33; 39) 30 PATH@33..39
31 PATH_SEGMENT@[33; 39) 31 PATH_SEGMENT@33..39
32 NAME_REF@[33; 39) 32 NAME_REF@33..39
33 IDENT@[33; 39) "derive" 33 IDENT@33..39 "derive"
34 TOKEN_TREE@[39; 45) 34 TOKEN_TREE@39..45
35 L_PAREN@[39; 40) "(" 35 L_PAREN@39..40 "("
36 IDENT@[40; 44) "Type" 36 IDENT@40..44 "Type"
37 R_PAREN@[44; 45) ")" 37 R_PAREN@44..45 ")"
38 R_BRACK@[45; 46) "]" 38 R_BRACK@45..46 "]"
39 WHITESPACE@[46; 47) " " 39 WHITESPACE@46..47 " "
40 NAME@[47; 48) 40 NAME@47..48
41 IDENT@[47; 48) "T" 41 IDENT@47..48 "T"
42 R_ANGLE@[48; 49) ">" 42 R_ANGLE@48..49 ">"
43 PARAM_LIST@[49; 59) 43 PARAM_LIST@49..59
44 L_PAREN@[49; 50) "(" 44 L_PAREN@49..50 "("
45 PARAM@[50; 58) 45 PARAM@50..58
46 PLACEHOLDER_PAT@[50; 51) 46 PLACEHOLDER_PAT@50..51
47 UNDERSCORE@[50; 51) "_" 47 UNDERSCORE@50..51 "_"
48 COLON@[51; 52) ":" 48 COLON@51..52 ":"
49 WHITESPACE@[52; 53) " " 49 WHITESPACE@52..53 " "
50 REFERENCE_TYPE@[53; 58) 50 REFERENCE_TYPE@53..58
51 AMP@[53; 54) "&" 51 AMP@53..54 "&"
52 LIFETIME@[54; 56) "\'a" 52 LIFETIME@54..56 "\'a"
53 WHITESPACE@[56; 57) " " 53 WHITESPACE@56..57 " "
54 PATH_TYPE@[57; 58) 54 PATH_TYPE@57..58
55 PATH@[57; 58) 55 PATH@57..58
56 PATH_SEGMENT@[57; 58) 56 PATH_SEGMENT@57..58
57 NAME_REF@[57; 58) 57 NAME_REF@57..58
58 IDENT@[57; 58) "T" 58 IDENT@57..58 "T"
59 R_PAREN@[58; 59) ")" 59 R_PAREN@58..59 ")"
60 WHITESPACE@[59; 60) " " 60 WHITESPACE@59..60 " "
61 BLOCK_EXPR@[60; 63) 61 BLOCK_EXPR@60..63
62 BLOCK@[60; 63) 62 BLOCK@60..63
63 L_CURLY@[60; 61) "{" 63 L_CURLY@60..61 "{"
64 WHITESPACE@[61; 62) "\n" 64 WHITESPACE@61..62 "\n"
65 R_CURLY@[62; 63) "}" 65 R_CURLY@62..63 "}"
66 WHITESPACE@[63; 64) "\n" 66 WHITESPACE@63..64 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast
index af8067b12..b3a33c14d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0123_param_list_vararg.rast
@@ -1,50 +1,50 @@
1SOURCE_FILE@[0; 57) 1SOURCE_FILE@0..57
2 EXTERN_BLOCK@[0; 56) 2 EXTERN_BLOCK@0..56
3 ABI@[0; 10) 3 ABI@0..10
4 EXTERN_KW@[0; 6) "extern" 4 EXTERN_KW@0..6 "extern"
5 WHITESPACE@[6; 7) " " 5 WHITESPACE@6..7 " "
6 STRING@[7; 10) "\"C\"" 6 STRING@7..10 "\"C\""
7 WHITESPACE@[10; 11) " " 7 WHITESPACE@10..11 " "
8 EXTERN_ITEM_LIST@[11; 56) 8 EXTERN_ITEM_LIST@11..56
9 L_CURLY@[11; 12) "{" 9 L_CURLY@11..12 "{"
10 WHITESPACE@[12; 13) " " 10 WHITESPACE@12..13 " "
11 FN_DEF@[13; 54) 11 FN_DEF@13..54
12 FN_KW@[13; 15) "fn" 12 FN_KW@13..15 "fn"
13 WHITESPACE@[15; 16) " " 13 WHITESPACE@15..16 " "
14 NAME@[16; 22) 14 NAME@16..22
15 IDENT@[16; 22) "printf" 15 IDENT@16..22 "printf"
16 PARAM_LIST@[22; 46) 16 PARAM_LIST@22..46
17 L_PAREN@[22; 23) "(" 17 L_PAREN@22..23 "("
18 PARAM@[23; 40) 18 PARAM@23..40
19 BIND_PAT@[23; 29) 19 BIND_PAT@23..29
20 NAME@[23; 29) 20 NAME@23..29
21 IDENT@[23; 29) "format" 21 IDENT@23..29 "format"
22 COLON@[29; 30) ":" 22 COLON@29..30 ":"
23 WHITESPACE@[30; 31) " " 23 WHITESPACE@30..31 " "
24 POINTER_TYPE@[31; 40) 24 POINTER_TYPE@31..40
25 STAR@[31; 32) "*" 25 STAR@31..32 "*"
26 CONST_KW@[32; 37) "const" 26 CONST_KW@32..37 "const"
27 WHITESPACE@[37; 38) " " 27 WHITESPACE@37..38 " "
28 PATH_TYPE@[38; 40) 28 PATH_TYPE@38..40
29 PATH@[38; 40) 29 PATH@38..40
30 PATH_SEGMENT@[38; 40) 30 PATH_SEGMENT@38..40
31 NAME_REF@[38; 40) 31 NAME_REF@38..40
32 IDENT@[38; 40) "i8" 32 IDENT@38..40 "i8"
33 COMMA@[40; 41) "," 33 COMMA@40..41 ","
34 WHITESPACE@[41; 42) " " 34 WHITESPACE@41..42 " "
35 PARAM@[42; 45) 35 PARAM@42..45
36 DOT3@[42; 45) "..." 36 DOT3@42..45 "..."
37 R_PAREN@[45; 46) ")" 37 R_PAREN@45..46 ")"
38 WHITESPACE@[46; 47) " " 38 WHITESPACE@46..47 " "
39 RET_TYPE@[47; 53) 39 RET_TYPE@47..53
40 THIN_ARROW@[47; 49) "->" 40 THIN_ARROW@47..49 "->"
41 WHITESPACE@[49; 50) " " 41 WHITESPACE@49..50 " "
42 PATH_TYPE@[50; 53) 42 PATH_TYPE@50..53
43 PATH@[50; 53) 43 PATH@50..53
44 PATH_SEGMENT@[50; 53) 44 PATH_SEGMENT@50..53
45 NAME_REF@[50; 53) 45 NAME_REF@50..53
46 IDENT@[50; 53) "i32" 46 IDENT@50..53 "i32"
47 SEMICOLON@[53; 54) ";" 47 SEMICOLON@53..54 ";"
48 WHITESPACE@[54; 55) " " 48 WHITESPACE@54..55 " "
49 R_CURLY@[55; 56) "}" 49 R_CURLY@55..56 "}"
50 WHITESPACE@[56; 57) "\n" 50 WHITESPACE@56..57 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast b/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast
index 9c4bd7f11..baf22a8d7 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0124_async_fn.rast
@@ -1,17 +1,17 @@
1SOURCE_FILE@[0; 18) 1SOURCE_FILE@0..18
2 FN_DEF@[0; 17) 2 FN_DEF@0..17
3 ASYNC_KW@[0; 5) "async" 3 ASYNC_KW@0..5 "async"
4 WHITESPACE@[5; 6) " " 4 WHITESPACE@5..6 " "
5 FN_KW@[6; 8) "fn" 5 FN_KW@6..8 "fn"
6 WHITESPACE@[8; 9) " " 6 WHITESPACE@8..9 " "
7 NAME@[9; 12) 7 NAME@9..12
8 IDENT@[9; 12) "foo" 8 IDENT@9..12 "foo"
9 PARAM_LIST@[12; 14) 9 PARAM_LIST@12..14
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_EXPR@[15; 17) 13 BLOCK_EXPR@15..17
14 BLOCK@[15; 17) 14 BLOCK@15..17
15 L_CURLY@[15; 16) "{" 15 L_CURLY@15..16 "{"
16 R_CURLY@[16; 17) "}" 16 R_CURLY@16..17 "}"
17 WHITESPACE@[17; 18) "\n" 17 WHITESPACE@17..18 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast
index f1f4de976..16f5b90b6 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0125_crate_keyword_path.rast
@@ -1,32 +1,32 @@
1SOURCE_FILE@[0; 27) 1SOURCE_FILE@0..27
2 FN_DEF@[0; 26) 2 FN_DEF@0..26
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 26) 11 BLOCK_EXPR@9..26
12 BLOCK@[9; 26) 12 BLOCK@9..26
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 11) " " 14 WHITESPACE@10..11 " "
15 EXPR_STMT@[11; 24) 15 EXPR_STMT@11..24
16 CALL_EXPR@[11; 23) 16 CALL_EXPR@11..23
17 PATH_EXPR@[11; 21) 17 PATH_EXPR@11..21
18 PATH@[11; 21) 18 PATH@11..21
19 PATH@[11; 16) 19 PATH@11..16
20 PATH_SEGMENT@[11; 16) 20 PATH_SEGMENT@11..16
21 CRATE_KW@[11; 16) "crate" 21 CRATE_KW@11..16 "crate"
22 COLON2@[16; 18) "::" 22 COLON2@16..18 "::"
23 PATH_SEGMENT@[18; 21) 23 PATH_SEGMENT@18..21
24 NAME_REF@[18; 21) 24 NAME_REF@18..21
25 IDENT@[18; 21) "foo" 25 IDENT@18..21 "foo"
26 ARG_LIST@[21; 23) 26 ARG_LIST@21..23
27 L_PAREN@[21; 22) "(" 27 L_PAREN@21..22 "("
28 R_PAREN@[22; 23) ")" 28 R_PAREN@22..23 ")"
29 SEMICOLON@[23; 24) ";" 29 SEMICOLON@23..24 ";"
30 WHITESPACE@[24; 25) " " 30 WHITESPACE@24..25 " "
31 R_CURLY@[25; 26) "}" 31 R_CURLY@25..26 "}"
32 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.rast b/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
index a36c3df0e..07ed14773 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0125_record_literal_field_with_attr.rast
@@ -1,48 +1,48 @@
1SOURCE_FILE@[0; 46) 1SOURCE_FILE@0..46
2 FN_DEF@[0; 45) 2 FN_DEF@0..45
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 45) 11 BLOCK_EXPR@10..45
12 BLOCK@[10; 45) 12 BLOCK@10..45
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 RECORD_LIT@[16; 43) 15 RECORD_LIT@16..43
16 PATH@[16; 17) 16 PATH@16..17
17 PATH_SEGMENT@[16; 17) 17 PATH_SEGMENT@16..17
18 NAME_REF@[16; 17) 18 NAME_REF@16..17
19 IDENT@[16; 17) "S" 19 IDENT@16..17 "S"
20 WHITESPACE@[17; 18) " " 20 WHITESPACE@17..18 " "
21 RECORD_FIELD_LIST@[18; 43) 21 RECORD_FIELD_LIST@18..43
22 L_CURLY@[18; 19) "{" 22 L_CURLY@18..19 "{"
23 WHITESPACE@[19; 20) " " 23 WHITESPACE@19..20 " "
24 RECORD_FIELD@[20; 41) 24 RECORD_FIELD@20..41
25 ATTR@[20; 32) 25 ATTR@20..32
26 POUND@[20; 21) "#" 26 POUND@20..21 "#"
27 L_BRACK@[21; 22) "[" 27 L_BRACK@21..22 "["
28 PATH@[22; 25) 28 PATH@22..25
29 PATH_SEGMENT@[22; 25) 29 PATH_SEGMENT@22..25
30 NAME_REF@[22; 25) 30 NAME_REF@22..25
31 IDENT@[22; 25) "cfg" 31 IDENT@22..25 "cfg"
32 TOKEN_TREE@[25; 31) 32 TOKEN_TREE@25..31
33 L_PAREN@[25; 26) "(" 33 L_PAREN@25..26 "("
34 IDENT@[26; 30) "test" 34 IDENT@26..30 "test"
35 R_PAREN@[30; 31) ")" 35 R_PAREN@30..31 ")"
36 R_BRACK@[31; 32) "]" 36 R_BRACK@31..32 "]"
37 WHITESPACE@[32; 33) " " 37 WHITESPACE@32..33 " "
38 NAME_REF@[33; 38) 38 NAME_REF@33..38
39 IDENT@[33; 38) "field" 39 IDENT@33..38 "field"
40 COLON@[38; 39) ":" 40 COLON@38..39 ":"
41 WHITESPACE@[39; 40) " " 41 WHITESPACE@39..40 " "
42 LITERAL@[40; 41) 42 LITERAL@40..41
43 INT_NUMBER@[40; 41) "1" 43 INT_NUMBER@40..41 "1"
44 WHITESPACE@[41; 42) " " 44 WHITESPACE@41..42 " "
45 R_CURLY@[42; 43) "}" 45 R_CURLY@42..43 "}"
46 WHITESPACE@[43; 44) "\n" 46 WHITESPACE@43..44 "\n"
47 R_CURLY@[44; 45) "}" 47 R_CURLY@44..45 "}"
48 WHITESPACE@[45; 46) "\n" 48 WHITESPACE@45..46 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast b/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
index 3b462871a..8307d4c15 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0126_attr_on_expr_stmt.rast
@@ -1,99 +1,99 @@
1SOURCE_FILE@[0; 82) 1SOURCE_FILE@0..82
2 FN_DEF@[0; 81) 2 FN_DEF@0..81
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 81) 11 BLOCK_EXPR@9..81
12 BLOCK@[9; 81) 12 BLOCK@9..81
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 26) 15 EXPR_STMT@15..26
16 ATTR@[15; 19) 16 ATTR@15..19
17 POUND@[15; 16) "#" 17 POUND@15..16 "#"
18 L_BRACK@[16; 17) "[" 18 L_BRACK@16..17 "["
19 PATH@[17; 18) 19 PATH@17..18
20 PATH_SEGMENT@[17; 18) 20 PATH_SEGMENT@17..18
21 NAME_REF@[17; 18) 21 NAME_REF@17..18
22 IDENT@[17; 18) "A" 22 IDENT@17..18 "A"
23 R_BRACK@[18; 19) "]" 23 R_BRACK@18..19 "]"
24 WHITESPACE@[19; 20) " " 24 WHITESPACE@19..20 " "
25 CALL_EXPR@[20; 25) 25 CALL_EXPR@20..25
26 PATH_EXPR@[20; 23) 26 PATH_EXPR@20..23
27 PATH@[20; 23) 27 PATH@20..23
28 PATH_SEGMENT@[20; 23) 28 PATH_SEGMENT@20..23
29 NAME_REF@[20; 23) 29 NAME_REF@20..23
30 IDENT@[20; 23) "foo" 30 IDENT@20..23 "foo"
31 ARG_LIST@[23; 25) 31 ARG_LIST@23..25
32 L_PAREN@[23; 24) "(" 32 L_PAREN@23..24 "("
33 R_PAREN@[24; 25) ")" 33 R_PAREN@24..25 ")"
34 SEMICOLON@[25; 26) ";" 34 SEMICOLON@25..26 ";"
35 WHITESPACE@[26; 31) "\n " 35 WHITESPACE@26..31 "\n "
36 EXPR_STMT@[31; 42) 36 EXPR_STMT@31..42
37 ATTR@[31; 35) 37 ATTR@31..35
38 POUND@[31; 32) "#" 38 POUND@31..32 "#"
39 L_BRACK@[32; 33) "[" 39 L_BRACK@32..33 "["
40 PATH@[33; 34) 40 PATH@33..34
41 PATH_SEGMENT@[33; 34) 41 PATH_SEGMENT@33..34
42 NAME_REF@[33; 34) 42 NAME_REF@33..34
43 IDENT@[33; 34) "B" 43 IDENT@33..34 "B"
44 R_BRACK@[34; 35) "]" 44 R_BRACK@34..35 "]"
45 WHITESPACE@[35; 36) " " 45 WHITESPACE@35..36 " "
46 MACRO_CALL@[36; 42) 46 MACRO_CALL@36..42
47 PATH@[36; 39) 47 PATH@36..39
48 PATH_SEGMENT@[36; 39) 48 PATH_SEGMENT@36..39
49 NAME_REF@[36; 39) 49 NAME_REF@36..39
50 IDENT@[36; 39) "bar" 50 IDENT@36..39 "bar"
51 BANG@[39; 40) "!" 51 BANG@39..40 "!"
52 TOKEN_TREE@[40; 42) 52 TOKEN_TREE@40..42
53 L_CURLY@[40; 41) "{" 53 L_CURLY@40..41 "{"
54 R_CURLY@[41; 42) "}" 54 R_CURLY@41..42 "}"
55 WHITESPACE@[42; 47) "\n " 55 WHITESPACE@42..47 "\n "
56 EXPR_STMT@[47; 59) 56 EXPR_STMT@47..59
57 ATTR@[47; 51) 57 ATTR@47..51
58 POUND@[47; 48) "#" 58 POUND@47..48 "#"
59 L_BRACK@[48; 49) "[" 59 L_BRACK@48..49 "["
60 PATH@[49; 50) 60 PATH@49..50
61 PATH_SEGMENT@[49; 50) 61 PATH_SEGMENT@49..50
62 NAME_REF@[49; 50) 62 NAME_REF@49..50
63 IDENT@[49; 50) "C" 63 IDENT@49..50 "C"
64 R_BRACK@[50; 51) "]" 64 R_BRACK@50..51 "]"
65 WHITESPACE@[51; 52) " " 65 WHITESPACE@51..52 " "
66 ATTR@[52; 56) 66 ATTR@52..56
67 POUND@[52; 53) "#" 67 POUND@52..53 "#"
68 L_BRACK@[53; 54) "[" 68 L_BRACK@53..54 "["
69 PATH@[54; 55) 69 PATH@54..55
70 PATH_SEGMENT@[54; 55) 70 PATH_SEGMENT@54..55
71 NAME_REF@[54; 55) 71 NAME_REF@54..55
72 IDENT@[54; 55) "D" 72 IDENT@54..55 "D"
73 R_BRACK@[55; 56) "]" 73 R_BRACK@55..56 "]"
74 WHITESPACE@[56; 57) " " 74 WHITESPACE@56..57 " "
75 BLOCK_EXPR@[57; 59) 75 BLOCK_EXPR@57..59
76 BLOCK@[57; 59) 76 BLOCK@57..59
77 L_CURLY@[57; 58) "{" 77 L_CURLY@57..58 "{"
78 R_CURLY@[58; 59) "}" 78 R_CURLY@58..59 "}"
79 WHITESPACE@[59; 64) "\n " 79 WHITESPACE@59..64 "\n "
80 EXPR_STMT@[64; 79) 80 EXPR_STMT@64..79
81 ATTR@[64; 68) 81 ATTR@64..68
82 POUND@[64; 65) "#" 82 POUND@64..65 "#"
83 L_BRACK@[65; 66) "[" 83 L_BRACK@65..66 "["
84 PATH@[66; 67) 84 PATH@66..67
85 PATH_SEGMENT@[66; 67) 85 PATH_SEGMENT@66..67
86 NAME_REF@[66; 67) 86 NAME_REF@66..67
87 IDENT@[66; 67) "D" 87 IDENT@66..67 "D"
88 R_BRACK@[67; 68) "]" 88 R_BRACK@67..68 "]"
89 WHITESPACE@[68; 69) " " 89 WHITESPACE@68..69 " "
90 RETURN_EXPR@[69; 78) 90 RETURN_EXPR@69..78
91 RETURN_KW@[69; 75) "return" 91 RETURN_KW@69..75 "return"
92 WHITESPACE@[75; 76) " " 92 WHITESPACE@75..76 " "
93 TUPLE_EXPR@[76; 78) 93 TUPLE_EXPR@76..78
94 L_PAREN@[76; 77) "(" 94 L_PAREN@76..77 "("
95 R_PAREN@[77; 78) ")" 95 R_PAREN@77..78 ")"
96 SEMICOLON@[78; 79) ";" 96 SEMICOLON@78..79 ";"
97 WHITESPACE@[79; 80) "\n" 97 WHITESPACE@79..80 "\n"
98 R_CURLY@[80; 81) "}" 98 R_CURLY@80..81 "}"
99 WHITESPACE@[81; 82) "\n" 99 WHITESPACE@81..82 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast
index 9bc6be62d..19c47ea25 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0127_attr_on_last_expr_in_block.rast
@@ -1,59 +1,59 @@
1SOURCE_FILE@[0; 47) 1SOURCE_FILE@0..47
2 FN_DEF@[0; 46) 2 FN_DEF@0..46
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 46) 11 BLOCK_EXPR@9..46
12 BLOCK@[9; 46) 12 BLOCK@9..46
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 31) 15 EXPR_STMT@15..31
16 BLOCK_EXPR@[15; 31) 16 BLOCK_EXPR@15..31
17 BLOCK@[15; 31) 17 BLOCK@15..31
18 L_CURLY@[15; 16) "{" 18 L_CURLY@15..16 "{"
19 WHITESPACE@[16; 17) " " 19 WHITESPACE@16..17 " "
20 TRY_EXPR@[17; 29) 20 TRY_EXPR@17..29
21 ATTR@[17; 21) 21 ATTR@17..21
22 POUND@[17; 18) "#" 22 POUND@17..18 "#"
23 L_BRACK@[18; 19) "[" 23 L_BRACK@18..19 "["
24 PATH@[19; 20) 24 PATH@19..20
25 PATH_SEGMENT@[19; 20) 25 PATH_SEGMENT@19..20
26 NAME_REF@[19; 20) 26 NAME_REF@19..20
27 IDENT@[19; 20) "A" 27 IDENT@19..20 "A"
28 R_BRACK@[20; 21) "]" 28 R_BRACK@20..21 "]"
29 WHITESPACE@[21; 22) " " 29 WHITESPACE@21..22 " "
30 MACRO_CALL@[22; 28) 30 MACRO_CALL@22..28
31 PATH@[22; 25) 31 PATH@22..25
32 PATH_SEGMENT@[22; 25) 32 PATH_SEGMENT@22..25
33 NAME_REF@[22; 25) 33 NAME_REF@22..25
34 IDENT@[22; 25) "bar" 34 IDENT@22..25 "bar"
35 BANG@[25; 26) "!" 35 BANG@25..26 "!"
36 TOKEN_TREE@[26; 28) 36 TOKEN_TREE@26..28
37 L_PAREN@[26; 27) "(" 37 L_PAREN@26..27 "("
38 R_PAREN@[27; 28) ")" 38 R_PAREN@27..28 ")"
39 QUESTION@[28; 29) "?" 39 QUESTION@28..29 "?"
40 WHITESPACE@[29; 30) " " 40 WHITESPACE@29..30 " "
41 R_CURLY@[30; 31) "}" 41 R_CURLY@30..31 "}"
42 WHITESPACE@[31; 36) "\n " 42 WHITESPACE@31..36 "\n "
43 REF_EXPR@[36; 44) 43 REF_EXPR@36..44
44 ATTR@[36; 40) 44 ATTR@36..40
45 POUND@[36; 37) "#" 45 POUND@36..37 "#"
46 L_BRACK@[37; 38) "[" 46 L_BRACK@37..38 "["
47 PATH@[38; 39) 47 PATH@38..39
48 PATH_SEGMENT@[38; 39) 48 PATH_SEGMENT@38..39
49 NAME_REF@[38; 39) 49 NAME_REF@38..39
50 IDENT@[38; 39) "B" 50 IDENT@38..39 "B"
51 R_BRACK@[39; 40) "]" 51 R_BRACK@39..40 "]"
52 WHITESPACE@[40; 41) " " 52 WHITESPACE@40..41 " "
53 AMP@[41; 42) "&" 53 AMP@41..42 "&"
54 TUPLE_EXPR@[42; 44) 54 TUPLE_EXPR@42..44
55 L_PAREN@[42; 43) "(" 55 L_PAREN@42..43 "("
56 R_PAREN@[43; 44) ")" 56 R_PAREN@43..44 ")"
57 WHITESPACE@[44; 45) "\n" 57 WHITESPACE@44..45 "\n"
58 R_CURLY@[45; 46) "}" 58 R_CURLY@45..46 "}"
59 WHITESPACE@[46; 47) "\n" 59 WHITESPACE@46..47 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast b/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast
index 8a972cdb2..5630b20af 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0128_combined_fns.rast
@@ -1,37 +1,37 @@
1SOURCE_FILE@[0; 50) 1SOURCE_FILE@0..50
2 FN_DEF@[0; 24) 2 FN_DEF@0..24
3 ASYNC_KW@[0; 5) "async" 3 ASYNC_KW@0..5 "async"
4 WHITESPACE@[5; 6) " " 4 WHITESPACE@5..6 " "
5 UNSAFE_KW@[6; 12) "unsafe" 5 UNSAFE_KW@6..12 "unsafe"
6 WHITESPACE@[12; 13) " " 6 WHITESPACE@12..13 " "
7 FN_KW@[13; 15) "fn" 7 FN_KW@13..15 "fn"
8 WHITESPACE@[15; 16) " " 8 WHITESPACE@15..16 " "
9 NAME@[16; 19) 9 NAME@16..19
10 IDENT@[16; 19) "foo" 10 IDENT@16..19 "foo"
11 PARAM_LIST@[19; 21) 11 PARAM_LIST@19..21
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_EXPR@[22; 24) 15 BLOCK_EXPR@22..24
16 BLOCK@[22; 24) 16 BLOCK@22..24
17 L_CURLY@[22; 23) "{" 17 L_CURLY@22..23 "{"
18 R_CURLY@[23; 24) "}" 18 R_CURLY@23..24 "}"
19 WHITESPACE@[24; 25) "\n" 19 WHITESPACE@24..25 "\n"
20 FN_DEF@[25; 49) 20 FN_DEF@25..49
21 CONST_KW@[25; 30) "const" 21 CONST_KW@25..30 "const"
22 WHITESPACE@[30; 31) " " 22 WHITESPACE@30..31 " "
23 UNSAFE_KW@[31; 37) "unsafe" 23 UNSAFE_KW@31..37 "unsafe"
24 WHITESPACE@[37; 38) " " 24 WHITESPACE@37..38 " "
25 FN_KW@[38; 40) "fn" 25 FN_KW@38..40 "fn"
26 WHITESPACE@[40; 41) " " 26 WHITESPACE@40..41 " "
27 NAME@[41; 44) 27 NAME@41..44
28 IDENT@[41; 44) "bar" 28 IDENT@41..44 "bar"
29 PARAM_LIST@[44; 46) 29 PARAM_LIST@44..46
30 L_PAREN@[44; 45) "(" 30 L_PAREN@44..45 "("
31 R_PAREN@[45; 46) ")" 31 R_PAREN@45..46 ")"
32 WHITESPACE@[46; 47) " " 32 WHITESPACE@46..47 " "
33 BLOCK_EXPR@[47; 49) 33 BLOCK_EXPR@47..49
34 BLOCK@[47; 49) 34 BLOCK@47..49
35 L_CURLY@[47; 48) "{" 35 L_CURLY@47..48 "{"
36 R_CURLY@[48; 49) "}" 36 R_CURLY@48..49 "}"
37 WHITESPACE@[49; 50) "\n" 37 WHITESPACE@49..50 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast
index 31481d2f9..4946ee050 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0129_marco_pat.rast
@@ -1,37 +1,37 @@
1SOURCE_FILE@[0; 33) 1SOURCE_FILE@0..33
2 FN_DEF@[0; 32) 2 FN_DEF@0..32
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 32) 11 BLOCK_EXPR@10..32
12 BLOCK@[10; 32) 12 BLOCK@10..32
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 LET_STMT@[16; 30) 15 LET_STMT@16..30
16 LET_KW@[16; 19) "let" 16 LET_KW@16..19 "let"
17 WHITESPACE@[19; 20) " " 17 WHITESPACE@19..20 " "
18 MACRO_PAT@[20; 25) 18 MACRO_PAT@20..25
19 MACRO_CALL@[20; 25) 19 MACRO_CALL@20..25
20 PATH@[20; 21) 20 PATH@20..21
21 PATH_SEGMENT@[20; 21) 21 PATH_SEGMENT@20..21
22 NAME_REF@[20; 21) 22 NAME_REF@20..21
23 IDENT@[20; 21) "m" 23 IDENT@20..21 "m"
24 BANG@[21; 22) "!" 24 BANG@21..22 "!"
25 TOKEN_TREE@[22; 25) 25 TOKEN_TREE@22..25
26 L_PAREN@[22; 23) "(" 26 L_PAREN@22..23 "("
27 IDENT@[23; 24) "x" 27 IDENT@23..24 "x"
28 R_PAREN@[24; 25) ")" 28 R_PAREN@24..25 ")"
29 WHITESPACE@[25; 26) " " 29 WHITESPACE@25..26 " "
30 EQ@[26; 27) "=" 30 EQ@26..27 "="
31 WHITESPACE@[27; 28) " " 31 WHITESPACE@27..28 " "
32 LITERAL@[28; 29) 32 LITERAL@28..29
33 INT_NUMBER@[28; 29) "0" 33 INT_NUMBER@28..29 "0"
34 SEMICOLON@[29; 30) ";" 34 SEMICOLON@29..30 ";"
35 WHITESPACE@[30; 31) "\n" 35 WHITESPACE@30..31 "\n"
36 R_CURLY@[31; 32) "}" 36 R_CURLY@31..32 "}"
37 WHITESPACE@[32; 33) "\n" 37 WHITESPACE@32..33 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast
index 1f2690c00..18fdd9dc9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_let_stmt.rast
@@ -1,129 +1,129 @@
1SOURCE_FILE@[0; 135) 1SOURCE_FILE@0..135
2 FN_DEF@[0; 134) 2 FN_DEF@0..134
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 134) 11 BLOCK_EXPR@9..134
12 BLOCK@[9; 134) 12 BLOCK@9..134
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 21) 15 LET_STMT@15..21
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 BIND_PAT@[19; 20) 18 BIND_PAT@19..20
19 NAME@[19; 20) 19 NAME@19..20
20 IDENT@[19; 20) "a" 20 IDENT@19..20 "a"
21 SEMICOLON@[20; 21) ";" 21 SEMICOLON@20..21 ";"
22 WHITESPACE@[21; 26) "\n " 22 WHITESPACE@21..26 "\n "
23 LET_STMT@[26; 37) 23 LET_STMT@26..37
24 LET_KW@[26; 29) "let" 24 LET_KW@26..29 "let"
25 WHITESPACE@[29; 30) " " 25 WHITESPACE@29..30 " "
26 BIND_PAT@[30; 31) 26 BIND_PAT@30..31
27 NAME@[30; 31) 27 NAME@30..31
28 IDENT@[30; 31) "b" 28 IDENT@30..31 "b"
29 COLON@[31; 32) ":" 29 COLON@31..32 ":"
30 WHITESPACE@[32; 33) " " 30 WHITESPACE@32..33 " "
31 PATH_TYPE@[33; 36) 31 PATH_TYPE@33..36
32 PATH@[33; 36) 32 PATH@33..36
33 PATH_SEGMENT@[33; 36) 33 PATH_SEGMENT@33..36
34 NAME_REF@[33; 36) 34 NAME_REF@33..36
35 IDENT@[33; 36) "i32" 35 IDENT@33..36 "i32"
36 SEMICOLON@[36; 37) ";" 36 SEMICOLON@36..37 ";"
37 WHITESPACE@[37; 42) "\n " 37 WHITESPACE@37..42 "\n "
38 LET_STMT@[42; 53) 38 LET_STMT@42..53
39 LET_KW@[42; 45) "let" 39 LET_KW@42..45 "let"
40 WHITESPACE@[45; 46) " " 40 WHITESPACE@45..46 " "
41 BIND_PAT@[46; 47) 41 BIND_PAT@46..47
42 NAME@[46; 47) 42 NAME@46..47
43 IDENT@[46; 47) "c" 43 IDENT@46..47 "c"
44 WHITESPACE@[47; 48) " " 44 WHITESPACE@47..48 " "
45 EQ@[48; 49) "=" 45 EQ@48..49 "="
46 WHITESPACE@[49; 50) " " 46 WHITESPACE@49..50 " "
47 LITERAL@[50; 52) 47 LITERAL@50..52
48 INT_NUMBER@[50; 52) "92" 48 INT_NUMBER@50..52 "92"
49 SEMICOLON@[52; 53) ";" 49 SEMICOLON@52..53 ";"
50 WHITESPACE@[53; 58) "\n " 50 WHITESPACE@53..58 "\n "
51 LET_STMT@[58; 74) 51 LET_STMT@58..74
52 LET_KW@[58; 61) "let" 52 LET_KW@58..61 "let"
53 WHITESPACE@[61; 62) " " 53 WHITESPACE@61..62 " "
54 BIND_PAT@[62; 63) 54 BIND_PAT@62..63
55 NAME@[62; 63) 55 NAME@62..63
56 IDENT@[62; 63) "d" 56 IDENT@62..63 "d"
57 COLON@[63; 64) ":" 57 COLON@63..64 ":"
58 WHITESPACE@[64; 65) " " 58 WHITESPACE@64..65 " "
59 PATH_TYPE@[65; 68) 59 PATH_TYPE@65..68
60 PATH@[65; 68) 60 PATH@65..68
61 PATH_SEGMENT@[65; 68) 61 PATH_SEGMENT@65..68
62 NAME_REF@[65; 68) 62 NAME_REF@65..68
63 IDENT@[65; 68) "i32" 63 IDENT@65..68 "i32"
64 WHITESPACE@[68; 69) " " 64 WHITESPACE@68..69 " "
65 EQ@[69; 70) "=" 65 EQ@69..70 "="
66 WHITESPACE@[70; 71) " " 66 WHITESPACE@70..71 " "
67 LITERAL@[71; 73) 67 LITERAL@71..73
68 INT_NUMBER@[71; 73) "92" 68 INT_NUMBER@71..73 "92"
69 SEMICOLON@[73; 74) ";" 69 SEMICOLON@73..74 ";"
70 WHITESPACE@[74; 79) "\n " 70 WHITESPACE@74..79 "\n "
71 LET_STMT@[79; 88) 71 LET_STMT@79..88
72 LET_KW@[79; 82) "let" 72 LET_KW@79..82 "let"
73 WHITESPACE@[82; 83) " " 73 WHITESPACE@82..83 " "
74 BIND_PAT@[83; 84) 74 BIND_PAT@83..84
75 NAME@[83; 84) 75 NAME@83..84
76 IDENT@[83; 84) "e" 76 IDENT@83..84 "e"
77 COLON@[84; 85) ":" 77 COLON@84..85 ":"
78 WHITESPACE@[85; 86) " " 78 WHITESPACE@85..86 " "
79 NEVER_TYPE@[86; 87) 79 NEVER_TYPE@86..87
80 BANG@[86; 87) "!" 80 BANG@86..87 "!"
81 SEMICOLON@[87; 88) ";" 81 SEMICOLON@87..88 ";"
82 WHITESPACE@[88; 93) "\n " 82 WHITESPACE@88..93 "\n "
83 LET_STMT@[93; 107) 83 LET_STMT@93..107
84 LET_KW@[93; 96) "let" 84 LET_KW@93..96 "let"
85 WHITESPACE@[96; 97) " " 85 WHITESPACE@96..97 " "
86 PLACEHOLDER_PAT@[97; 98) 86 PLACEHOLDER_PAT@97..98
87 UNDERSCORE@[97; 98) "_" 87 UNDERSCORE@97..98 "_"
88 COLON@[98; 99) ":" 88 COLON@98..99 ":"
89 WHITESPACE@[99; 100) " " 89 WHITESPACE@99..100 " "
90 NEVER_TYPE@[100; 101) 90 NEVER_TYPE@100..101
91 BANG@[100; 101) "!" 91 BANG@100..101 "!"
92 WHITESPACE@[101; 102) " " 92 WHITESPACE@101..102 " "
93 EQ@[102; 103) "=" 93 EQ@102..103 "="
94 WHITESPACE@[103; 104) " " 94 WHITESPACE@103..104 " "
95 BLOCK_EXPR@[104; 106) 95 BLOCK_EXPR@104..106
96 BLOCK@[104; 106) 96 BLOCK@104..106
97 L_CURLY@[104; 105) "{" 97 L_CURLY@104..105 "{"
98 R_CURLY@[105; 106) "}" 98 R_CURLY@105..106 "}"
99 SEMICOLON@[106; 107) ";" 99 SEMICOLON@106..107 ";"
100 WHITESPACE@[107; 112) "\n " 100 WHITESPACE@107..112 "\n "
101 LET_STMT@[112; 132) 101 LET_STMT@112..132
102 LET_KW@[112; 115) "let" 102 LET_KW@112..115 "let"
103 WHITESPACE@[115; 116) " " 103 WHITESPACE@115..116 " "
104 BIND_PAT@[116; 117) 104 BIND_PAT@116..117
105 NAME@[116; 117) 105 NAME@116..117
106 IDENT@[116; 117) "f" 106 IDENT@116..117 "f"
107 WHITESPACE@[117; 118) " " 107 WHITESPACE@117..118 " "
108 EQ@[118; 119) "=" 108 EQ@118..119 "="
109 WHITESPACE@[119; 120) " " 109 WHITESPACE@119..120 " "
110 LAMBDA_EXPR@[120; 131) 110 LAMBDA_EXPR@120..131
111 ATTR@[120; 127) 111 ATTR@120..127
112 POUND@[120; 121) "#" 112 POUND@120..121 "#"
113 L_BRACK@[121; 122) "[" 113 L_BRACK@121..122 "["
114 PATH@[122; 126) 114 PATH@122..126
115 PATH_SEGMENT@[122; 126) 115 PATH_SEGMENT@122..126
116 NAME_REF@[122; 126) 116 NAME_REF@122..126
117 IDENT@[122; 126) "attr" 117 IDENT@122..126 "attr"
118 R_BRACK@[126; 127) "]" 118 R_BRACK@126..127 "]"
119 PARAM_LIST@[127; 129) 119 PARAM_LIST@127..129
120 PIPE@[127; 128) "|" 120 PIPE@127..128 "|"
121 PIPE@[128; 129) "|" 121 PIPE@128..129 "|"
122 BLOCK_EXPR@[129; 131) 122 BLOCK_EXPR@129..131
123 BLOCK@[129; 131) 123 BLOCK@129..131
124 L_CURLY@[129; 130) "{" 124 L_CURLY@129..130 "{"
125 R_CURLY@[130; 131) "}" 125 R_CURLY@130..131 "}"
126 SEMICOLON@[131; 132) ";" 126 SEMICOLON@131..132 ";"
127 WHITESPACE@[132; 133) "\n" 127 WHITESPACE@132..133 "\n"
128 R_CURLY@[133; 134) "}" 128 R_CURLY@133..134 "}"
129 WHITESPACE@[134; 135) "\n" 129 WHITESPACE@134..135 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast
index b96991035..01fffd7b0 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0130_try_block_expr.rast
@@ -1,33 +1,33 @@
1SOURCE_FILE@[0; 33) 1SOURCE_FILE@0..33
2 FN_DEF@[0; 32) 2 FN_DEF@0..32
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 32) 11 BLOCK_EXPR@9..32
12 BLOCK@[9; 32) 12 BLOCK@9..32
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 30) 15 LET_STMT@15..30
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 PLACEHOLDER_PAT@[19; 20) 18 PLACEHOLDER_PAT@19..20
19 UNDERSCORE@[19; 20) "_" 19 UNDERSCORE@19..20 "_"
20 WHITESPACE@[20; 21) " " 20 WHITESPACE@20..21 " "
21 EQ@[21; 22) "=" 21 EQ@21..22 "="
22 WHITESPACE@[22; 23) " " 22 WHITESPACE@22..23 " "
23 TRY_EXPR@[23; 29) 23 TRY_EXPR@23..29
24 TRY_KW@[23; 26) "try" 24 TRY_KW@23..26 "try"
25 WHITESPACE@[26; 27) " " 25 WHITESPACE@26..27 " "
26 BLOCK_EXPR@[27; 29) 26 BLOCK_EXPR@27..29
27 BLOCK@[27; 29) 27 BLOCK@27..29
28 L_CURLY@[27; 28) "{" 28 L_CURLY@27..28 "{"
29 R_CURLY@[28; 29) "}" 29 R_CURLY@28..29 "}"
30 SEMICOLON@[29; 30) ";" 30 SEMICOLON@29..30 ";"
31 WHITESPACE@[30; 31) "\n" 31 WHITESPACE@30..31 "\n"
32 R_CURLY@[31; 32) "}" 32 R_CURLY@31..32 "}"
33 WHITESPACE@[32; 33) "\n" 33 WHITESPACE@32..33 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0131_existential_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0131_existential_type.rast
index ed3d8fb0b..4a1c2b3a4 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0131_existential_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0131_existential_type.rast
@@ -1,31 +1,31 @@
1SOURCE_FILE@[0; 37) 1SOURCE_FILE@0..37
2 TYPE_ALIAS_DEF@[0; 36) 2 TYPE_ALIAS_DEF@0..36
3 EXISTENTIAL_KW@[0; 11) "existential" 3 EXISTENTIAL_KW@0..11 "existential"
4 WHITESPACE@[11; 12) " " 4 WHITESPACE@11..12 " "
5 TYPE_KW@[12; 16) "type" 5 TYPE_KW@12..16 "type"
6 WHITESPACE@[16; 17) " " 6 WHITESPACE@16..17 " "
7 NAME@[17; 20) 7 NAME@17..20
8 IDENT@[17; 20) "Foo" 8 IDENT@17..20 "Foo"
9 COLON@[20; 21) ":" 9 COLON@20..21 ":"
10 WHITESPACE@[21; 22) " " 10 WHITESPACE@21..22 " "
11 TYPE_BOUND_LIST@[22; 35) 11 TYPE_BOUND_LIST@22..35
12 TYPE_BOUND@[22; 35) 12 TYPE_BOUND@22..35
13 PATH_TYPE@[22; 35) 13 PATH_TYPE@22..35
14 PATH@[22; 35) 14 PATH@22..35
15 PATH_SEGMENT@[22; 35) 15 PATH_SEGMENT@22..35
16 NAME_REF@[22; 24) 16 NAME_REF@22..24
17 IDENT@[22; 24) "Fn" 17 IDENT@22..24 "Fn"
18 PARAM_LIST@[24; 26) 18 PARAM_LIST@24..26
19 L_PAREN@[24; 25) "(" 19 L_PAREN@24..25 "("
20 R_PAREN@[25; 26) ")" 20 R_PAREN@25..26 ")"
21 WHITESPACE@[26; 27) " " 21 WHITESPACE@26..27 " "
22 RET_TYPE@[27; 35) 22 RET_TYPE@27..35
23 THIN_ARROW@[27; 29) "->" 23 THIN_ARROW@27..29 "->"
24 WHITESPACE@[29; 30) " " 24 WHITESPACE@29..30 " "
25 PATH_TYPE@[30; 35) 25 PATH_TYPE@30..35
26 PATH@[30; 35) 26 PATH@30..35
27 PATH_SEGMENT@[30; 35) 27 PATH_SEGMENT@30..35
28 NAME_REF@[30; 35) 28 NAME_REF@30..35
29 IDENT@[30; 35) "usize" 29 IDENT@30..35 "usize"
30 SEMICOLON@[35; 36) ";" 30 SEMICOLON@35..36 ";"
31 WHITESPACE@[36; 37) "\n" 31 WHITESPACE@36..37 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast
index c392a7d84..498b3121e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0132_box_expr.rast
@@ -1,90 +1,90 @@
1SOURCE_FILE@[0; 106) 1SOURCE_FILE@0..106
2 FN_DEF@[0; 105) 2 FN_DEF@0..105
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 105) 11 BLOCK_EXPR@9..105
12 BLOCK@[9; 105) 12 BLOCK@9..105
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 32) 15 LET_STMT@15..32
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 BIND_PAT@[19; 20) 18 BIND_PAT@19..20
19 NAME@[19; 20) 19 NAME@19..20
20 IDENT@[19; 20) "x" 20 IDENT@19..20 "x"
21 WHITESPACE@[20; 21) " " 21 WHITESPACE@20..21 " "
22 EQ@[21; 22) "=" 22 EQ@21..22 "="
23 WHITESPACE@[22; 23) " " 23 WHITESPACE@22..23 " "
24 BOX_EXPR@[23; 31) 24 BOX_EXPR@23..31
25 BOX_KW@[23; 26) "box" 25 BOX_KW@23..26 "box"
26 WHITESPACE@[26; 27) " " 26 WHITESPACE@26..27 " "
27 LITERAL@[27; 31) 27 LITERAL@27..31
28 INT_NUMBER@[27; 31) "1i32" 28 INT_NUMBER@27..31 "1i32"
29 SEMICOLON@[31; 32) ";" 29 SEMICOLON@31..32 ";"
30 WHITESPACE@[32; 37) "\n " 30 WHITESPACE@32..37 "\n "
31 LET_STMT@[37; 66) 31 LET_STMT@37..66
32 LET_KW@[37; 40) "let" 32 LET_KW@37..40 "let"
33 WHITESPACE@[40; 41) " " 33 WHITESPACE@40..41 " "
34 BIND_PAT@[41; 42) 34 BIND_PAT@41..42
35 NAME@[41; 42) 35 NAME@41..42
36 IDENT@[41; 42) "y" 36 IDENT@41..42 "y"
37 WHITESPACE@[42; 43) " " 37 WHITESPACE@42..43 " "
38 EQ@[43; 44) "=" 38 EQ@43..44 "="
39 WHITESPACE@[44; 45) " " 39 WHITESPACE@44..45 " "
40 TUPLE_EXPR@[45; 65) 40 TUPLE_EXPR@45..65
41 L_PAREN@[45; 46) "(" 41 L_PAREN@45..46 "("
42 BOX_EXPR@[46; 54) 42 BOX_EXPR@46..54
43 BOX_KW@[46; 49) "box" 43 BOX_KW@46..49 "box"
44 WHITESPACE@[49; 50) " " 44 WHITESPACE@49..50 " "
45 LITERAL@[50; 54) 45 LITERAL@50..54
46 INT_NUMBER@[50; 54) "1i32" 46 INT_NUMBER@50..54 "1i32"
47 COMMA@[54; 55) "," 47 COMMA@54..55 ","
48 WHITESPACE@[55; 56) " " 48 WHITESPACE@55..56 " "
49 BOX_EXPR@[56; 64) 49 BOX_EXPR@56..64
50 BOX_KW@[56; 59) "box" 50 BOX_KW@56..59 "box"
51 WHITESPACE@[59; 60) " " 51 WHITESPACE@59..60 " "
52 LITERAL@[60; 64) 52 LITERAL@60..64
53 INT_NUMBER@[60; 64) "2i32" 53 INT_NUMBER@60..64 "2i32"
54 R_PAREN@[64; 65) ")" 54 R_PAREN@64..65 ")"
55 SEMICOLON@[65; 66) ";" 55 SEMICOLON@65..66 ";"
56 WHITESPACE@[66; 71) "\n " 56 WHITESPACE@66..71 "\n "
57 LET_STMT@[71; 103) 57 LET_STMT@71..103
58 LET_KW@[71; 74) "let" 58 LET_KW@71..74 "let"
59 WHITESPACE@[74; 75) " " 59 WHITESPACE@74..75 " "
60 BIND_PAT@[75; 76) 60 BIND_PAT@75..76
61 NAME@[75; 76) 61 NAME@75..76
62 IDENT@[75; 76) "z" 62 IDENT@75..76 "z"
63 WHITESPACE@[76; 77) " " 63 WHITESPACE@76..77 " "
64 EQ@[77; 78) "=" 64 EQ@77..78 "="
65 WHITESPACE@[78; 79) " " 65 WHITESPACE@78..79 " "
66 CALL_EXPR@[79; 102) 66 CALL_EXPR@79..102
67 PATH_EXPR@[79; 82) 67 PATH_EXPR@79..82
68 PATH@[79; 82) 68 PATH@79..82
69 PATH_SEGMENT@[79; 82) 69 PATH_SEGMENT@79..82
70 NAME_REF@[79; 82) 70 NAME_REF@79..82
71 IDENT@[79; 82) "Foo" 71 IDENT@79..82 "Foo"
72 ARG_LIST@[82; 102) 72 ARG_LIST@82..102
73 L_PAREN@[82; 83) "(" 73 L_PAREN@82..83 "("
74 BOX_EXPR@[83; 91) 74 BOX_EXPR@83..91
75 BOX_KW@[83; 86) "box" 75 BOX_KW@83..86 "box"
76 WHITESPACE@[86; 87) " " 76 WHITESPACE@86..87 " "
77 LITERAL@[87; 91) 77 LITERAL@87..91
78 INT_NUMBER@[87; 91) "1i32" 78 INT_NUMBER@87..91 "1i32"
79 COMMA@[91; 92) "," 79 COMMA@91..92 ","
80 WHITESPACE@[92; 93) " " 80 WHITESPACE@92..93 " "
81 BOX_EXPR@[93; 101) 81 BOX_EXPR@93..101
82 BOX_KW@[93; 96) "box" 82 BOX_KW@93..96 "box"
83 WHITESPACE@[96; 97) " " 83 WHITESPACE@96..97 " "
84 LITERAL@[97; 101) 84 LITERAL@97..101
85 INT_NUMBER@[97; 101) "2i32" 85 INT_NUMBER@97..101 "2i32"
86 R_PAREN@[101; 102) ")" 86 R_PAREN@101..102 ")"
87 SEMICOLON@[102; 103) ";" 87 SEMICOLON@102..103 ";"
88 WHITESPACE@[103; 104) "\n" 88 WHITESPACE@103..104 "\n"
89 R_CURLY@[104; 105) "}" 89 R_CURLY@104..105 "}"
90 WHITESPACE@[105; 106) "\n" 90 WHITESPACE@105..106 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast b/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast
index cff03fcf3..db58a928e 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0132_default_fn_type.rast
@@ -1,56 +1,56 @@
1SOURCE_FILE@[0; 69) 1SOURCE_FILE@0..69
2 IMPL_DEF@[0; 68) 2 IMPL_DEF@0..68
3 IMPL_KW@[0; 4) "impl" 3 IMPL_KW@0..4 "impl"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 PATH_TYPE@[5; 6) 5 PATH_TYPE@5..6
6 PATH@[5; 6) 6 PATH@5..6
7 PATH_SEGMENT@[5; 6) 7 PATH_SEGMENT@5..6
8 NAME_REF@[5; 6) 8 NAME_REF@5..6
9 IDENT@[5; 6) "T" 9 IDENT@5..6 "T"
10 WHITESPACE@[6; 7) " " 10 WHITESPACE@6..7 " "
11 FOR_KW@[7; 10) "for" 11 FOR_KW@7..10 "for"
12 WHITESPACE@[10; 11) " " 12 WHITESPACE@10..11 " "
13 PATH_TYPE@[11; 14) 13 PATH_TYPE@11..14
14 PATH@[11; 14) 14 PATH@11..14
15 PATH_SEGMENT@[11; 14) 15 PATH_SEGMENT@11..14
16 NAME_REF@[11; 14) 16 NAME_REF@11..14
17 IDENT@[11; 14) "Foo" 17 IDENT@11..14 "Foo"
18 WHITESPACE@[14; 15) " " 18 WHITESPACE@14..15 " "
19 ITEM_LIST@[15; 68) 19 ITEM_LIST@15..68
20 L_CURLY@[15; 16) "{" 20 L_CURLY@15..16 "{"
21 WHITESPACE@[16; 21) "\n " 21 WHITESPACE@16..21 "\n "
22 TYPE_ALIAS_DEF@[21; 42) 22 TYPE_ALIAS_DEF@21..42
23 DEFAULT_KW@[21; 28) "default" 23 DEFAULT_KW@21..28 "default"
24 WHITESPACE@[28; 29) " " 24 WHITESPACE@28..29 " "
25 TYPE_KW@[29; 33) "type" 25 TYPE_KW@29..33 "type"
26 WHITESPACE@[33; 34) " " 26 WHITESPACE@33..34 " "
27 NAME@[34; 35) 27 NAME@34..35
28 IDENT@[34; 35) "T" 28 IDENT@34..35 "T"
29 WHITESPACE@[35; 36) " " 29 WHITESPACE@35..36 " "
30 EQ@[36; 37) "=" 30 EQ@36..37 "="
31 WHITESPACE@[37; 38) " " 31 WHITESPACE@37..38 " "
32 PATH_TYPE@[38; 41) 32 PATH_TYPE@38..41
33 PATH@[38; 41) 33 PATH@38..41
34 PATH_SEGMENT@[38; 41) 34 PATH_SEGMENT@38..41
35 NAME_REF@[38; 41) 35 NAME_REF@38..41
36 IDENT@[38; 41) "Bar" 36 IDENT@38..41 "Bar"
37 SEMICOLON@[41; 42) ";" 37 SEMICOLON@41..42 ";"
38 WHITESPACE@[42; 47) "\n " 38 WHITESPACE@42..47 "\n "
39 FN_DEF@[47; 66) 39 FN_DEF@47..66
40 DEFAULT_KW@[47; 54) "default" 40 DEFAULT_KW@47..54 "default"
41 WHITESPACE@[54; 55) " " 41 WHITESPACE@54..55 " "
42 FN_KW@[55; 57) "fn" 42 FN_KW@55..57 "fn"
43 WHITESPACE@[57; 58) " " 43 WHITESPACE@57..58 " "
44 NAME@[58; 61) 44 NAME@58..61
45 IDENT@[58; 61) "foo" 45 IDENT@58..61 "foo"
46 PARAM_LIST@[61; 63) 46 PARAM_LIST@61..63
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_EXPR@[64; 66) 50 BLOCK_EXPR@64..66
51 BLOCK@[64; 66) 51 BLOCK@64..66
52 L_CURLY@[64; 65) "{" 52 L_CURLY@64..65 "{"
53 R_CURLY@[65; 66) "}" 53 R_CURLY@65..66 "}"
54 WHITESPACE@[66; 67) "\n" 54 WHITESPACE@66..67 "\n"
55 R_CURLY@[67; 68) "}" 55 R_CURLY@67..68 "}"
56 WHITESPACE@[68; 69) "\n" 56 WHITESPACE@68..69 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast
index f66f32370..4ca554ef8 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0134_nocontentexpr_after_item.rast
@@ -1,64 +1,64 @@
1SOURCE_FILE@[0; 111) 1SOURCE_FILE@0..111
2 FN_DEF@[0; 110) 2 FN_DEF@0..110
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 18) 5 NAME@3..18
6 IDENT@[3; 18) "simple_function" 6 IDENT@3..18 "simple_function"
7 PARAM_LIST@[18; 20) 7 PARAM_LIST@18..20
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_EXPR@[21; 110) 11 BLOCK_EXPR@21..110
12 BLOCK@[21; 110) 12 BLOCK@21..110
13 L_CURLY@[21; 22) "{" 13 L_CURLY@21..22 "{"
14 WHITESPACE@[22; 27) "\n " 14 WHITESPACE@22..27 "\n "
15 ENUM_DEF@[27; 75) 15 ENUM_DEF@27..75
16 ENUM_KW@[27; 31) "enum" 16 ENUM_KW@27..31 "enum"
17 WHITESPACE@[31; 32) " " 17 WHITESPACE@31..32 " "
18 NAME@[32; 41) 18 NAME@32..41
19 IDENT@[32; 41) "LocalEnum" 19 IDENT@32..41 "LocalEnum"
20 WHITESPACE@[41; 42) " " 20 WHITESPACE@41..42 " "
21 ENUM_VARIANT_LIST@[42; 75) 21 ENUM_VARIANT_LIST@42..75
22 L_CURLY@[42; 43) "{" 22 L_CURLY@42..43 "{"
23 WHITESPACE@[43; 52) "\n " 23 WHITESPACE@43..52 "\n "
24 ENUM_VARIANT@[52; 55) 24 ENUM_VARIANT@52..55
25 NAME@[52; 55) 25 NAME@52..55
26 IDENT@[52; 55) "One" 26 IDENT@52..55 "One"
27 COMMA@[55; 56) "," 27 COMMA@55..56 ","
28 WHITESPACE@[56; 65) "\n " 28 WHITESPACE@56..65 "\n "
29 ENUM_VARIANT@[65; 68) 29 ENUM_VARIANT@65..68
30 NAME@[65; 68) 30 NAME@65..68
31 IDENT@[65; 68) "Two" 31 IDENT@65..68 "Two"
32 COMMA@[68; 69) "," 32 COMMA@68..69 ","
33 WHITESPACE@[69; 74) "\n " 33 WHITESPACE@69..74 "\n "
34 R_CURLY@[74; 75) "}" 34 R_CURLY@74..75 "}"
35 SEMICOLON@[75; 76) ";" 35 SEMICOLON@75..76 ";"
36 WHITESPACE@[76; 81) "\n " 36 WHITESPACE@76..81 "\n "
37 FN_DEF@[81; 90) 37 FN_DEF@81..90
38 FN_KW@[81; 83) "fn" 38 FN_KW@81..83 "fn"
39 WHITESPACE@[83; 84) " " 39 WHITESPACE@83..84 " "
40 NAME@[84; 85) 40 NAME@84..85
41 IDENT@[84; 85) "f" 41 IDENT@84..85 "f"
42 PARAM_LIST@[85; 87) 42 PARAM_LIST@85..87
43 L_PAREN@[85; 86) "(" 43 L_PAREN@85..86 "("
44 R_PAREN@[86; 87) ")" 44 R_PAREN@86..87 ")"
45 WHITESPACE@[87; 88) " " 45 WHITESPACE@87..88 " "
46 BLOCK_EXPR@[88; 90) 46 BLOCK_EXPR@88..90
47 BLOCK@[88; 90) 47 BLOCK@88..90
48 L_CURLY@[88; 89) "{" 48 L_CURLY@88..89 "{"
49 R_CURLY@[89; 90) "}" 49 R_CURLY@89..90 "}"
50 SEMICOLON@[90; 91) ";" 50 SEMICOLON@90..91 ";"
51 WHITESPACE@[91; 96) "\n " 51 WHITESPACE@91..96 "\n "
52 STRUCT_DEF@[96; 107) 52 STRUCT_DEF@96..107
53 STRUCT_KW@[96; 102) "struct" 53 STRUCT_KW@96..102 "struct"
54 WHITESPACE@[102; 103) " " 54 WHITESPACE@102..103 " "
55 NAME@[103; 104) 55 NAME@103..104
56 IDENT@[103; 104) "S" 56 IDENT@103..104 "S"
57 WHITESPACE@[104; 105) " " 57 WHITESPACE@104..105 " "
58 RECORD_FIELD_DEF_LIST@[105; 107) 58 RECORD_FIELD_DEF_LIST@105..107
59 L_CURLY@[105; 106) "{" 59 L_CURLY@105..106 "{"
60 R_CURLY@[106; 107) "}" 60 R_CURLY@106..107 "}"
61 SEMICOLON@[107; 108) ";" 61 SEMICOLON@107..108 ";"
62 WHITESPACE@[108; 109) "\n" 62 WHITESPACE@108..109 "\n"
63 R_CURLY@[109; 110) "}" 63 R_CURLY@109..110 "}"
64 WHITESPACE@[110; 111) "\n" 64 WHITESPACE@110..111 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast
index 4946e6325..7fa3b9f32 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0137_await_expr.rast
@@ -1,70 +1,70 @@
1SOURCE_FILE@[0; 67) 1SOURCE_FILE@0..67
2 FN_DEF@[0; 66) 2 FN_DEF@0..66
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 66) 11 BLOCK_EXPR@9..66
12 BLOCK@[9; 66) 12 BLOCK@9..66
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 23) 15 EXPR_STMT@15..23
16 AWAIT_EXPR@[15; 22) 16 AWAIT_EXPR@15..22
17 PATH_EXPR@[15; 16) 17 PATH_EXPR@15..16
18 PATH@[15; 16) 18 PATH@15..16
19 PATH_SEGMENT@[15; 16) 19 PATH_SEGMENT@15..16
20 NAME_REF@[15; 16) 20 NAME_REF@15..16
21 IDENT@[15; 16) "x" 21 IDENT@15..16 "x"
22 DOT@[16; 17) "." 22 DOT@16..17 "."
23 AWAIT_KW@[17; 22) "await" 23 AWAIT_KW@17..22 "await"
24 SEMICOLON@[22; 23) ";" 24 SEMICOLON@22..23 ";"
25 WHITESPACE@[23; 28) "\n " 25 WHITESPACE@23..28 "\n "
26 EXPR_STMT@[28; 38) 26 EXPR_STMT@28..38
27 AWAIT_EXPR@[28; 37) 27 AWAIT_EXPR@28..37
28 FIELD_EXPR@[28; 31) 28 FIELD_EXPR@28..31
29 PATH_EXPR@[28; 29) 29 PATH_EXPR@28..29
30 PATH@[28; 29) 30 PATH@28..29
31 PATH_SEGMENT@[28; 29) 31 PATH_SEGMENT@28..29
32 NAME_REF@[28; 29) 32 NAME_REF@28..29
33 IDENT@[28; 29) "x" 33 IDENT@28..29 "x"
34 DOT@[29; 30) "." 34 DOT@29..30 "."
35 NAME_REF@[30; 31) 35 NAME_REF@30..31
36 INT_NUMBER@[30; 31) "0" 36 INT_NUMBER@30..31 "0"
37 DOT@[31; 32) "." 37 DOT@31..32 "."
38 AWAIT_KW@[32; 37) "await" 38 AWAIT_KW@32..37 "await"
39 SEMICOLON@[37; 38) ";" 39 SEMICOLON@37..38 ";"
40 WHITESPACE@[38; 43) "\n " 40 WHITESPACE@38..43 "\n "
41 EXPR_STMT@[43; 64) 41 EXPR_STMT@43..64
42 METHOD_CALL_EXPR@[43; 63) 42 METHOD_CALL_EXPR@43..63
43 TRY_EXPR@[43; 55) 43 TRY_EXPR@43..55
44 AWAIT_EXPR@[43; 54) 44 AWAIT_EXPR@43..54
45 CALL_EXPR@[43; 48) 45 CALL_EXPR@43..48
46 FIELD_EXPR@[43; 46) 46 FIELD_EXPR@43..46
47 PATH_EXPR@[43; 44) 47 PATH_EXPR@43..44
48 PATH@[43; 44) 48 PATH@43..44
49 PATH_SEGMENT@[43; 44) 49 PATH_SEGMENT@43..44
50 NAME_REF@[43; 44) 50 NAME_REF@43..44
51 IDENT@[43; 44) "x" 51 IDENT@43..44 "x"
52 DOT@[44; 45) "." 52 DOT@44..45 "."
53 NAME_REF@[45; 46) 53 NAME_REF@45..46
54 INT_NUMBER@[45; 46) "0" 54 INT_NUMBER@45..46 "0"
55 ARG_LIST@[46; 48) 55 ARG_LIST@46..48
56 L_PAREN@[46; 47) "(" 56 L_PAREN@46..47 "("
57 R_PAREN@[47; 48) ")" 57 R_PAREN@47..48 ")"
58 DOT@[48; 49) "." 58 DOT@48..49 "."
59 AWAIT_KW@[49; 54) "await" 59 AWAIT_KW@49..54 "await"
60 QUESTION@[54; 55) "?" 60 QUESTION@54..55 "?"
61 DOT@[55; 56) "." 61 DOT@55..56 "."
62 NAME_REF@[56; 61) 62 NAME_REF@56..61
63 IDENT@[56; 61) "hello" 63 IDENT@56..61 "hello"
64 ARG_LIST@[61; 63) 64 ARG_LIST@61..63
65 L_PAREN@[61; 62) "(" 65 L_PAREN@61..62 "("
66 R_PAREN@[62; 63) ")" 66 R_PAREN@62..63 ")"
67 SEMICOLON@[63; 64) ";" 67 SEMICOLON@63..64 ";"
68 WHITESPACE@[64; 65) "\n" 68 WHITESPACE@64..65 "\n"
69 R_CURLY@[65; 66) "}" 69 R_CURLY@65..66 "}"
70 WHITESPACE@[66; 67) "\n" 70 WHITESPACE@66..67 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
index d18096b47..a32484f2c 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_associated_type_bounds.rast
@@ -1,56 +1,56 @@
1SOURCE_FILE@[0; 59) 1SOURCE_FILE@0..59
2 FN_DEF@[0; 58) 2 FN_DEF@0..58
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 12) 5 NAME@3..12
6 IDENT@[3; 12) "print_all" 6 IDENT@3..12 "print_all"
7 TYPE_PARAM_LIST@[12; 40) 7 TYPE_PARAM_LIST@12..40
8 L_ANGLE@[12; 13) "<" 8 L_ANGLE@12..13 "<"
9 TYPE_PARAM@[13; 39) 9 TYPE_PARAM@13..39
10 NAME@[13; 14) 10 NAME@13..14
11 IDENT@[13; 14) "T" 11 IDENT@13..14 "T"
12 COLON@[14; 15) ":" 12 COLON@14..15 ":"
13 WHITESPACE@[15; 16) " " 13 WHITESPACE@15..16 " "
14 TYPE_BOUND_LIST@[16; 39) 14 TYPE_BOUND_LIST@16..39
15 TYPE_BOUND@[16; 39) 15 TYPE_BOUND@16..39
16 PATH_TYPE@[16; 39) 16 PATH_TYPE@16..39
17 PATH@[16; 39) 17 PATH@16..39
18 PATH_SEGMENT@[16; 39) 18 PATH_SEGMENT@16..39
19 NAME_REF@[16; 24) 19 NAME_REF@16..24
20 IDENT@[16; 24) "Iterator" 20 IDENT@16..24 "Iterator"
21 TYPE_ARG_LIST@[24; 39) 21 TYPE_ARG_LIST@24..39
22 L_ANGLE@[24; 25) "<" 22 L_ANGLE@24..25 "<"
23 ASSOC_TYPE_ARG@[25; 38) 23 ASSOC_TYPE_ARG@25..38
24 NAME_REF@[25; 29) 24 NAME_REF@25..29
25 IDENT@[25; 29) "Item" 25 IDENT@25..29 "Item"
26 COLON@[29; 30) ":" 26 COLON@29..30 ":"
27 WHITESPACE@[30; 31) " " 27 WHITESPACE@30..31 " "
28 TYPE_BOUND_LIST@[31; 38) 28 TYPE_BOUND_LIST@31..38
29 TYPE_BOUND@[31; 38) 29 TYPE_BOUND@31..38
30 PATH_TYPE@[31; 38) 30 PATH_TYPE@31..38
31 PATH@[31; 38) 31 PATH@31..38
32 PATH_SEGMENT@[31; 38) 32 PATH_SEGMENT@31..38
33 NAME_REF@[31; 38) 33 NAME_REF@31..38
34 IDENT@[31; 38) "Display" 34 IDENT@31..38 "Display"
35 R_ANGLE@[38; 39) ">" 35 R_ANGLE@38..39 ">"
36 R_ANGLE@[39; 40) ">" 36 R_ANGLE@39..40 ">"
37 PARAM_LIST@[40; 55) 37 PARAM_LIST@40..55
38 L_PAREN@[40; 41) "(" 38 L_PAREN@40..41 "("
39 PARAM@[41; 54) 39 PARAM@41..54
40 BIND_PAT@[41; 51) 40 BIND_PAT@41..51
41 NAME@[41; 51) 41 NAME@41..51
42 IDENT@[41; 51) "printables" 42 IDENT@41..51 "printables"
43 COLON@[51; 52) ":" 43 COLON@51..52 ":"
44 WHITESPACE@[52; 53) " " 44 WHITESPACE@52..53 " "
45 PATH_TYPE@[53; 54) 45 PATH_TYPE@53..54
46 PATH@[53; 54) 46 PATH@53..54
47 PATH_SEGMENT@[53; 54) 47 PATH_SEGMENT@53..54
48 NAME_REF@[53; 54) 48 NAME_REF@53..54
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_EXPR@[56; 58) 52 BLOCK_EXPR@56..58
53 BLOCK@[56; 58) 53 BLOCK@56..58
54 L_CURLY@[56; 57) "{" 54 L_CURLY@56..57 "{"
55 R_CURLY@[57; 58) "}" 55 R_CURLY@57..58 "}"
56 WHITESPACE@[58; 59) "\n" 56 WHITESPACE@58..59 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast
index ca1d69f64..9017236cc 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_expression_after_block.rast
@@ -1,66 +1,66 @@
1SOURCE_FILE@[0; 52) 1SOURCE_FILE@0..52
2 FN_DEF@[0; 51) 2 FN_DEF@0..51
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 51) 11 BLOCK_EXPR@9..51
12 BLOCK@[9; 51) 12 BLOCK@9..51
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 14) "\n " 14 WHITESPACE@10..14 "\n "
15 LET_STMT@[14; 34) 15 LET_STMT@14..34
16 LET_KW@[14; 17) "let" 16 LET_KW@14..17 "let"
17 WHITESPACE@[17; 18) " " 17 WHITESPACE@17..18 " "
18 BIND_PAT@[18; 23) 18 BIND_PAT@18..23
19 MUT_KW@[18; 21) "mut" 19 MUT_KW@18..21 "mut"
20 WHITESPACE@[21; 22) " " 20 WHITESPACE@21..22 " "
21 NAME@[22; 23) 21 NAME@22..23
22 IDENT@[22; 23) "p" 22 IDENT@22..23 "p"
23 WHITESPACE@[23; 24) " " 23 WHITESPACE@23..24 " "
24 EQ@[24; 25) "=" 24 EQ@24..25 "="
25 WHITESPACE@[25; 26) " " 25 WHITESPACE@25..26 " "
26 RECORD_LIT@[26; 33) 26 RECORD_LIT@26..33
27 PATH@[26; 27) 27 PATH@26..27
28 PATH_SEGMENT@[26; 27) 28 PATH_SEGMENT@26..27
29 NAME_REF@[26; 27) 29 NAME_REF@26..27
30 IDENT@[26; 27) "F" 30 IDENT@26..27 "F"
31 RECORD_FIELD_LIST@[27; 33) 31 RECORD_FIELD_LIST@27..33
32 L_CURLY@[27; 28) "{" 32 L_CURLY@27..28 "{"
33 RECORD_FIELD@[28; 32) 33 RECORD_FIELD@28..32
34 NAME_REF@[28; 29) 34 NAME_REF@28..29
35 IDENT@[28; 29) "x" 35 IDENT@28..29 "x"
36 COLON@[29; 30) ":" 36 COLON@29..30 ":"
37 WHITESPACE@[30; 31) " " 37 WHITESPACE@30..31 " "
38 LITERAL@[31; 32) 38 LITERAL@31..32
39 INT_NUMBER@[31; 32) "5" 39 INT_NUMBER@31..32 "5"
40 R_CURLY@[32; 33) "}" 40 R_CURLY@32..33 "}"
41 SEMICOLON@[33; 34) ";" 41 SEMICOLON@33..34 ";"
42 WHITESPACE@[34; 38) "\n " 42 WHITESPACE@34..38 "\n "
43 EXPR_STMT@[38; 49) 43 EXPR_STMT@38..49
44 BIN_EXPR@[38; 48) 44 BIN_EXPR@38..48
45 FIELD_EXPR@[38; 43) 45 FIELD_EXPR@38..43
46 BLOCK_EXPR@[38; 41) 46 BLOCK_EXPR@38..41
47 BLOCK@[38; 41) 47 BLOCK@38..41
48 L_CURLY@[38; 39) "{" 48 L_CURLY@38..39 "{"
49 PATH_EXPR@[39; 40) 49 PATH_EXPR@39..40
50 PATH@[39; 40) 50 PATH@39..40
51 PATH_SEGMENT@[39; 40) 51 PATH_SEGMENT@39..40
52 NAME_REF@[39; 40) 52 NAME_REF@39..40
53 IDENT@[39; 40) "p" 53 IDENT@39..40 "p"
54 R_CURLY@[40; 41) "}" 54 R_CURLY@40..41 "}"
55 DOT@[41; 42) "." 55 DOT@41..42 "."
56 NAME_REF@[42; 43) 56 NAME_REF@42..43
57 IDENT@[42; 43) "x" 57 IDENT@42..43 "x"
58 WHITESPACE@[43; 44) " " 58 WHITESPACE@43..44 " "
59 EQ@[44; 45) "=" 59 EQ@44..45 "="
60 WHITESPACE@[45; 46) " " 60 WHITESPACE@45..46 " "
61 LITERAL@[46; 48) 61 LITERAL@46..48
62 INT_NUMBER@[46; 48) "10" 62 INT_NUMBER@46..48 "10"
63 SEMICOLON@[48; 49) ";" 63 SEMICOLON@48..49 ";"
64 WHITESPACE@[49; 50) "\n" 64 WHITESPACE@49..50 "\n"
65 R_CURLY@[50; 51) "}" 65 R_CURLY@50..51 "}"
66 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.rast b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
index e627b9746..2cb5b52f4 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0138_self_param_outer_attr.rast
@@ -1,26 +1,26 @@
1SOURCE_FILE@[0; 26) 1SOURCE_FILE@0..26
2 FN_DEF@[0; 25) 2 FN_DEF@0..25
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 4) 5 NAME@3..4
6 IDENT@[3; 4) "f" 6 IDENT@3..4 "f"
7 PARAM_LIST@[4; 22) 7 PARAM_LIST@4..22
8 L_PAREN@[4; 5) "(" 8 L_PAREN@4..5 "("
9 ATTR@[5; 16) 9 ATTR@5..16
10 POUND@[5; 6) "#" 10 POUND@5..6 "#"
11 L_BRACK@[6; 7) "[" 11 L_BRACK@6..7 "["
12 PATH@[7; 15) 12 PATH@7..15
13 PATH_SEGMENT@[7; 15) 13 PATH_SEGMENT@7..15
14 NAME_REF@[7; 15) 14 NAME_REF@7..15
15 IDENT@[7; 15) "must_use" 15 IDENT@7..15 "must_use"
16 R_BRACK@[15; 16) "]" 16 R_BRACK@15..16 "]"
17 WHITESPACE@[16; 17) " " 17 WHITESPACE@16..17 " "
18 SELF_PARAM@[17; 21) 18 SELF_PARAM@17..21
19 SELF_KW@[17; 21) "self" 19 SELF_KW@17..21 "self"
20 R_PAREN@[21; 22) ")" 20 R_PAREN@21..22 ")"
21 WHITESPACE@[22; 23) " " 21 WHITESPACE@22..23 " "
22 BLOCK_EXPR@[23; 25) 22 BLOCK_EXPR@23..25
23 BLOCK@[23; 25) 23 BLOCK@23..25
24 L_CURLY@[23; 24) "{" 24 L_CURLY@23..24 "{"
25 R_CURLY@[24; 25) "}" 25 R_CURLY@24..25 "}"
26 WHITESPACE@[25; 26) "\n" 26 WHITESPACE@25..26 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
index cf202c94b..ac3f4de26 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0139_param_outer_arg.rast
@@ -1,35 +1,35 @@
1SOURCE_FILE@[0; 28) 1SOURCE_FILE@0..28
2 FN_DEF@[0; 27) 2 FN_DEF@0..27
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 4) 5 NAME@3..4
6 IDENT@[3; 4) "f" 6 IDENT@3..4 "f"
7 PARAM_LIST@[4; 24) 7 PARAM_LIST@4..24
8 L_PAREN@[4; 5) "(" 8 L_PAREN@4..5 "("
9 ATTR@[5; 13) 9 ATTR@5..13
10 POUND@[5; 6) "#" 10 POUND@5..6 "#"
11 L_BRACK@[6; 7) "[" 11 L_BRACK@6..7 "["
12 PATH@[7; 12) 12 PATH@7..12
13 PATH_SEGMENT@[7; 12) 13 PATH_SEGMENT@7..12
14 NAME_REF@[7; 12) 14 NAME_REF@7..12
15 IDENT@[7; 12) "attr1" 15 IDENT@7..12 "attr1"
16 R_BRACK@[12; 13) "]" 16 R_BRACK@12..13 "]"
17 WHITESPACE@[13; 14) " " 17 WHITESPACE@13..14 " "
18 PARAM@[14; 23) 18 PARAM@14..23
19 BIND_PAT@[14; 17) 19 BIND_PAT@14..17
20 NAME@[14; 17) 20 NAME@14..17
21 IDENT@[14; 17) "pat" 21 IDENT@14..17 "pat"
22 COLON@[17; 18) ":" 22 COLON@17..18 ":"
23 WHITESPACE@[18; 19) " " 23 WHITESPACE@18..19 " "
24 PATH_TYPE@[19; 23) 24 PATH_TYPE@19..23
25 PATH@[19; 23) 25 PATH@19..23
26 PATH_SEGMENT@[19; 23) 26 PATH_SEGMENT@19..23
27 NAME_REF@[19; 23) 27 NAME_REF@19..23
28 IDENT@[19; 23) "Type" 28 IDENT@19..23 "Type"
29 R_PAREN@[23; 24) ")" 29 R_PAREN@23..24 ")"
30 WHITESPACE@[24; 25) " " 30 WHITESPACE@24..25 " "
31 BLOCK_EXPR@[25; 27) 31 BLOCK_EXPR@25..27
32 BLOCK@[25; 27) 32 BLOCK@25..27
33 L_CURLY@[25; 26) "{" 33 L_CURLY@25..26 "{"
34 R_CURLY@[26; 27) "}" 34 R_CURLY@26..27 "}"
35 WHITESPACE@[27; 28) "\n" 35 WHITESPACE@27..28 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast
index 6d01140d2..8d4919cbd 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0142_for_range_from.rast
@@ -1,42 +1,42 @@
1SOURCE_FILE@[0; 51) 1SOURCE_FILE@0..51
2 FN_DEF@[0; 50) 2 FN_DEF@0..50
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 50) 11 BLOCK_EXPR@9..50
12 BLOCK@[9; 50) 12 BLOCK@9..50
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 14) "\n " 14 WHITESPACE@10..14 "\n "
15 FOR_EXPR@[14; 48) 15 FOR_EXPR@14..48
16 FOR_KW@[14; 17) "for" 16 FOR_KW@14..17 "for"
17 WHITESPACE@[17; 18) " " 17 WHITESPACE@17..18 " "
18 BIND_PAT@[18; 19) 18 BIND_PAT@18..19
19 NAME@[18; 19) 19 NAME@18..19
20 IDENT@[18; 19) "x" 20 IDENT@18..19 "x"
21 WHITESPACE@[19; 20) " " 21 WHITESPACE@19..20 " "
22 IN_KW@[20; 22) "in" 22 IN_KW@20..22 "in"
23 WHITESPACE@[22; 23) " " 23 WHITESPACE@22..23 " "
24 RANGE_EXPR@[23; 27) 24 RANGE_EXPR@23..27
25 LITERAL@[23; 24) 25 LITERAL@23..24
26 INT_NUMBER@[23; 24) "0" 26 INT_NUMBER@23..24 "0"
27 WHITESPACE@[24; 25) " " 27 WHITESPACE@24..25 " "
28 DOT2@[25; 27) ".." 28 DOT2@25..27 ".."
29 WHITESPACE@[27; 28) " " 29 WHITESPACE@27..28 " "
30 BLOCK_EXPR@[28; 48) 30 BLOCK_EXPR@28..48
31 BLOCK@[28; 48) 31 BLOCK@28..48
32 L_CURLY@[28; 29) "{" 32 L_CURLY@28..29 "{"
33 WHITESPACE@[29; 37) "\n " 33 WHITESPACE@29..37 "\n "
34 EXPR_STMT@[37; 43) 34 EXPR_STMT@37..43
35 BREAK_EXPR@[37; 42) 35 BREAK_EXPR@37..42
36 BREAK_KW@[37; 42) "break" 36 BREAK_KW@37..42 "break"
37 SEMICOLON@[42; 43) ";" 37 SEMICOLON@42..43 ";"
38 WHITESPACE@[43; 47) "\n " 38 WHITESPACE@43..47 "\n "
39 R_CURLY@[47; 48) "}" 39 R_CURLY@47..48 "}"
40 WHITESPACE@[48; 49) "\n" 40 WHITESPACE@48..49 "\n"
41 R_CURLY@[49; 50) "}" 41 R_CURLY@49..50 "}"
42 WHITESPACE@[50; 51) "\n" 42 WHITESPACE@50..51 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast
index 1d245f8f3..2c933fa76 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0143_box_pat.rast
@@ -1,111 +1,111 @@
1SOURCE_FILE@[0; 118) 1SOURCE_FILE@0..118
2 FN_DEF@[0; 117) 2 FN_DEF@0..117
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 117) 11 BLOCK_EXPR@10..117
12 BLOCK@[10; 117) 12 BLOCK@10..117
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 LET_STMT@[16; 31) 15 LET_STMT@16..31
16 LET_KW@[16; 19) "let" 16 LET_KW@16..19 "let"
17 WHITESPACE@[19; 20) " " 17 WHITESPACE@19..20 " "
18 BOX_PAT@[20; 25) 18 BOX_PAT@20..25
19 BOX_KW@[20; 23) "box" 19 BOX_KW@20..23 "box"
20 WHITESPACE@[23; 24) " " 20 WHITESPACE@23..24 " "
21 BIND_PAT@[24; 25) 21 BIND_PAT@24..25
22 NAME@[24; 25) 22 NAME@24..25
23 IDENT@[24; 25) "i" 23 IDENT@24..25 "i"
24 WHITESPACE@[25; 26) " " 24 WHITESPACE@25..26 " "
25 EQ@[26; 27) "=" 25 EQ@26..27 "="
26 WHITESPACE@[27; 28) " " 26 WHITESPACE@27..28 " "
27 TUPLE_EXPR@[28; 30) 27 TUPLE_EXPR@28..30
28 L_PAREN@[28; 29) "(" 28 L_PAREN@28..29 "("
29 R_PAREN@[29; 30) ")" 29 R_PAREN@29..30 ")"
30 SEMICOLON@[30; 31) ";" 30 SEMICOLON@30..31 ";"
31 WHITESPACE@[31; 36) "\n " 31 WHITESPACE@31..36 "\n "
32 LET_STMT@[36; 87) 32 LET_STMT@36..87
33 LET_KW@[36; 39) "let" 33 LET_KW@36..39 "let"
34 WHITESPACE@[39; 40) " " 34 WHITESPACE@39..40 " "
35 BOX_PAT@[40; 81) 35 BOX_PAT@40..81
36 BOX_KW@[40; 43) "box" 36 BOX_KW@40..43 "box"
37 WHITESPACE@[43; 44) " " 37 WHITESPACE@43..44 " "
38 RECORD_PAT@[44; 81) 38 RECORD_PAT@44..81
39 PATH@[44; 49) 39 PATH@44..49
40 PATH_SEGMENT@[44; 49) 40 PATH_SEGMENT@44..49
41 NAME_REF@[44; 49) 41 NAME_REF@44..49
42 IDENT@[44; 49) "Outer" 42 IDENT@44..49 "Outer"
43 WHITESPACE@[49; 50) " " 43 WHITESPACE@49..50 " "
44 RECORD_FIELD_PAT_LIST@[50; 81) 44 RECORD_FIELD_PAT_LIST@50..81
45 L_CURLY@[50; 51) "{" 45 L_CURLY@50..51 "{"
46 WHITESPACE@[51; 52) " " 46 WHITESPACE@51..52 " "
47 RECORD_FIELD_PAT@[52; 57) 47 RECORD_FIELD_PAT@52..57
48 BOX_PAT@[52; 57) 48 BOX_PAT@52..57
49 BOX_KW@[52; 55) "box" 49 BOX_KW@52..55 "box"
50 WHITESPACE@[55; 56) " " 50 WHITESPACE@55..56 " "
51 BIND_PAT@[56; 57) 51 BIND_PAT@56..57
52 NAME@[56; 57) 52 NAME@56..57
53 IDENT@[56; 57) "i" 53 IDENT@56..57 "i"
54 COMMA@[57; 58) "," 54 COMMA@57..58 ","
55 WHITESPACE@[58; 59) " " 55 WHITESPACE@58..59 " "
56 RECORD_FIELD_PAT@[59; 79) 56 RECORD_FIELD_PAT@59..79
57 NAME_REF@[59; 60) 57 NAME_REF@59..60
58 IDENT@[59; 60) "j" 58 IDENT@59..60 "j"
59 COLON@[60; 61) ":" 59 COLON@60..61 ":"
60 WHITESPACE@[61; 62) " " 60 WHITESPACE@61..62 " "
61 BOX_PAT@[62; 79) 61 BOX_PAT@62..79
62 BOX_KW@[62; 65) "box" 62 BOX_KW@62..65 "box"
63 WHITESPACE@[65; 66) " " 63 WHITESPACE@65..66 " "
64 TUPLE_STRUCT_PAT@[66; 79) 64 TUPLE_STRUCT_PAT@66..79
65 PATH@[66; 71) 65 PATH@66..71
66 PATH_SEGMENT@[66; 71) 66 PATH_SEGMENT@66..71
67 NAME_REF@[66; 71) 67 NAME_REF@66..71
68 IDENT@[66; 71) "Inner" 68 IDENT@66..71 "Inner"
69 L_PAREN@[71; 72) "(" 69 L_PAREN@71..72 "("
70 BOX_PAT@[72; 78) 70 BOX_PAT@72..78
71 BOX_KW@[72; 75) "box" 71 BOX_KW@72..75 "box"
72 WHITESPACE@[75; 76) " " 72 WHITESPACE@75..76 " "
73 REF_PAT@[76; 78) 73 REF_PAT@76..78
74 AMP@[76; 77) "&" 74 AMP@76..77 "&"
75 BIND_PAT@[77; 78) 75 BIND_PAT@77..78
76 NAME@[77; 78) 76 NAME@77..78
77 IDENT@[77; 78) "x" 77 IDENT@77..78 "x"
78 R_PAREN@[78; 79) ")" 78 R_PAREN@78..79 ")"
79 WHITESPACE@[79; 80) " " 79 WHITESPACE@79..80 " "
80 R_CURLY@[80; 81) "}" 80 R_CURLY@80..81 "}"
81 WHITESPACE@[81; 82) " " 81 WHITESPACE@81..82 " "
82 EQ@[82; 83) "=" 82 EQ@82..83 "="
83 WHITESPACE@[83; 84) " " 83 WHITESPACE@83..84 " "
84 TUPLE_EXPR@[84; 86) 84 TUPLE_EXPR@84..86
85 L_PAREN@[84; 85) "(" 85 L_PAREN@84..85 "("
86 R_PAREN@[85; 86) ")" 86 R_PAREN@85..86 ")"
87 SEMICOLON@[86; 87) ";" 87 SEMICOLON@86..87 ";"
88 WHITESPACE@[87; 92) "\n " 88 WHITESPACE@87..92 "\n "
89 LET_STMT@[92; 115) 89 LET_STMT@92..115
90 LET_KW@[92; 95) "let" 90 LET_KW@92..95 "let"
91 WHITESPACE@[95; 96) " " 91 WHITESPACE@95..96 " "
92 BOX_PAT@[96; 109) 92 BOX_PAT@96..109
93 BOX_KW@[96; 99) "box" 93 BOX_KW@96..99 "box"
94 WHITESPACE@[99; 100) " " 94 WHITESPACE@99..100 " "
95 BIND_PAT@[100; 109) 95 BIND_PAT@100..109
96 REF_KW@[100; 103) "ref" 96 REF_KW@100..103 "ref"
97 WHITESPACE@[103; 104) " " 97 WHITESPACE@103..104 " "
98 MUT_KW@[104; 107) "mut" 98 MUT_KW@104..107 "mut"
99 WHITESPACE@[107; 108) " " 99 WHITESPACE@107..108 " "
100 NAME@[108; 109) 100 NAME@108..109
101 IDENT@[108; 109) "i" 101 IDENT@108..109 "i"
102 WHITESPACE@[109; 110) " " 102 WHITESPACE@109..110 " "
103 EQ@[110; 111) "=" 103 EQ@110..111 "="
104 WHITESPACE@[111; 112) " " 104 WHITESPACE@111..112 " "
105 TUPLE_EXPR@[112; 114) 105 TUPLE_EXPR@112..114
106 L_PAREN@[112; 113) "(" 106 L_PAREN@112..113 "("
107 R_PAREN@[113; 114) ")" 107 R_PAREN@113..114 ")"
108 SEMICOLON@[114; 115) ";" 108 SEMICOLON@114..115 ";"
109 WHITESPACE@[115; 116) "\n" 109 WHITESPACE@115..116 "\n"
110 R_CURLY@[116; 117) "}" 110 R_CURLY@116..117 "}"
111 WHITESPACE@[117; 118) "\n" 111 WHITESPACE@117..118 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast
index 60186a992..e0b50d8be 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0144_dot_dot_pat.rast
@@ -1,456 +1,456 @@
1SOURCE_FILE@[0; 555) 1SOURCE_FILE@0..555
2 FN_DEF@[0; 554) 2 FN_DEF@0..554
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 554) 11 BLOCK_EXPR@10..554
12 BLOCK@[10; 554) 12 BLOCK@10..554
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 LET_STMT@[16; 28) 15 LET_STMT@16..28
16 LET_KW@[16; 19) "let" 16 LET_KW@16..19 "let"
17 WHITESPACE@[19; 20) " " 17 WHITESPACE@19..20 " "
18 DOT_DOT_PAT@[20; 22) 18 DOT_DOT_PAT@20..22
19 DOT2@[20; 22) ".." 19 DOT2@20..22 ".."
20 WHITESPACE@[22; 23) " " 20 WHITESPACE@22..23 " "
21 EQ@[23; 24) "=" 21 EQ@23..24 "="
22 WHITESPACE@[24; 25) " " 22 WHITESPACE@24..25 " "
23 TUPLE_EXPR@[25; 27) 23 TUPLE_EXPR@25..27
24 L_PAREN@[25; 26) "(" 24 L_PAREN@25..26 "("
25 R_PAREN@[26; 27) ")" 25 R_PAREN@26..27 ")"
26 SEMICOLON@[27; 28) ";" 26 SEMICOLON@27..28 ";"
27 WHITESPACE@[28; 33) "\n " 27 WHITESPACE@28..33 "\n "
28 COMMENT@[33; 35) "//" 28 COMMENT@33..35 "//"
29 WHITESPACE@[35; 40) "\n " 29 WHITESPACE@35..40 "\n "
30 COMMENT@[40; 49) "// Tuples" 30 COMMENT@40..49 "// Tuples"
31 WHITESPACE@[49; 54) "\n " 31 WHITESPACE@49..54 "\n "
32 COMMENT@[54; 56) "//" 32 COMMENT@54..56 "//"
33 WHITESPACE@[56; 61) "\n " 33 WHITESPACE@56..61 "\n "
34 LET_STMT@[61; 78) 34 LET_STMT@61..78
35 LET_KW@[61; 64) "let" 35 LET_KW@61..64 "let"
36 WHITESPACE@[64; 65) " " 36 WHITESPACE@64..65 " "
37 TUPLE_PAT@[65; 72) 37 TUPLE_PAT@65..72
38 L_PAREN@[65; 66) "(" 38 L_PAREN@65..66 "("
39 BIND_PAT@[66; 67) 39 BIND_PAT@66..67
40 NAME@[66; 67) 40 NAME@66..67
41 IDENT@[66; 67) "a" 41 IDENT@66..67 "a"
42 COMMA@[67; 68) "," 42 COMMA@67..68 ","
43 WHITESPACE@[68; 69) " " 43 WHITESPACE@68..69 " "
44 DOT_DOT_PAT@[69; 71) 44 DOT_DOT_PAT@69..71
45 DOT2@[69; 71) ".." 45 DOT2@69..71 ".."
46 R_PAREN@[71; 72) ")" 46 R_PAREN@71..72 ")"
47 WHITESPACE@[72; 73) " " 47 WHITESPACE@72..73 " "
48 EQ@[73; 74) "=" 48 EQ@73..74 "="
49 WHITESPACE@[74; 75) " " 49 WHITESPACE@74..75 " "
50 TUPLE_EXPR@[75; 77) 50 TUPLE_EXPR@75..77
51 L_PAREN@[75; 76) "(" 51 L_PAREN@75..76 "("
52 R_PAREN@[76; 77) ")" 52 R_PAREN@76..77 ")"
53 SEMICOLON@[77; 78) ";" 53 SEMICOLON@77..78 ";"
54 WHITESPACE@[78; 83) "\n " 54 WHITESPACE@78..83 "\n "
55 LET_STMT@[83; 101) 55 LET_STMT@83..101
56 LET_KW@[83; 86) "let" 56 LET_KW@83..86 "let"
57 WHITESPACE@[86; 87) " " 57 WHITESPACE@86..87 " "
58 TUPLE_PAT@[87; 95) 58 TUPLE_PAT@87..95
59 L_PAREN@[87; 88) "(" 59 L_PAREN@87..88 "("
60 BIND_PAT@[88; 89) 60 BIND_PAT@88..89
61 NAME@[88; 89) 61 NAME@88..89
62 IDENT@[88; 89) "a" 62 IDENT@88..89 "a"
63 COMMA@[89; 90) "," 63 COMMA@89..90 ","
64 WHITESPACE@[90; 91) " " 64 WHITESPACE@90..91 " "
65 DOT_DOT_PAT@[91; 93) 65 DOT_DOT_PAT@91..93
66 DOT2@[91; 93) ".." 66 DOT2@91..93 ".."
67 COMMA@[93; 94) "," 67 COMMA@93..94 ","
68 R_PAREN@[94; 95) ")" 68 R_PAREN@94..95 ")"
69 WHITESPACE@[95; 96) " " 69 WHITESPACE@95..96 " "
70 EQ@[96; 97) "=" 70 EQ@96..97 "="
71 WHITESPACE@[97; 98) " " 71 WHITESPACE@97..98 " "
72 TUPLE_EXPR@[98; 100) 72 TUPLE_EXPR@98..100
73 L_PAREN@[98; 99) "(" 73 L_PAREN@98..99 "("
74 R_PAREN@[99; 100) ")" 74 R_PAREN@99..100 ")"
75 SEMICOLON@[100; 101) ";" 75 SEMICOLON@100..101 ";"
76 WHITESPACE@[101; 106) "\n " 76 WHITESPACE@101..106 "\n "
77 LET_STMT@[106; 128) 77 LET_STMT@106..128
78 LET_KW@[106; 109) "let" 78 LET_KW@106..109 "let"
79 WHITESPACE@[109; 110) " " 79 WHITESPACE@109..110 " "
80 TUPLE_STRUCT_PAT@[110; 122) 80 TUPLE_STRUCT_PAT@110..122
81 PATH@[110; 115) 81 PATH@110..115
82 PATH_SEGMENT@[110; 115) 82 PATH_SEGMENT@110..115
83 NAME_REF@[110; 115) 83 NAME_REF@110..115
84 IDENT@[110; 115) "Tuple" 84 IDENT@110..115 "Tuple"
85 L_PAREN@[115; 116) "(" 85 L_PAREN@115..116 "("
86 BIND_PAT@[116; 117) 86 BIND_PAT@116..117
87 NAME@[116; 117) 87 NAME@116..117
88 IDENT@[116; 117) "a" 88 IDENT@116..117 "a"
89 COMMA@[117; 118) "," 89 COMMA@117..118 ","
90 WHITESPACE@[118; 119) " " 90 WHITESPACE@118..119 " "
91 DOT_DOT_PAT@[119; 121) 91 DOT_DOT_PAT@119..121
92 DOT2@[119; 121) ".." 92 DOT2@119..121 ".."
93 R_PAREN@[121; 122) ")" 93 R_PAREN@121..122 ")"
94 WHITESPACE@[122; 123) " " 94 WHITESPACE@122..123 " "
95 EQ@[123; 124) "=" 95 EQ@123..124 "="
96 WHITESPACE@[124; 125) " " 96 WHITESPACE@124..125 " "
97 TUPLE_EXPR@[125; 127) 97 TUPLE_EXPR@125..127
98 L_PAREN@[125; 126) "(" 98 L_PAREN@125..126 "("
99 R_PAREN@[126; 127) ")" 99 R_PAREN@126..127 ")"
100 SEMICOLON@[127; 128) ";" 100 SEMICOLON@127..128 ";"
101 WHITESPACE@[128; 133) "\n " 101 WHITESPACE@128..133 "\n "
102 LET_STMT@[133; 156) 102 LET_STMT@133..156
103 LET_KW@[133; 136) "let" 103 LET_KW@133..136 "let"
104 WHITESPACE@[136; 137) " " 104 WHITESPACE@136..137 " "
105 TUPLE_STRUCT_PAT@[137; 150) 105 TUPLE_STRUCT_PAT@137..150
106 PATH@[137; 142) 106 PATH@137..142
107 PATH_SEGMENT@[137; 142) 107 PATH_SEGMENT@137..142
108 NAME_REF@[137; 142) 108 NAME_REF@137..142
109 IDENT@[137; 142) "Tuple" 109 IDENT@137..142 "Tuple"
110 L_PAREN@[142; 143) "(" 110 L_PAREN@142..143 "("
111 BIND_PAT@[143; 144) 111 BIND_PAT@143..144
112 NAME@[143; 144) 112 NAME@143..144
113 IDENT@[143; 144) "a" 113 IDENT@143..144 "a"
114 COMMA@[144; 145) "," 114 COMMA@144..145 ","
115 WHITESPACE@[145; 146) " " 115 WHITESPACE@145..146 " "
116 DOT_DOT_PAT@[146; 148) 116 DOT_DOT_PAT@146..148
117 DOT2@[146; 148) ".." 117 DOT2@146..148 ".."
118 COMMA@[148; 149) "," 118 COMMA@148..149 ","
119 R_PAREN@[149; 150) ")" 119 R_PAREN@149..150 ")"
120 WHITESPACE@[150; 151) " " 120 WHITESPACE@150..151 " "
121 EQ@[151; 152) "=" 121 EQ@151..152 "="
122 WHITESPACE@[152; 153) " " 122 WHITESPACE@152..153 " "
123 TUPLE_EXPR@[153; 155) 123 TUPLE_EXPR@153..155
124 L_PAREN@[153; 154) "(" 124 L_PAREN@153..154 "("
125 R_PAREN@[154; 155) ")" 125 R_PAREN@154..155 ")"
126 SEMICOLON@[155; 156) ";" 126 SEMICOLON@155..156 ";"
127 WHITESPACE@[156; 161) "\n " 127 WHITESPACE@156..161 "\n "
128 LET_STMT@[161; 179) 128 LET_STMT@161..179
129 LET_KW@[161; 164) "let" 129 LET_KW@161..164 "let"
130 WHITESPACE@[164; 165) " " 130 WHITESPACE@164..165 " "
131 TUPLE_PAT@[165; 173) 131 TUPLE_PAT@165..173
132 L_PAREN@[165; 166) "(" 132 L_PAREN@165..166 "("
133 DOT_DOT_PAT@[166; 168) 133 DOT_DOT_PAT@166..168
134 DOT2@[166; 168) ".." 134 DOT2@166..168 ".."
135 COMMA@[168; 169) "," 135 COMMA@168..169 ","
136 WHITESPACE@[169; 170) " " 136 WHITESPACE@169..170 " "
137 DOT_DOT_PAT@[170; 172) 137 DOT_DOT_PAT@170..172
138 DOT2@[170; 172) ".." 138 DOT2@170..172 ".."
139 R_PAREN@[172; 173) ")" 139 R_PAREN@172..173 ")"
140 WHITESPACE@[173; 174) " " 140 WHITESPACE@173..174 " "
141 EQ@[174; 175) "=" 141 EQ@174..175 "="
142 WHITESPACE@[175; 176) " " 142 WHITESPACE@175..176 " "
143 TUPLE_EXPR@[176; 178) 143 TUPLE_EXPR@176..178
144 L_PAREN@[176; 177) "(" 144 L_PAREN@176..177 "("
145 R_PAREN@[177; 178) ")" 145 R_PAREN@177..178 ")"
146 SEMICOLON@[178; 179) ";" 146 SEMICOLON@178..179 ";"
147 WHITESPACE@[179; 184) "\n " 147 WHITESPACE@179..184 "\n "
148 LET_STMT@[184; 207) 148 LET_STMT@184..207
149 LET_KW@[184; 187) "let" 149 LET_KW@184..187 "let"
150 WHITESPACE@[187; 188) " " 150 WHITESPACE@187..188 " "
151 TUPLE_STRUCT_PAT@[188; 201) 151 TUPLE_STRUCT_PAT@188..201
152 PATH@[188; 193) 152 PATH@188..193
153 PATH_SEGMENT@[188; 193) 153 PATH_SEGMENT@188..193
154 NAME_REF@[188; 193) 154 NAME_REF@188..193
155 IDENT@[188; 193) "Tuple" 155 IDENT@188..193 "Tuple"
156 L_PAREN@[193; 194) "(" 156 L_PAREN@193..194 "("
157 DOT_DOT_PAT@[194; 196) 157 DOT_DOT_PAT@194..196
158 DOT2@[194; 196) ".." 158 DOT2@194..196 ".."
159 COMMA@[196; 197) "," 159 COMMA@196..197 ","
160 WHITESPACE@[197; 198) " " 160 WHITESPACE@197..198 " "
161 DOT_DOT_PAT@[198; 200) 161 DOT_DOT_PAT@198..200
162 DOT2@[198; 200) ".." 162 DOT2@198..200 ".."
163 R_PAREN@[200; 201) ")" 163 R_PAREN@200..201 ")"
164 WHITESPACE@[201; 202) " " 164 WHITESPACE@201..202 " "
165 EQ@[202; 203) "=" 165 EQ@202..203 "="
166 WHITESPACE@[203; 204) " " 166 WHITESPACE@203..204 " "
167 TUPLE_EXPR@[204; 206) 167 TUPLE_EXPR@204..206
168 L_PAREN@[204; 205) "(" 168 L_PAREN@204..205 "("
169 R_PAREN@[205; 206) ")" 169 R_PAREN@205..206 ")"
170 SEMICOLON@[206; 207) ";" 170 SEMICOLON@206..207 ";"
171 WHITESPACE@[207; 212) "\n " 171 WHITESPACE@207..212 "\n "
172 LET_STMT@[212; 233) 172 LET_STMT@212..233
173 LET_KW@[212; 215) "let" 173 LET_KW@212..215 "let"
174 WHITESPACE@[215; 216) " " 174 WHITESPACE@215..216 " "
175 TUPLE_PAT@[216; 227) 175 TUPLE_PAT@216..227
176 L_PAREN@[216; 217) "(" 176 L_PAREN@216..217 "("
177 DOT_DOT_PAT@[217; 219) 177 DOT_DOT_PAT@217..219
178 DOT2@[217; 219) ".." 178 DOT2@217..219 ".."
179 COMMA@[219; 220) "," 179 COMMA@219..220 ","
180 WHITESPACE@[220; 221) " " 180 WHITESPACE@220..221 " "
181 BIND_PAT@[221; 222) 181 BIND_PAT@221..222
182 NAME@[221; 222) 182 NAME@221..222
183 IDENT@[221; 222) "a" 183 IDENT@221..222 "a"
184 COMMA@[222; 223) "," 184 COMMA@222..223 ","
185 WHITESPACE@[223; 224) " " 185 WHITESPACE@223..224 " "
186 DOT_DOT_PAT@[224; 226) 186 DOT_DOT_PAT@224..226
187 DOT2@[224; 226) ".." 187 DOT2@224..226 ".."
188 R_PAREN@[226; 227) ")" 188 R_PAREN@226..227 ")"
189 WHITESPACE@[227; 228) " " 189 WHITESPACE@227..228 " "
190 EQ@[228; 229) "=" 190 EQ@228..229 "="
191 WHITESPACE@[229; 230) " " 191 WHITESPACE@229..230 " "
192 TUPLE_EXPR@[230; 232) 192 TUPLE_EXPR@230..232
193 L_PAREN@[230; 231) "(" 193 L_PAREN@230..231 "("
194 R_PAREN@[231; 232) ")" 194 R_PAREN@231..232 ")"
195 SEMICOLON@[232; 233) ";" 195 SEMICOLON@232..233 ";"
196 WHITESPACE@[233; 238) "\n " 196 WHITESPACE@233..238 "\n "
197 LET_STMT@[238; 264) 197 LET_STMT@238..264
198 LET_KW@[238; 241) "let" 198 LET_KW@238..241 "let"
199 WHITESPACE@[241; 242) " " 199 WHITESPACE@241..242 " "
200 TUPLE_STRUCT_PAT@[242; 258) 200 TUPLE_STRUCT_PAT@242..258
201 PATH@[242; 247) 201 PATH@242..247
202 PATH_SEGMENT@[242; 247) 202 PATH_SEGMENT@242..247
203 NAME_REF@[242; 247) 203 NAME_REF@242..247
204 IDENT@[242; 247) "Tuple" 204 IDENT@242..247 "Tuple"
205 L_PAREN@[247; 248) "(" 205 L_PAREN@247..248 "("
206 DOT_DOT_PAT@[248; 250) 206 DOT_DOT_PAT@248..250
207 DOT2@[248; 250) ".." 207 DOT2@248..250 ".."
208 COMMA@[250; 251) "," 208 COMMA@250..251 ","
209 WHITESPACE@[251; 252) " " 209 WHITESPACE@251..252 " "
210 BIND_PAT@[252; 253) 210 BIND_PAT@252..253
211 NAME@[252; 253) 211 NAME@252..253
212 IDENT@[252; 253) "a" 212 IDENT@252..253 "a"
213 COMMA@[253; 254) "," 213 COMMA@253..254 ","
214 WHITESPACE@[254; 255) " " 214 WHITESPACE@254..255 " "
215 DOT_DOT_PAT@[255; 257) 215 DOT_DOT_PAT@255..257
216 DOT2@[255; 257) ".." 216 DOT2@255..257 ".."
217 R_PAREN@[257; 258) ")" 217 R_PAREN@257..258 ")"
218 WHITESPACE@[258; 259) " " 218 WHITESPACE@258..259 " "
219 EQ@[259; 260) "=" 219 EQ@259..260 "="
220 WHITESPACE@[260; 261) " " 220 WHITESPACE@260..261 " "
221 TUPLE_EXPR@[261; 263) 221 TUPLE_EXPR@261..263
222 L_PAREN@[261; 262) "(" 222 L_PAREN@261..262 "("
223 R_PAREN@[262; 263) ")" 223 R_PAREN@262..263 ")"
224 SEMICOLON@[263; 264) ";" 224 SEMICOLON@263..264 ";"
225 WHITESPACE@[264; 269) "\n " 225 WHITESPACE@264..269 "\n "
226 COMMENT@[269; 271) "//" 226 COMMENT@269..271 "//"
227 WHITESPACE@[271; 276) "\n " 227 WHITESPACE@271..276 "\n "
228 COMMENT@[276; 285) "// Slices" 228 COMMENT@276..285 "// Slices"
229 WHITESPACE@[285; 290) "\n " 229 WHITESPACE@285..290 "\n "
230 COMMENT@[290; 292) "//" 230 COMMENT@290..292 "//"
231 WHITESPACE@[292; 297) "\n " 231 WHITESPACE@292..297 "\n "
232 LET_STMT@[297; 311) 232 LET_STMT@297..311
233 LET_KW@[297; 300) "let" 233 LET_KW@297..300 "let"
234 WHITESPACE@[300; 301) " " 234 WHITESPACE@300..301 " "
235 SLICE_PAT@[301; 305) 235 SLICE_PAT@301..305
236 L_BRACK@[301; 302) "[" 236 L_BRACK@301..302 "["
237 DOT_DOT_PAT@[302; 304) 237 DOT_DOT_PAT@302..304
238 DOT2@[302; 304) ".." 238 DOT2@302..304 ".."
239 R_BRACK@[304; 305) "]" 239 R_BRACK@304..305 "]"
240 WHITESPACE@[305; 306) " " 240 WHITESPACE@305..306 " "
241 EQ@[306; 307) "=" 241 EQ@306..307 "="
242 WHITESPACE@[307; 308) " " 242 WHITESPACE@307..308 " "
243 TUPLE_EXPR@[308; 310) 243 TUPLE_EXPR@308..310
244 L_PAREN@[308; 309) "(" 244 L_PAREN@308..309 "("
245 R_PAREN@[309; 310) ")" 245 R_PAREN@309..310 ")"
246 SEMICOLON@[310; 311) ";" 246 SEMICOLON@310..311 ";"
247 WHITESPACE@[311; 316) "\n " 247 WHITESPACE@311..316 "\n "
248 LET_STMT@[316; 336) 248 LET_STMT@316..336
249 LET_KW@[316; 319) "let" 249 LET_KW@316..319 "let"
250 WHITESPACE@[319; 320) " " 250 WHITESPACE@319..320 " "
251 SLICE_PAT@[320; 330) 251 SLICE_PAT@320..330
252 L_BRACK@[320; 321) "[" 252 L_BRACK@320..321 "["
253 BIND_PAT@[321; 325) 253 BIND_PAT@321..325
254 NAME@[321; 325) 254 NAME@321..325
255 IDENT@[321; 325) "head" 255 IDENT@321..325 "head"
256 COMMA@[325; 326) "," 256 COMMA@325..326 ","
257 WHITESPACE@[326; 327) " " 257 WHITESPACE@326..327 " "
258 DOT_DOT_PAT@[327; 329) 258 DOT_DOT_PAT@327..329
259 DOT2@[327; 329) ".." 259 DOT2@327..329 ".."
260 R_BRACK@[329; 330) "]" 260 R_BRACK@329..330 "]"
261 WHITESPACE@[330; 331) " " 261 WHITESPACE@330..331 " "
262 EQ@[331; 332) "=" 262 EQ@331..332 "="
263 WHITESPACE@[332; 333) " " 263 WHITESPACE@332..333 " "
264 TUPLE_EXPR@[333; 335) 264 TUPLE_EXPR@333..335
265 L_PAREN@[333; 334) "(" 265 L_PAREN@333..334 "("
266 R_PAREN@[334; 335) ")" 266 R_PAREN@334..335 ")"
267 SEMICOLON@[335; 336) ";" 267 SEMICOLON@335..336 ";"
268 WHITESPACE@[336; 341) "\n " 268 WHITESPACE@336..341 "\n "
269 LET_STMT@[341; 368) 269 LET_STMT@341..368
270 LET_KW@[341; 344) "let" 270 LET_KW@341..344 "let"
271 WHITESPACE@[344; 345) " " 271 WHITESPACE@344..345 " "
272 SLICE_PAT@[345; 362) 272 SLICE_PAT@345..362
273 L_BRACK@[345; 346) "[" 273 L_BRACK@345..346 "["
274 BIND_PAT@[346; 350) 274 BIND_PAT@346..350
275 NAME@[346; 350) 275 NAME@346..350
276 IDENT@[346; 350) "head" 276 IDENT@346..350 "head"
277 COMMA@[350; 351) "," 277 COMMA@350..351 ","
278 WHITESPACE@[351; 352) " " 278 WHITESPACE@351..352 " "
279 BIND_PAT@[352; 361) 279 BIND_PAT@352..361
280 NAME@[352; 356) 280 NAME@352..356
281 IDENT@[352; 356) "tail" 281 IDENT@352..356 "tail"
282 WHITESPACE@[356; 357) " " 282 WHITESPACE@356..357 " "
283 AT@[357; 358) "@" 283 AT@357..358 "@"
284 WHITESPACE@[358; 359) " " 284 WHITESPACE@358..359 " "
285 DOT_DOT_PAT@[359; 361) 285 DOT_DOT_PAT@359..361
286 DOT2@[359; 361) ".." 286 DOT2@359..361 ".."
287 R_BRACK@[361; 362) "]" 287 R_BRACK@361..362 "]"
288 WHITESPACE@[362; 363) " " 288 WHITESPACE@362..363 " "
289 EQ@[363; 364) "=" 289 EQ@363..364 "="
290 WHITESPACE@[364; 365) " " 290 WHITESPACE@364..365 " "
291 TUPLE_EXPR@[365; 367) 291 TUPLE_EXPR@365..367
292 L_PAREN@[365; 366) "(" 292 L_PAREN@365..366 "("
293 R_PAREN@[366; 367) ")" 293 R_PAREN@366..367 ")"
294 SEMICOLON@[367; 368) ";" 294 SEMICOLON@367..368 ";"
295 WHITESPACE@[368; 373) "\n " 295 WHITESPACE@368..373 "\n "
296 LET_STMT@[373; 399) 296 LET_STMT@373..399
297 LET_KW@[373; 376) "let" 297 LET_KW@373..376 "let"
298 WHITESPACE@[376; 377) " " 298 WHITESPACE@376..377 " "
299 SLICE_PAT@[377; 393) 299 SLICE_PAT@377..393
300 L_BRACK@[377; 378) "[" 300 L_BRACK@377..378 "["
301 BIND_PAT@[378; 382) 301 BIND_PAT@378..382
302 NAME@[378; 382) 302 NAME@378..382
303 IDENT@[378; 382) "head" 303 IDENT@378..382 "head"
304 COMMA@[382; 383) "," 304 COMMA@382..383 ","
305 WHITESPACE@[383; 384) " " 305 WHITESPACE@383..384 " "
306 DOT_DOT_PAT@[384; 386) 306 DOT_DOT_PAT@384..386
307 DOT2@[384; 386) ".." 307 DOT2@384..386 ".."
308 COMMA@[386; 387) "," 308 COMMA@386..387 ","
309 WHITESPACE@[387; 388) " " 309 WHITESPACE@387..388 " "
310 BIND_PAT@[388; 392) 310 BIND_PAT@388..392
311 NAME@[388; 392) 311 NAME@388..392
312 IDENT@[388; 392) "cons" 312 IDENT@388..392 "cons"
313 R_BRACK@[392; 393) "]" 313 R_BRACK@392..393 "]"
314 WHITESPACE@[393; 394) " " 314 WHITESPACE@393..394 " "
315 EQ@[394; 395) "=" 315 EQ@394..395 "="
316 WHITESPACE@[395; 396) " " 316 WHITESPACE@395..396 " "
317 TUPLE_EXPR@[396; 398) 317 TUPLE_EXPR@396..398
318 L_PAREN@[396; 397) "(" 318 L_PAREN@396..397 "("
319 R_PAREN@[397; 398) ")" 319 R_PAREN@397..398 ")"
320 SEMICOLON@[398; 399) ";" 320 SEMICOLON@398..399 ";"
321 WHITESPACE@[399; 404) "\n " 321 WHITESPACE@399..404 "\n "
322 LET_STMT@[404; 436) 322 LET_STMT@404..436
323 LET_KW@[404; 407) "let" 323 LET_KW@404..407 "let"
324 WHITESPACE@[407; 408) " " 324 WHITESPACE@407..408 " "
325 SLICE_PAT@[408; 430) 325 SLICE_PAT@408..430
326 L_BRACK@[408; 409) "[" 326 L_BRACK@408..409 "["
327 BIND_PAT@[409; 413) 327 BIND_PAT@409..413
328 NAME@[409; 413) 328 NAME@409..413
329 IDENT@[409; 413) "head" 329 IDENT@409..413 "head"
330 COMMA@[413; 414) "," 330 COMMA@413..414 ","
331 WHITESPACE@[414; 415) " " 331 WHITESPACE@414..415 " "
332 BIND_PAT@[415; 423) 332 BIND_PAT@415..423
333 NAME@[415; 418) 333 NAME@415..418
334 IDENT@[415; 418) "mid" 334 IDENT@415..418 "mid"
335 WHITESPACE@[418; 419) " " 335 WHITESPACE@418..419 " "
336 AT@[419; 420) "@" 336 AT@419..420 "@"
337 WHITESPACE@[420; 421) " " 337 WHITESPACE@420..421 " "
338 DOT_DOT_PAT@[421; 423) 338 DOT_DOT_PAT@421..423
339 DOT2@[421; 423) ".." 339 DOT2@421..423 ".."
340 COMMA@[423; 424) "," 340 COMMA@423..424 ","
341 WHITESPACE@[424; 425) " " 341 WHITESPACE@424..425 " "
342 BIND_PAT@[425; 429) 342 BIND_PAT@425..429
343 NAME@[425; 429) 343 NAME@425..429
344 IDENT@[425; 429) "cons" 344 IDENT@425..429 "cons"
345 R_BRACK@[429; 430) "]" 345 R_BRACK@429..430 "]"
346 WHITESPACE@[430; 431) " " 346 WHITESPACE@430..431 " "
347 EQ@[431; 432) "=" 347 EQ@431..432 "="
348 WHITESPACE@[432; 433) " " 348 WHITESPACE@432..433 " "
349 TUPLE_EXPR@[433; 435) 349 TUPLE_EXPR@433..435
350 L_PAREN@[433; 434) "(" 350 L_PAREN@433..434 "("
351 R_PAREN@[434; 435) ")" 351 R_PAREN@434..435 ")"
352 SEMICOLON@[435; 436) ";" 352 SEMICOLON@435..436 ";"
353 WHITESPACE@[436; 441) "\n " 353 WHITESPACE@436..441 "\n "
354 LET_STMT@[441; 471) 354 LET_STMT@441..471
355 LET_KW@[441; 444) "let" 355 LET_KW@441..444 "let"
356 WHITESPACE@[444; 445) " " 356 WHITESPACE@444..445 " "
357 SLICE_PAT@[445; 465) 357 SLICE_PAT@445..465
358 L_BRACK@[445; 446) "[" 358 L_BRACK@445..446 "["
359 BIND_PAT@[446; 450) 359 BIND_PAT@446..450
360 NAME@[446; 450) 360 NAME@446..450
361 IDENT@[446; 450) "head" 361 IDENT@446..450 "head"
362 COMMA@[450; 451) "," 362 COMMA@450..451 ","
363 WHITESPACE@[451; 452) " " 363 WHITESPACE@451..452 " "
364 DOT_DOT_PAT@[452; 454) 364 DOT_DOT_PAT@452..454
365 DOT2@[452; 454) ".." 365 DOT2@452..454 ".."
366 COMMA@[454; 455) "," 366 COMMA@454..455 ","
367 WHITESPACE@[455; 456) " " 367 WHITESPACE@455..456 " "
368 DOT_DOT_PAT@[456; 458) 368 DOT_DOT_PAT@456..458
369 DOT2@[456; 458) ".." 369 DOT2@456..458 ".."
370 COMMA@[458; 459) "," 370 COMMA@458..459 ","
371 WHITESPACE@[459; 460) " " 371 WHITESPACE@459..460 " "
372 BIND_PAT@[460; 464) 372 BIND_PAT@460..464
373 NAME@[460; 464) 373 NAME@460..464
374 IDENT@[460; 464) "cons" 374 IDENT@460..464 "cons"
375 R_BRACK@[464; 465) "]" 375 R_BRACK@464..465 "]"
376 WHITESPACE@[465; 466) " " 376 WHITESPACE@465..466 " "
377 EQ@[466; 467) "=" 377 EQ@466..467 "="
378 WHITESPACE@[467; 468) " " 378 WHITESPACE@467..468 " "
379 TUPLE_EXPR@[468; 470) 379 TUPLE_EXPR@468..470
380 L_PAREN@[468; 469) "(" 380 L_PAREN@468..469 "("
381 R_PAREN@[469; 470) ")" 381 R_PAREN@469..470 ")"
382 SEMICOLON@[470; 471) ";" 382 SEMICOLON@470..471 ";"
383 WHITESPACE@[471; 476) "\n " 383 WHITESPACE@471..476 "\n "
384 LET_STMT@[476; 512) 384 LET_STMT@476..512
385 LET_KW@[476; 479) "let" 385 LET_KW@476..479 "let"
386 WHITESPACE@[479; 480) " " 386 WHITESPACE@479..480 " "
387 SLICE_PAT@[480; 506) 387 SLICE_PAT@480..506
388 L_BRACK@[480; 481) "[" 388 L_BRACK@480..481 "["
389 BIND_PAT@[481; 485) 389 BIND_PAT@481..485
390 NAME@[481; 485) 390 NAME@481..485
391 IDENT@[481; 485) "head" 391 IDENT@481..485 "head"
392 COMMA@[485; 486) "," 392 COMMA@485..486 ","
393 WHITESPACE@[486; 487) " " 393 WHITESPACE@486..487 " "
394 DOT_DOT_PAT@[487; 489) 394 DOT_DOT_PAT@487..489
395 DOT2@[487; 489) ".." 395 DOT2@487..489 ".."
396 COMMA@[489; 490) "," 396 COMMA@489..490 ","
397 WHITESPACE@[490; 491) " " 397 WHITESPACE@490..491 " "
398 BIND_PAT@[491; 494) 398 BIND_PAT@491..494
399 NAME@[491; 494) 399 NAME@491..494
400 IDENT@[491; 494) "mid" 400 IDENT@491..494 "mid"
401 COMMA@[494; 495) "," 401 COMMA@494..495 ","
402 WHITESPACE@[495; 496) " " 402 WHITESPACE@495..496 " "
403 BIND_PAT@[496; 505) 403 BIND_PAT@496..505
404 NAME@[496; 500) 404 NAME@496..500
405 IDENT@[496; 500) "tail" 405 IDENT@496..500 "tail"
406 WHITESPACE@[500; 501) " " 406 WHITESPACE@500..501 " "
407 AT@[501; 502) "@" 407 AT@501..502 "@"
408 WHITESPACE@[502; 503) " " 408 WHITESPACE@502..503 " "
409 DOT_DOT_PAT@[503; 505) 409 DOT_DOT_PAT@503..505
410 DOT2@[503; 505) ".." 410 DOT2@503..505 ".."
411 R_BRACK@[505; 506) "]" 411 R_BRACK@505..506 "]"
412 WHITESPACE@[506; 507) " " 412 WHITESPACE@506..507 " "
413 EQ@[507; 508) "=" 413 EQ@507..508 "="
414 WHITESPACE@[508; 509) " " 414 WHITESPACE@508..509 " "
415 TUPLE_EXPR@[509; 511) 415 TUPLE_EXPR@509..511
416 L_PAREN@[509; 510) "(" 416 L_PAREN@509..510 "("
417 R_PAREN@[510; 511) ")" 417 R_PAREN@510..511 ")"
418 SEMICOLON@[511; 512) ";" 418 SEMICOLON@511..512 ";"
419 WHITESPACE@[512; 517) "\n " 419 WHITESPACE@512..517 "\n "
420 LET_STMT@[517; 552) 420 LET_STMT@517..552
421 LET_KW@[517; 520) "let" 421 LET_KW@517..520 "let"
422 WHITESPACE@[520; 521) " " 422 WHITESPACE@520..521 " "
423 SLICE_PAT@[521; 546) 423 SLICE_PAT@521..546
424 L_BRACK@[521; 522) "[" 424 L_BRACK@521..522 "["
425 BIND_PAT@[522; 526) 425 BIND_PAT@522..526
426 NAME@[522; 526) 426 NAME@522..526
427 IDENT@[522; 526) "head" 427 IDENT@522..526 "head"
428 COMMA@[526; 527) "," 428 COMMA@526..527 ","
429 WHITESPACE@[527; 528) " " 429 WHITESPACE@527..528 " "
430 DOT_DOT_PAT@[528; 530) 430 DOT_DOT_PAT@528..530
431 DOT2@[528; 530) ".." 431 DOT2@528..530 ".."
432 COMMA@[530; 531) "," 432 COMMA@530..531 ","
433 WHITESPACE@[531; 532) " " 433 WHITESPACE@531..532 " "
434 BIND_PAT@[532; 535) 434 BIND_PAT@532..535
435 NAME@[532; 535) 435 NAME@532..535
436 IDENT@[532; 535) "mid" 436 IDENT@532..535 "mid"
437 COMMA@[535; 536) "," 437 COMMA@535..536 ","
438 WHITESPACE@[536; 537) " " 438 WHITESPACE@536..537 " "
439 DOT_DOT_PAT@[537; 539) 439 DOT_DOT_PAT@537..539
440 DOT2@[537; 539) ".." 440 DOT2@537..539 ".."
441 COMMA@[539; 540) "," 441 COMMA@539..540 ","
442 WHITESPACE@[540; 541) " " 442 WHITESPACE@540..541 " "
443 BIND_PAT@[541; 545) 443 BIND_PAT@541..545
444 NAME@[541; 545) 444 NAME@541..545
445 IDENT@[541; 545) "cons" 445 IDENT@541..545 "cons"
446 R_BRACK@[545; 546) "]" 446 R_BRACK@545..546 "]"
447 WHITESPACE@[546; 547) " " 447 WHITESPACE@546..547 " "
448 EQ@[547; 548) "=" 448 EQ@547..548 "="
449 WHITESPACE@[548; 549) " " 449 WHITESPACE@548..549 " "
450 TUPLE_EXPR@[549; 551) 450 TUPLE_EXPR@549..551
451 L_PAREN@[549; 550) "(" 451 L_PAREN@549..550 "("
452 R_PAREN@[550; 551) ")" 452 R_PAREN@550..551 ")"
453 SEMICOLON@[551; 552) ";" 453 SEMICOLON@551..552 ";"
454 WHITESPACE@[552; 553) "\n" 454 WHITESPACE@552..553 "\n"
455 R_CURLY@[553; 554) "}" 455 R_CURLY@553..554 "}"
456 WHITESPACE@[554; 555) "\n" 456 WHITESPACE@554..555 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast b/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast
index cac2ffdcf..10434b637 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0145_record_field_pat.rast
@@ -1,76 +1,76 @@
1SOURCE_FILE@[0; 63) 1SOURCE_FILE@0..63
2 FN_DEF@[0; 62) 2 FN_DEF@0..62
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 62) 11 BLOCK_EXPR@9..62
12 BLOCK@[9; 62) 12 BLOCK@9..62
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 35) 15 LET_STMT@15..35
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 RECORD_PAT@[19; 29) 18 RECORD_PAT@19..29
19 PATH@[19; 20) 19 PATH@19..20
20 PATH_SEGMENT@[19; 20) 20 PATH_SEGMENT@19..20
21 NAME_REF@[19; 20) 21 NAME_REF@19..20
22 IDENT@[19; 20) "S" 22 IDENT@19..20 "S"
23 WHITESPACE@[20; 21) " " 23 WHITESPACE@20..21 " "
24 RECORD_FIELD_PAT_LIST@[21; 29) 24 RECORD_FIELD_PAT_LIST@21..29
25 L_CURLY@[21; 22) "{" 25 L_CURLY@21..22 "{"
26 WHITESPACE@[22; 23) " " 26 WHITESPACE@22..23 " "
27 RECORD_FIELD_PAT@[23; 27) 27 RECORD_FIELD_PAT@23..27
28 NAME_REF@[23; 24) 28 NAME_REF@23..24
29 INT_NUMBER@[23; 24) "0" 29 INT_NUMBER@23..24 "0"
30 COLON@[24; 25) ":" 30 COLON@24..25 ":"
31 WHITESPACE@[25; 26) " " 31 WHITESPACE@25..26 " "
32 LITERAL_PAT@[26; 27) 32 LITERAL_PAT@26..27
33 LITERAL@[26; 27) 33 LITERAL@26..27
34 INT_NUMBER@[26; 27) "1" 34 INT_NUMBER@26..27 "1"
35 WHITESPACE@[27; 28) " " 35 WHITESPACE@27..28 " "
36 R_CURLY@[28; 29) "}" 36 R_CURLY@28..29 "}"
37 WHITESPACE@[29; 30) " " 37 WHITESPACE@29..30 " "
38 EQ@[30; 31) "=" 38 EQ@30..31 "="
39 WHITESPACE@[31; 32) " " 39 WHITESPACE@31..32 " "
40 TUPLE_EXPR@[32; 34) 40 TUPLE_EXPR@32..34
41 L_PAREN@[32; 33) "(" 41 L_PAREN@32..33 "("
42 R_PAREN@[33; 34) ")" 42 R_PAREN@33..34 ")"
43 SEMICOLON@[34; 35) ";" 43 SEMICOLON@34..35 ";"
44 WHITESPACE@[35; 40) "\n " 44 WHITESPACE@35..40 "\n "
45 LET_STMT@[40; 60) 45 LET_STMT@40..60
46 LET_KW@[40; 43) "let" 46 LET_KW@40..43 "let"
47 WHITESPACE@[43; 44) " " 47 WHITESPACE@43..44 " "
48 RECORD_PAT@[44; 54) 48 RECORD_PAT@44..54
49 PATH@[44; 45) 49 PATH@44..45
50 PATH_SEGMENT@[44; 45) 50 PATH_SEGMENT@44..45
51 NAME_REF@[44; 45) 51 NAME_REF@44..45
52 IDENT@[44; 45) "S" 52 IDENT@44..45 "S"
53 WHITESPACE@[45; 46) " " 53 WHITESPACE@45..46 " "
54 RECORD_FIELD_PAT_LIST@[46; 54) 54 RECORD_FIELD_PAT_LIST@46..54
55 L_CURLY@[46; 47) "{" 55 L_CURLY@46..47 "{"
56 WHITESPACE@[47; 48) " " 56 WHITESPACE@47..48 " "
57 RECORD_FIELD_PAT@[48; 52) 57 RECORD_FIELD_PAT@48..52
58 NAME_REF@[48; 49) 58 NAME_REF@48..49
59 IDENT@[48; 49) "x" 59 IDENT@48..49 "x"
60 COLON@[49; 50) ":" 60 COLON@49..50 ":"
61 WHITESPACE@[50; 51) " " 61 WHITESPACE@50..51 " "
62 LITERAL_PAT@[51; 52) 62 LITERAL_PAT@51..52
63 LITERAL@[51; 52) 63 LITERAL@51..52
64 INT_NUMBER@[51; 52) "1" 64 INT_NUMBER@51..52 "1"
65 WHITESPACE@[52; 53) " " 65 WHITESPACE@52..53 " "
66 R_CURLY@[53; 54) "}" 66 R_CURLY@53..54 "}"
67 WHITESPACE@[54; 55) " " 67 WHITESPACE@54..55 " "
68 EQ@[55; 56) "=" 68 EQ@55..56 "="
69 WHITESPACE@[56; 57) " " 69 WHITESPACE@56..57 " "
70 TUPLE_EXPR@[57; 59) 70 TUPLE_EXPR@57..59
71 L_PAREN@[57; 58) "(" 71 L_PAREN@57..58 "("
72 R_PAREN@[58; 59) ")" 72 R_PAREN@58..59 ")"
73 SEMICOLON@[59; 60) ";" 73 SEMICOLON@59..60 ";"
74 WHITESPACE@[60; 61) "\n" 74 WHITESPACE@60..61 "\n"
75 R_CURLY@[61; 62) "}" 75 R_CURLY@61..62 "}"
76 WHITESPACE@[62; 63) "\n" 76 WHITESPACE@62..63 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast b/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast
index d2f6d8fde..66ad546b9 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0146_as_precedence.rast
@@ -1,43 +1,43 @@
1SOURCE_FILE@[0; 43) 1SOURCE_FILE@0..43
2 FN_DEF@[0; 42) 2 FN_DEF@0..42
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 42) 11 BLOCK_EXPR@9..42
12 BLOCK@[9; 42) 12 BLOCK@9..42
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 LET_STMT@[15; 40) 15 LET_STMT@15..40
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 PLACEHOLDER_PAT@[19; 20) 18 PLACEHOLDER_PAT@19..20
19 UNDERSCORE@[19; 20) "_" 19 UNDERSCORE@19..20 "_"
20 WHITESPACE@[20; 21) " " 20 WHITESPACE@20..21 " "
21 EQ@[21; 22) "=" 21 EQ@21..22 "="
22 WHITESPACE@[22; 23) " " 22 WHITESPACE@22..23 " "
23 CAST_EXPR@[23; 39) 23 CAST_EXPR@23..39
24 REF_EXPR@[23; 25) 24 REF_EXPR@23..25
25 AMP@[23; 24) "&" 25 AMP@23..24 "&"
26 LITERAL@[24; 25) 26 LITERAL@24..25
27 INT_NUMBER@[24; 25) "1" 27 INT_NUMBER@24..25 "1"
28 WHITESPACE@[25; 26) " " 28 WHITESPACE@25..26 " "
29 AS_KW@[26; 28) "as" 29 AS_KW@26..28 "as"
30 WHITESPACE@[28; 29) " " 30 WHITESPACE@28..29 " "
31 POINTER_TYPE@[29; 39) 31 POINTER_TYPE@29..39
32 STAR@[29; 30) "*" 32 STAR@29..30 "*"
33 CONST_KW@[30; 35) "const" 33 CONST_KW@30..35 "const"
34 WHITESPACE@[35; 36) " " 34 WHITESPACE@35..36 " "
35 PATH_TYPE@[36; 39) 35 PATH_TYPE@36..39
36 PATH@[36; 39) 36 PATH@36..39
37 PATH_SEGMENT@[36; 39) 37 PATH_SEGMENT@36..39
38 NAME_REF@[36; 39) 38 NAME_REF@36..39
39 IDENT@[36; 39) "i32" 39 IDENT@36..39 "i32"
40 SEMICOLON@[39; 40) ";" 40 SEMICOLON@39..40 ";"
41 WHITESPACE@[40; 41) "\n" 41 WHITESPACE@40..41 "\n"
42 R_CURLY@[41; 42) "}" 42 R_CURLY@41..42 "}"
43 WHITESPACE@[42; 43) "\n" 43 WHITESPACE@42..43 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast
index 21161f7bf..4b9b8e0ab 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0147_const_param.rast
@@ -1,23 +1,23 @@
1SOURCE_FILE@[0; 24) 1SOURCE_FILE@0..24
2 STRUCT_DEF@[0; 23) 2 STRUCT_DEF@0..23
3 STRUCT_KW@[0; 6) "struct" 3 STRUCT_KW@0..6 "struct"
4 WHITESPACE@[6; 7) " " 4 WHITESPACE@6..7 " "
5 NAME@[7; 8) 5 NAME@7..8
6 IDENT@[7; 8) "S" 6 IDENT@7..8 "S"
7 TYPE_PARAM_LIST@[8; 22) 7 TYPE_PARAM_LIST@8..22
8 L_ANGLE@[8; 9) "<" 8 L_ANGLE@8..9 "<"
9 CONST_PARAM@[9; 21) 9 CONST_PARAM@9..21
10 CONST_KW@[9; 14) "const" 10 CONST_KW@9..14 "const"
11 WHITESPACE@[14; 15) " " 11 WHITESPACE@14..15 " "
12 NAME@[15; 16) 12 NAME@15..16
13 IDENT@[15; 16) "N" 13 IDENT@15..16 "N"
14 COLON@[16; 17) ":" 14 COLON@16..17 ":"
15 WHITESPACE@[17; 18) " " 15 WHITESPACE@17..18 " "
16 PATH_TYPE@[18; 21) 16 PATH_TYPE@18..21
17 PATH@[18; 21) 17 PATH@18..21
18 PATH_SEGMENT@[18; 21) 18 PATH_SEGMENT@18..21
19 NAME_REF@[18; 21) 19 NAME_REF@18..21
20 IDENT@[18; 21) "u32" 20 IDENT@18..21 "u32"
21 R_ANGLE@[21; 22) ">" 21 R_ANGLE@21..22 ">"
22 SEMICOLON@[22; 23) ";" 22 SEMICOLON@22..23 ";"
23 WHITESPACE@[23; 24) "\n" 23 WHITESPACE@23..24 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0147_macro_def.rast b/crates/ra_syntax/test_data/parser/inline/ok/0147_macro_def.rast
index 3556099bd..6655aeab1 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0147_macro_def.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0147_macro_def.rast
@@ -1,45 +1,45 @@
1SOURCE_FILE@[0; 50) 1SOURCE_FILE@0..50
2 MACRO_DEF@[0; 28) 2 MACRO_DEF@0..28
3 MACRO_KW@[0; 5) "macro" 3 MACRO_KW@0..5 "macro"
4 WHITESPACE@[5; 6) " " 4 WHITESPACE@5..6 " "
5 NAME@[6; 7) 5 NAME@6..7
6 IDENT@[6; 7) "m" 6 IDENT@6..7 "m"
7 WHITESPACE@[7; 8) " " 7 WHITESPACE@7..8 " "
8 TOKEN_TREE@[8; 28) 8 TOKEN_TREE@8..28
9 L_CURLY@[8; 9) "{" 9 L_CURLY@8..9 "{"
10 WHITESPACE@[9; 10) " " 10 WHITESPACE@9..10 " "
11 TOKEN_TREE@[10; 20) 11 TOKEN_TREE@10..20
12 L_PAREN@[10; 11) "(" 12 L_PAREN@10..11 "("
13 DOLLAR@[11; 12) "$" 13 DOLLAR@11..12 "$"
14 IDENT@[12; 13) "i" 14 IDENT@12..13 "i"
15 COLON@[13; 14) ":" 15 COLON@13..14 ":"
16 IDENT@[14; 19) "ident" 16 IDENT@14..19 "ident"
17 R_PAREN@[19; 20) ")" 17 R_PAREN@19..20 ")"
18 WHITESPACE@[20; 21) " " 18 WHITESPACE@20..21 " "
19 EQ@[21; 22) "=" 19 EQ@21..22 "="
20 R_ANGLE@[22; 23) ">" 20 R_ANGLE@22..23 ">"
21 WHITESPACE@[23; 24) " " 21 WHITESPACE@23..24 " "
22 TOKEN_TREE@[24; 26) 22 TOKEN_TREE@24..26
23 L_CURLY@[24; 25) "{" 23 L_CURLY@24..25 "{"
24 R_CURLY@[25; 26) "}" 24 R_CURLY@25..26 "}"
25 WHITESPACE@[26; 27) " " 25 WHITESPACE@26..27 " "
26 R_CURLY@[27; 28) "}" 26 R_CURLY@27..28 "}"
27 WHITESPACE@[28; 29) "\n" 27 WHITESPACE@28..29 "\n"
28 MACRO_DEF@[29; 49) 28 MACRO_DEF@29..49
29 MACRO_KW@[29; 34) "macro" 29 MACRO_KW@29..34 "macro"
30 WHITESPACE@[34; 35) " " 30 WHITESPACE@34..35 " "
31 NAME@[35; 36) 31 NAME@35..36
32 IDENT@[35; 36) "m" 32 IDENT@35..36 "m"
33 TOKEN_TREE@[36; 49) 33 TOKEN_TREE@36..49
34 TOKEN_TREE@[36; 46) 34 TOKEN_TREE@36..46
35 L_PAREN@[36; 37) "(" 35 L_PAREN@36..37 "("
36 DOLLAR@[37; 38) "$" 36 DOLLAR@37..38 "$"
37 IDENT@[38; 39) "i" 37 IDENT@38..39 "i"
38 COLON@[39; 40) ":" 38 COLON@39..40 ":"
39 IDENT@[40; 45) "ident" 39 IDENT@40..45 "ident"
40 R_PAREN@[45; 46) ")" 40 R_PAREN@45..46 ")"
41 WHITESPACE@[46; 47) " " 41 WHITESPACE@46..47 " "
42 TOKEN_TREE@[47; 49) 42 TOKEN_TREE@47..49
43 L_CURLY@[47; 48) "{" 43 L_CURLY@47..48 "{"
44 R_CURLY@[48; 49) "}" 44 R_CURLY@48..49 "}"
45 WHITESPACE@[49; 50) "\n" 45 WHITESPACE@49..50 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast b/crates/ra_syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast
index cfd79d9c2..1c527f60b 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0148_pub_macro_def.rast
@@ -1,21 +1,21 @@
1SOURCE_FILE@[0; 24) 1SOURCE_FILE@0..24
2 MACRO_DEF@[0; 23) 2 MACRO_DEF@0..23
3 VISIBILITY@[0; 3) 3 VISIBILITY@0..3
4 PUB_KW@[0; 3) "pub" 4 PUB_KW@0..3 "pub"
5 WHITESPACE@[3; 4) " " 5 WHITESPACE@3..4 " "
6 MACRO_KW@[4; 9) "macro" 6 MACRO_KW@4..9 "macro"
7 WHITESPACE@[9; 10) " " 7 WHITESPACE@9..10 " "
8 NAME@[10; 11) 8 NAME@10..11
9 IDENT@[10; 11) "m" 9 IDENT@10..11 "m"
10 TOKEN_TREE@[11; 23) 10 TOKEN_TREE@11..23
11 TOKEN_TREE@[11; 20) 11 TOKEN_TREE@11..20
12 L_PAREN@[11; 12) "(" 12 L_PAREN@11..12 "("
13 DOLLAR@[12; 13) "$" 13 DOLLAR@12..13 "$"
14 COLON@[13; 14) ":" 14 COLON@13..14 ":"
15 IDENT@[14; 19) "ident" 15 IDENT@14..19 "ident"
16 R_PAREN@[19; 20) ")" 16 R_PAREN@19..20 ")"
17 WHITESPACE@[20; 21) " " 17 WHITESPACE@20..21 " "
18 TOKEN_TREE@[21; 23) 18 TOKEN_TREE@21..23
19 L_CURLY@[21; 22) "{" 19 L_CURLY@21..22 "{"
20 R_CURLY@[22; 23) "}" 20 R_CURLY@22..23 "}"
21 WHITESPACE@[23; 24) "\n" 21 WHITESPACE@23..24 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast b/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast
index 1f297e479..3c00a2647 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0150_array_attrs.rast
@@ -1,47 +1,47 @@
1SOURCE_FILE@[0; 40) 1SOURCE_FILE@0..40
2 CONST_DEF@[0; 39) 2 CONST_DEF@0..39
3 CONST_KW@[0; 5) "const" 3 CONST_KW@0..5 "const"
4 WHITESPACE@[5; 6) " " 4 WHITESPACE@5..6 " "
5 NAME@[6; 7) 5 NAME@6..7
6 IDENT@[6; 7) "A" 6 IDENT@6..7 "A"
7 COLON@[7; 8) ":" 7 COLON@7..8 ":"
8 WHITESPACE@[8; 9) " " 8 WHITESPACE@8..9 " "
9 REFERENCE_TYPE@[9; 15) 9 REFERENCE_TYPE@9..15
10 AMP@[9; 10) "&" 10 AMP@9..10 "&"
11 SLICE_TYPE@[10; 15) 11 SLICE_TYPE@10..15
12 L_BRACK@[10; 11) "[" 12 L_BRACK@10..11 "["
13 PATH_TYPE@[11; 14) 13 PATH_TYPE@11..14
14 PATH@[11; 14) 14 PATH@11..14
15 PATH_SEGMENT@[11; 14) 15 PATH_SEGMENT@11..14
16 NAME_REF@[11; 14) 16 NAME_REF@11..14
17 IDENT@[11; 14) "i64" 17 IDENT@11..14 "i64"
18 R_BRACK@[14; 15) "]" 18 R_BRACK@14..15 "]"
19 WHITESPACE@[15; 16) " " 19 WHITESPACE@15..16 " "
20 EQ@[16; 17) "=" 20 EQ@16..17 "="
21 WHITESPACE@[17; 18) " " 21 WHITESPACE@17..18 " "
22 REF_EXPR@[18; 38) 22 REF_EXPR@18..38
23 AMP@[18; 19) "&" 23 AMP@18..19 "&"
24 ARRAY_EXPR@[19; 38) 24 ARRAY_EXPR@19..38
25 L_BRACK@[19; 20) "[" 25 L_BRACK@19..20 "["
26 LITERAL@[20; 21) 26 LITERAL@20..21
27 INT_NUMBER@[20; 21) "1" 27 INT_NUMBER@20..21 "1"
28 COMMA@[21; 22) "," 28 COMMA@21..22 ","
29 WHITESPACE@[22; 23) " " 29 WHITESPACE@22..23 " "
30 LITERAL@[23; 37) 30 LITERAL@23..37
31 ATTR@[23; 35) 31 ATTR@23..35
32 POUND@[23; 24) "#" 32 POUND@23..24 "#"
33 L_BRACK@[24; 25) "[" 33 L_BRACK@24..25 "["
34 PATH@[25; 28) 34 PATH@25..28
35 PATH_SEGMENT@[25; 28) 35 PATH_SEGMENT@25..28
36 NAME_REF@[25; 28) 36 NAME_REF@25..28
37 IDENT@[25; 28) "cfg" 37 IDENT@25..28 "cfg"
38 TOKEN_TREE@[28; 34) 38 TOKEN_TREE@28..34
39 L_PAREN@[28; 29) "(" 39 L_PAREN@28..29 "("
40 IDENT@[29; 33) "test" 40 IDENT@29..33 "test"
41 R_PAREN@[33; 34) ")" 41 R_PAREN@33..34 ")"
42 R_BRACK@[34; 35) "]" 42 R_BRACK@34..35 "]"
43 WHITESPACE@[35; 36) " " 43 WHITESPACE@35..36 " "
44 INT_NUMBER@[36; 37) "2" 44 INT_NUMBER@36..37 "2"
45 R_BRACK@[37; 38) "]" 45 R_BRACK@37..38 "]"
46 SEMICOLON@[38; 39) ";" 46 SEMICOLON@38..39 ";"
47 WHITESPACE@[39; 40) "\n" 47 WHITESPACE@39..40 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast
index 2d46eebb3..e70c3b710 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0150_impl_type_params.rast
@@ -1,38 +1,38 @@
1SOURCE_FILE@[0; 29) 1SOURCE_FILE@0..29
2 IMPL_DEF@[0; 28) 2 IMPL_DEF@0..28
3 IMPL_KW@[0; 4) "impl" 3 IMPL_KW@0..4 "impl"
4 TYPE_PARAM_LIST@[4; 18) 4 TYPE_PARAM_LIST@4..18
5 L_ANGLE@[4; 5) "<" 5 L_ANGLE@4..5 "<"
6 CONST_PARAM@[5; 17) 6 CONST_PARAM@5..17
7 CONST_KW@[5; 10) "const" 7 CONST_KW@5..10 "const"
8 WHITESPACE@[10; 11) " " 8 WHITESPACE@10..11 " "
9 NAME@[11; 12) 9 NAME@11..12
10 IDENT@[11; 12) "N" 10 IDENT@11..12 "N"
11 COLON@[12; 13) ":" 11 COLON@12..13 ":"
12 WHITESPACE@[13; 14) " " 12 WHITESPACE@13..14 " "
13 PATH_TYPE@[14; 17) 13 PATH_TYPE@14..17
14 PATH@[14; 17) 14 PATH@14..17
15 PATH_SEGMENT@[14; 17) 15 PATH_SEGMENT@14..17
16 NAME_REF@[14; 17) 16 NAME_REF@14..17
17 IDENT@[14; 17) "u32" 17 IDENT@14..17 "u32"
18 R_ANGLE@[17; 18) ">" 18 R_ANGLE@17..18 ">"
19 WHITESPACE@[18; 19) " " 19 WHITESPACE@18..19 " "
20 PATH_TYPE@[19; 25) 20 PATH_TYPE@19..25
21 PATH@[19; 25) 21 PATH@19..25
22 PATH_SEGMENT@[19; 25) 22 PATH_SEGMENT@19..25
23 NAME_REF@[19; 22) 23 NAME_REF@19..22
24 IDENT@[19; 22) "Bar" 24 IDENT@19..22 "Bar"
25 TYPE_ARG_LIST@[22; 25) 25 TYPE_ARG_LIST@22..25
26 L_ANGLE@[22; 23) "<" 26 L_ANGLE@22..23 "<"
27 TYPE_ARG@[23; 24) 27 TYPE_ARG@23..24
28 PATH_TYPE@[23; 24) 28 PATH_TYPE@23..24
29 PATH@[23; 24) 29 PATH@23..24
30 PATH_SEGMENT@[23; 24) 30 PATH_SEGMENT@23..24
31 NAME_REF@[23; 24) 31 NAME_REF@23..24
32 IDENT@[23; 24) "N" 32 IDENT@23..24 "N"
33 R_ANGLE@[24; 25) ">" 33 R_ANGLE@24..25 ">"
34 WHITESPACE@[25; 26) " " 34 WHITESPACE@25..26 " "
35 ITEM_LIST@[26; 28) 35 ITEM_LIST@26..28
36 L_CURLY@[26; 27) "{" 36 L_CURLY@26..27 "{"
37 R_CURLY@[27; 28) "}" 37 R_CURLY@27..28 "}"
38 WHITESPACE@[28; 29) "\n" 38 WHITESPACE@28..29 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast b/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast
index 167c0fffa..48d73a4e7 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0151_trait_alias.rast
@@ -1,128 +1,128 @@
1SOURCE_FILE@[0; 83) 1SOURCE_FILE@0..83
2 TRAIT_DEF@[0; 18) 2 TRAIT_DEF@0..18
3 TRAIT_KW@[0; 5) "trait" 3 TRAIT_KW@0..5 "trait"
4 WHITESPACE@[5; 6) " " 4 WHITESPACE@5..6 " "
5 NAME@[6; 7) 5 NAME@6..7
6 IDENT@[6; 7) "Z" 6 IDENT@6..7 "Z"
7 TYPE_PARAM_LIST@[7; 10) 7 TYPE_PARAM_LIST@7..10
8 L_ANGLE@[7; 8) "<" 8 L_ANGLE@7..8 "<"
9 TYPE_PARAM@[8; 9) 9 TYPE_PARAM@8..9
10 NAME@[8; 9) 10 NAME@8..9
11 IDENT@[8; 9) "U" 11 IDENT@8..9 "U"
12 R_ANGLE@[9; 10) ">" 12 R_ANGLE@9..10 ">"
13 WHITESPACE@[10; 11) " " 13 WHITESPACE@10..11 " "
14 EQ@[11; 12) "=" 14 EQ@11..12 "="
15 WHITESPACE@[12; 13) " " 15 WHITESPACE@12..13 " "
16 TYPE_BOUND_LIST@[13; 17) 16 TYPE_BOUND_LIST@13..17
17 TYPE_BOUND@[13; 17) 17 TYPE_BOUND@13..17
18 PATH_TYPE@[13; 17) 18 PATH_TYPE@13..17
19 PATH@[13; 17) 19 PATH@13..17
20 PATH_SEGMENT@[13; 17) 20 PATH_SEGMENT@13..17
21 NAME_REF@[13; 14) 21 NAME_REF@13..14
22 IDENT@[13; 14) "T" 22 IDENT@13..14 "T"
23 TYPE_ARG_LIST@[14; 17) 23 TYPE_ARG_LIST@14..17
24 L_ANGLE@[14; 15) "<" 24 L_ANGLE@14..15 "<"
25 TYPE_ARG@[15; 16) 25 TYPE_ARG@15..16
26 PATH_TYPE@[15; 16) 26 PATH_TYPE@15..16
27 PATH@[15; 16) 27 PATH@15..16
28 PATH_SEGMENT@[15; 16) 28 PATH_SEGMENT@15..16
29 NAME_REF@[15; 16) 29 NAME_REF@15..16
30 IDENT@[15; 16) "U" 30 IDENT@15..16 "U"
31 R_ANGLE@[16; 17) ">" 31 R_ANGLE@16..17 ">"
32 SEMICOLON@[17; 18) ";" 32 SEMICOLON@17..18 ";"
33 WHITESPACE@[18; 19) "\n" 33 WHITESPACE@18..19 "\n"
34 TRAIT_DEF@[19; 51) 34 TRAIT_DEF@19..51
35 TRAIT_KW@[19; 24) "trait" 35 TRAIT_KW@19..24 "trait"
36 WHITESPACE@[24; 25) " " 36 WHITESPACE@24..25 " "
37 NAME@[25; 26) 37 NAME@25..26
38 IDENT@[25; 26) "Z" 38 IDENT@25..26 "Z"
39 TYPE_PARAM_LIST@[26; 29) 39 TYPE_PARAM_LIST@26..29
40 L_ANGLE@[26; 27) "<" 40 L_ANGLE@26..27 "<"
41 TYPE_PARAM@[27; 28) 41 TYPE_PARAM@27..28
42 NAME@[27; 28) 42 NAME@27..28
43 IDENT@[27; 28) "U" 43 IDENT@27..28 "U"
44 R_ANGLE@[28; 29) ">" 44 R_ANGLE@28..29 ">"
45 WHITESPACE@[29; 30) " " 45 WHITESPACE@29..30 " "
46 EQ@[30; 31) "=" 46 EQ@30..31 "="
47 WHITESPACE@[31; 32) " " 47 WHITESPACE@31..32 " "
48 TYPE_BOUND_LIST@[32; 36) 48 TYPE_BOUND_LIST@32..36
49 TYPE_BOUND@[32; 36) 49 TYPE_BOUND@32..36
50 PATH_TYPE@[32; 36) 50 PATH_TYPE@32..36
51 PATH@[32; 36) 51 PATH@32..36
52 PATH_SEGMENT@[32; 36) 52 PATH_SEGMENT@32..36
53 NAME_REF@[32; 33) 53 NAME_REF@32..33
54 IDENT@[32; 33) "T" 54 IDENT@32..33 "T"
55 TYPE_ARG_LIST@[33; 36) 55 TYPE_ARG_LIST@33..36
56 L_ANGLE@[33; 34) "<" 56 L_ANGLE@33..34 "<"
57 TYPE_ARG@[34; 35) 57 TYPE_ARG@34..35
58 PATH_TYPE@[34; 35) 58 PATH_TYPE@34..35
59 PATH@[34; 35) 59 PATH@34..35
60 PATH_SEGMENT@[34; 35) 60 PATH_SEGMENT@34..35
61 NAME_REF@[34; 35) 61 NAME_REF@34..35
62 IDENT@[34; 35) "U" 62 IDENT@34..35 "U"
63 R_ANGLE@[35; 36) ">" 63 R_ANGLE@35..36 ">"
64 WHITESPACE@[36; 37) " " 64 WHITESPACE@36..37 " "
65 WHERE_CLAUSE@[37; 50) 65 WHERE_CLAUSE@37..50
66 WHERE_KW@[37; 42) "where" 66 WHERE_KW@37..42 "where"
67 WHITESPACE@[42; 43) " " 67 WHITESPACE@42..43 " "
68 WHERE_PRED@[43; 50) 68 WHERE_PRED@43..50
69 PATH_TYPE@[43; 44) 69 PATH_TYPE@43..44
70 PATH@[43; 44) 70 PATH@43..44
71 PATH_SEGMENT@[43; 44) 71 PATH_SEGMENT@43..44
72 NAME_REF@[43; 44) 72 NAME_REF@43..44
73 IDENT@[43; 44) "U" 73 IDENT@43..44 "U"
74 COLON@[44; 45) ":" 74 COLON@44..45 ":"
75 WHITESPACE@[45; 46) " " 75 WHITESPACE@45..46 " "
76 TYPE_BOUND_LIST@[46; 50) 76 TYPE_BOUND_LIST@46..50
77 TYPE_BOUND@[46; 50) 77 TYPE_BOUND@46..50
78 PATH_TYPE@[46; 50) 78 PATH_TYPE@46..50
79 PATH@[46; 50) 79 PATH@46..50
80 PATH_SEGMENT@[46; 50) 80 PATH_SEGMENT@46..50
81 NAME_REF@[46; 50) 81 NAME_REF@46..50
82 IDENT@[46; 50) "Copy" 82 IDENT@46..50 "Copy"
83 SEMICOLON@[50; 51) ";" 83 SEMICOLON@50..51 ";"
84 WHITESPACE@[51; 52) "\n" 84 WHITESPACE@51..52 "\n"
85 TRAIT_DEF@[52; 82) 85 TRAIT_DEF@52..82
86 TRAIT_KW@[52; 57) "trait" 86 TRAIT_KW@52..57 "trait"
87 WHITESPACE@[57; 58) " " 87 WHITESPACE@57..58 " "
88 NAME@[58; 59) 88 NAME@58..59
89 IDENT@[58; 59) "Z" 89 IDENT@58..59 "Z"
90 TYPE_PARAM_LIST@[59; 62) 90 TYPE_PARAM_LIST@59..62
91 L_ANGLE@[59; 60) "<" 91 L_ANGLE@59..60 "<"
92 TYPE_PARAM@[60; 61) 92 TYPE_PARAM@60..61
93 NAME@[60; 61) 93 NAME@60..61
94 IDENT@[60; 61) "U" 94 IDENT@60..61 "U"
95 R_ANGLE@[61; 62) ">" 95 R_ANGLE@61..62 ">"
96 WHITESPACE@[62; 63) " " 96 WHITESPACE@62..63 " "
97 EQ@[63; 64) "=" 97 EQ@63..64 "="
98 WHITESPACE@[64; 65) " " 98 WHITESPACE@64..65 " "
99 TYPE_BOUND_LIST@[65; 65) 99 TYPE_BOUND_LIST@65..65
100 WHERE_CLAUSE@[65; 81) 100 WHERE_CLAUSE@65..81
101 WHERE_KW@[65; 70) "where" 101 WHERE_KW@65..70 "where"
102 WHITESPACE@[70; 71) " " 102 WHITESPACE@70..71 " "
103 WHERE_PRED@[71; 81) 103 WHERE_PRED@71..81
104 PATH_TYPE@[71; 75) 104 PATH_TYPE@71..75
105 PATH@[71; 75) 105 PATH@71..75
106 PATH_SEGMENT@[71; 75) 106 PATH_SEGMENT@71..75
107 NAME_REF@[71; 75) 107 NAME_REF@71..75
108 IDENT@[71; 75) "Self" 108 IDENT@71..75 "Self"
109 COLON@[75; 76) ":" 109 COLON@75..76 ":"
110 WHITESPACE@[76; 77) " " 110 WHITESPACE@76..77 " "
111 TYPE_BOUND_LIST@[77; 81) 111 TYPE_BOUND_LIST@77..81
112 TYPE_BOUND@[77; 81) 112 TYPE_BOUND@77..81
113 PATH_TYPE@[77; 81) 113 PATH_TYPE@77..81
114 PATH@[77; 81) 114 PATH@77..81
115 PATH_SEGMENT@[77; 81) 115 PATH_SEGMENT@77..81
116 NAME_REF@[77; 78) 116 NAME_REF@77..78
117 IDENT@[77; 78) "T" 117 IDENT@77..78 "T"
118 TYPE_ARG_LIST@[78; 81) 118 TYPE_ARG_LIST@78..81
119 L_ANGLE@[78; 79) "<" 119 L_ANGLE@78..79 "<"
120 TYPE_ARG@[79; 80) 120 TYPE_ARG@79..80
121 PATH_TYPE@[79; 80) 121 PATH_TYPE@79..80
122 PATH@[79; 80) 122 PATH@79..80
123 PATH_SEGMENT@[79; 80) 123 PATH_SEGMENT@79..80
124 NAME_REF@[79; 80) 124 NAME_REF@79..80
125 IDENT@[79; 80) "U" 125 IDENT@79..80 "U"
126 R_ANGLE@[80; 81) ">" 126 R_ANGLE@80..81 ">"
127 SEMICOLON@[81; 82) ";" 127 SEMICOLON@81..82 ";"
128 WHITESPACE@[82; 83) "\n" 128 WHITESPACE@82..83 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast
index 8092d7009..c2e290a62 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0152_arg_with_attr.rast
@@ -1,37 +1,37 @@
1SOURCE_FILE@[0; 34) 1SOURCE_FILE@0..34
2 FN_DEF@[0; 33) 2 FN_DEF@0..33
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 33) 11 BLOCK_EXPR@10..33
12 BLOCK@[10; 33) 12 BLOCK@10..33
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 CALL_EXPR@[16; 31) 15 CALL_EXPR@16..31
16 PATH_EXPR@[16; 19) 16 PATH_EXPR@16..19
17 PATH@[16; 19) 17 PATH@16..19
18 PATH_SEGMENT@[16; 19) 18 PATH_SEGMENT@16..19
19 NAME_REF@[16; 19) 19 NAME_REF@16..19
20 IDENT@[16; 19) "foo" 20 IDENT@16..19 "foo"
21 ARG_LIST@[19; 31) 21 ARG_LIST@19..31
22 L_PAREN@[19; 20) "(" 22 L_PAREN@19..20 "("
23 LITERAL@[20; 30) 23 LITERAL@20..30
24 ATTR@[20; 27) 24 ATTR@20..27
25 POUND@[20; 21) "#" 25 POUND@20..21 "#"
26 L_BRACK@[21; 22) "[" 26 L_BRACK@21..22 "["
27 PATH@[22; 26) 27 PATH@22..26
28 PATH_SEGMENT@[22; 26) 28 PATH_SEGMENT@22..26
29 NAME_REF@[22; 26) 29 NAME_REF@22..26
30 IDENT@[22; 26) "attr" 30 IDENT@22..26 "attr"
31 R_BRACK@[26; 27) "]" 31 R_BRACK@26..27 "]"
32 WHITESPACE@[27; 28) " " 32 WHITESPACE@27..28 " "
33 INT_NUMBER@[28; 30) "92" 33 INT_NUMBER@28..30 "92"
34 R_PAREN@[30; 31) ")" 34 R_PAREN@30..31 ")"
35 WHITESPACE@[31; 32) "\n" 35 WHITESPACE@31..32 "\n"
36 R_CURLY@[32; 33) "}" 36 R_CURLY@32..33 "}"
37 WHITESPACE@[33; 34) "\n" 37 WHITESPACE@33..34 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast b/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast
index ee1bd361d..861065362 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0154_fn_pointer_param_ident_path.rast
@@ -1,58 +1,58 @@
1SOURCE_FILE@[0; 55) 1SOURCE_FILE@0..55
2 TYPE_ALIAS_DEF@[0; 24) 2 TYPE_ALIAS_DEF@0..24
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 8) 5 NAME@5..8
6 IDENT@[5; 8) "Foo" 6 IDENT@5..8 "Foo"
7 WHITESPACE@[8; 9) " " 7 WHITESPACE@8..9 " "
8 EQ@[9; 10) "=" 8 EQ@9..10 "="
9 WHITESPACE@[10; 11) " " 9 WHITESPACE@10..11 " "
10 FN_POINTER_TYPE@[11; 23) 10 FN_POINTER_TYPE@11..23
11 FN_KW@[11; 13) "fn" 11 FN_KW@11..13 "fn"
12 PARAM_LIST@[13; 23) 12 PARAM_LIST@13..23
13 L_PAREN@[13; 14) "(" 13 L_PAREN@13..14 "("
14 PARAM@[14; 22) 14 PARAM@14..22
15 PATH_TYPE@[14; 22) 15 PATH_TYPE@14..22
16 PATH@[14; 22) 16 PATH@14..22
17 PATH@[14; 17) 17 PATH@14..17
18 PATH_SEGMENT@[14; 17) 18 PATH_SEGMENT@14..17
19 NAME_REF@[14; 17) 19 NAME_REF@14..17
20 IDENT@[14; 17) "Bar" 20 IDENT@14..17 "Bar"
21 COLON2@[17; 19) "::" 21 COLON2@17..19 "::"
22 PATH_SEGMENT@[19; 22) 22 PATH_SEGMENT@19..22
23 NAME_REF@[19; 22) 23 NAME_REF@19..22
24 IDENT@[19; 22) "Baz" 24 IDENT@19..22 "Baz"
25 R_PAREN@[22; 23) ")" 25 R_PAREN@22..23 ")"
26 SEMICOLON@[23; 24) ";" 26 SEMICOLON@23..24 ";"
27 WHITESPACE@[24; 25) "\n" 27 WHITESPACE@24..25 "\n"
28 TYPE_ALIAS_DEF@[25; 54) 28 TYPE_ALIAS_DEF@25..54
29 TYPE_KW@[25; 29) "type" 29 TYPE_KW@25..29 "type"
30 WHITESPACE@[29; 30) " " 30 WHITESPACE@29..30 " "
31 NAME@[30; 33) 31 NAME@30..33
32 IDENT@[30; 33) "Qux" 32 IDENT@30..33 "Qux"
33 WHITESPACE@[33; 34) " " 33 WHITESPACE@33..34 " "
34 EQ@[34; 35) "=" 34 EQ@34..35 "="
35 WHITESPACE@[35; 36) " " 35 WHITESPACE@35..36 " "
36 FN_POINTER_TYPE@[36; 53) 36 FN_POINTER_TYPE@36..53
37 FN_KW@[36; 38) "fn" 37 FN_KW@36..38 "fn"
38 PARAM_LIST@[38; 53) 38 PARAM_LIST@38..53
39 L_PAREN@[38; 39) "(" 39 L_PAREN@38..39 "("
40 PARAM@[39; 52) 40 PARAM@39..52
41 BIND_PAT@[39; 42) 41 BIND_PAT@39..42
42 NAME@[39; 42) 42 NAME@39..42
43 IDENT@[39; 42) "baz" 43 IDENT@39..42 "baz"
44 COLON@[42; 43) ":" 44 COLON@42..43 ":"
45 WHITESPACE@[43; 44) " " 45 WHITESPACE@43..44 " "
46 PATH_TYPE@[44; 52) 46 PATH_TYPE@44..52
47 PATH@[44; 52) 47 PATH@44..52
48 PATH@[44; 47) 48 PATH@44..47
49 PATH_SEGMENT@[44; 47) 49 PATH_SEGMENT@44..47
50 NAME_REF@[44; 47) 50 NAME_REF@44..47
51 IDENT@[44; 47) "Bar" 51 IDENT@44..47 "Bar"
52 COLON2@[47; 49) "::" 52 COLON2@47..49 "::"
53 PATH_SEGMENT@[49; 52) 53 PATH_SEGMENT@49..52
54 NAME_REF@[49; 52) 54 NAME_REF@49..52
55 IDENT@[49; 52) "Baz" 55 IDENT@49..52 "Baz"
56 R_PAREN@[52; 53) ")" 56 R_PAREN@52..53 ")"
57 SEMICOLON@[53; 54) ";" 57 SEMICOLON@53..54 ";"
58 WHITESPACE@[54; 55) "\n" 58 WHITESPACE@54..55 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast
index a5f8b6480..dad3dfe4d 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0155_closure_params.rast
@@ -1,70 +1,70 @@
1SOURCE_FILE@[0; 63) 1SOURCE_FILE@0..63
2 FN_DEF@[0; 62) 2 FN_DEF@0..62
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 62) 11 BLOCK_EXPR@10..62
12 BLOCK@[10; 62) 12 BLOCK@10..62
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 15) "\n " 14 WHITESPACE@11..15 "\n "
15 LET_STMT@[15; 60) 15 LET_STMT@15..60
16 LET_KW@[15; 18) "let" 16 LET_KW@15..18 "let"
17 WHITESPACE@[18; 19) " " 17 WHITESPACE@18..19 " "
18 BIND_PAT@[19; 22) 18 BIND_PAT@19..22
19 NAME@[19; 22) 19 NAME@19..22
20 IDENT@[19; 22) "foo" 20 IDENT@19..22 "foo"
21 WHITESPACE@[22; 23) " " 21 WHITESPACE@22..23 " "
22 EQ@[23; 24) "=" 22 EQ@23..24 "="
23 WHITESPACE@[24; 25) " " 23 WHITESPACE@24..25 " "
24 LAMBDA_EXPR@[25; 59) 24 LAMBDA_EXPR@25..59
25 PARAM_LIST@[25; 56) 25 PARAM_LIST@25..56
26 PIPE@[25; 26) "|" 26 PIPE@25..26 "|"
27 PARAM@[26; 29) 27 PARAM@26..29
28 BIND_PAT@[26; 29) 28 BIND_PAT@26..29
29 NAME@[26; 29) 29 NAME@26..29
30 IDENT@[26; 29) "bar" 30 IDENT@26..29 "bar"
31 COMMA@[29; 30) "," 31 COMMA@29..30 ","
32 WHITESPACE@[30; 31) " " 32 WHITESPACE@30..31 " "
33 PARAM@[31; 39) 33 PARAM@31..39
34 BIND_PAT@[31; 34) 34 BIND_PAT@31..34
35 NAME@[31; 34) 35 NAME@31..34
36 IDENT@[31; 34) "baz" 36 IDENT@31..34 "baz"
37 COLON@[34; 35) ":" 37 COLON@34..35 ":"
38 WHITESPACE@[35; 36) " " 38 WHITESPACE@35..36 " "
39 PATH_TYPE@[36; 39) 39 PATH_TYPE@36..39
40 PATH@[36; 39) 40 PATH@36..39
41 PATH_SEGMENT@[36; 39) 41 PATH_SEGMENT@36..39
42 NAME_REF@[36; 39) 42 NAME_REF@36..39
43 IDENT@[36; 39) "Baz" 43 IDENT@36..39 "Baz"
44 COMMA@[39; 40) "," 44 COMMA@39..40 ","
45 WHITESPACE@[40; 41) " " 45 WHITESPACE@40..41 " "
46 PARAM@[41; 55) 46 PARAM@41..55
47 BIND_PAT@[41; 44) 47 BIND_PAT@41..44
48 NAME@[41; 44) 48 NAME@41..44
49 IDENT@[41; 44) "qux" 49 IDENT@41..44 "qux"
50 COLON@[44; 45) ":" 50 COLON@44..45 ":"
51 WHITESPACE@[45; 46) " " 51 WHITESPACE@45..46 " "
52 PATH_TYPE@[46; 55) 52 PATH_TYPE@46..55
53 PATH@[46; 55) 53 PATH@46..55
54 PATH@[46; 49) 54 PATH@46..49
55 PATH_SEGMENT@[46; 49) 55 PATH_SEGMENT@46..49
56 NAME_REF@[46; 49) 56 NAME_REF@46..49
57 IDENT@[46; 49) "Qux" 57 IDENT@46..49 "Qux"
58 COLON2@[49; 51) "::" 58 COLON2@49..51 "::"
59 PATH_SEGMENT@[51; 55) 59 PATH_SEGMENT@51..55
60 NAME_REF@[51; 55) 60 NAME_REF@51..55
61 IDENT@[51; 55) "Quux" 61 IDENT@51..55 "Quux"
62 PIPE@[55; 56) "|" 62 PIPE@55..56 "|"
63 WHITESPACE@[56; 57) " " 63 WHITESPACE@56..57 " "
64 TUPLE_EXPR@[57; 59) 64 TUPLE_EXPR@57..59
65 L_PAREN@[57; 58) "(" 65 L_PAREN@57..58 "("
66 R_PAREN@[58; 59) ")" 66 R_PAREN@58..59 ")"
67 SEMICOLON@[59; 60) ";" 67 SEMICOLON@59..60 ";"
68 WHITESPACE@[60; 61) "\n" 68 WHITESPACE@60..61 "\n"
69 R_CURLY@[61; 62) "}" 69 R_CURLY@61..62 "}"
70 WHITESPACE@[62; 63) "\n" 70 WHITESPACE@62..63 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast b/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast
index 103e254a6..3110bf5c0 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0156_fn_def_param.rast
@@ -1,44 +1,44 @@
1SOURCE_FILE@[0; 30) 1SOURCE_FILE@0..30
2 FN_DEF@[0; 29) 2 FN_DEF@0..29
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
7 PARAM_LIST@[6; 26) 7 PARAM_LIST@6..26
8 L_PAREN@[6; 7) "(" 8 L_PAREN@6..7 "("
9 PARAM@[7; 25) 9 PARAM@7..25
10 TUPLE_PAT@[7; 13) 10 TUPLE_PAT@7..13
11 L_PAREN@[7; 8) "(" 11 L_PAREN@7..8 "("
12 BIND_PAT@[8; 9) 12 BIND_PAT@8..9
13 NAME@[8; 9) 13 NAME@8..9
14 IDENT@[8; 9) "x" 14 IDENT@8..9 "x"
15 COMMA@[9; 10) "," 15 COMMA@9..10 ","
16 WHITESPACE@[10; 11) " " 16 WHITESPACE@10..11 " "
17 BIND_PAT@[11; 12) 17 BIND_PAT@11..12
18 NAME@[11; 12) 18 NAME@11..12
19 IDENT@[11; 12) "y" 19 IDENT@11..12 "y"
20 R_PAREN@[12; 13) ")" 20 R_PAREN@12..13 ")"
21 COLON@[13; 14) ":" 21 COLON@13..14 ":"
22 WHITESPACE@[14; 15) " " 22 WHITESPACE@14..15 " "
23 TUPLE_TYPE@[15; 25) 23 TUPLE_TYPE@15..25
24 L_PAREN@[15; 16) "(" 24 L_PAREN@15..16 "("
25 PATH_TYPE@[16; 19) 25 PATH_TYPE@16..19
26 PATH@[16; 19) 26 PATH@16..19
27 PATH_SEGMENT@[16; 19) 27 PATH_SEGMENT@16..19
28 NAME_REF@[16; 19) 28 NAME_REF@16..19
29 IDENT@[16; 19) "i32" 29 IDENT@16..19 "i32"
30 COMMA@[19; 20) "," 30 COMMA@19..20 ","
31 WHITESPACE@[20; 21) " " 31 WHITESPACE@20..21 " "
32 PATH_TYPE@[21; 24) 32 PATH_TYPE@21..24
33 PATH@[21; 24) 33 PATH@21..24
34 PATH_SEGMENT@[21; 24) 34 PATH_SEGMENT@21..24
35 NAME_REF@[21; 24) 35 NAME_REF@21..24
36 IDENT@[21; 24) "i32" 36 IDENT@21..24 "i32"
37 R_PAREN@[24; 25) ")" 37 R_PAREN@24..25 ")"
38 R_PAREN@[25; 26) ")" 38 R_PAREN@25..26 ")"
39 WHITESPACE@[26; 27) " " 39 WHITESPACE@26..27 " "
40 BLOCK_EXPR@[27; 29) 40 BLOCK_EXPR@27..29
41 BLOCK@[27; 29) 41 BLOCK@27..29
42 L_CURLY@[27; 28) "{" 42 L_CURLY@27..28 "{"
43 R_CURLY@[28; 29) "}" 43 R_CURLY@28..29 "}"
44 WHITESPACE@[29; 30) "\n" 44 WHITESPACE@29..30 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast b/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast
index 3a196d3c0..3f3e6a9a2 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0156_or_pattern.rast
@@ -1,112 +1,112 @@
1SOURCE_FILE@[0; 130) 1SOURCE_FILE@0..130
2 FN_DEF@[0; 129) 2 FN_DEF@0..129
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 129) 11 BLOCK_EXPR@10..129
12 BLOCK@[10; 129) 12 BLOCK@10..129
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 16) "\n " 14 WHITESPACE@11..16 "\n "
15 MATCH_EXPR@[16; 127) 15 MATCH_EXPR@16..127
16 MATCH_KW@[16; 21) "match" 16 MATCH_KW@16..21 "match"
17 WHITESPACE@[21; 22) " " 17 WHITESPACE@21..22 " "
18 TUPLE_EXPR@[22; 24) 18 TUPLE_EXPR@22..24
19 L_PAREN@[22; 23) "(" 19 L_PAREN@22..23 "("
20 R_PAREN@[23; 24) ")" 20 R_PAREN@23..24 ")"
21 WHITESPACE@[24; 25) " " 21 WHITESPACE@24..25 " "
22 MATCH_ARM_LIST@[25; 127) 22 MATCH_ARM_LIST@25..127
23 L_CURLY@[25; 26) "{" 23 L_CURLY@25..26 "{"
24 WHITESPACE@[26; 35) "\n " 24 WHITESPACE@26..35 "\n "
25 MATCH_ARM@[35; 48) 25 MATCH_ARM@35..48
26 PAREN_PAT@[35; 42) 26 PAREN_PAT@35..42
27 L_PAREN@[35; 36) "(" 27 L_PAREN@35..36 "("
28 OR_PAT@[36; 41) 28 OR_PAT@36..41
29 PLACEHOLDER_PAT@[36; 37) 29 PLACEHOLDER_PAT@36..37
30 UNDERSCORE@[36; 37) "_" 30 UNDERSCORE@36..37 "_"
31 WHITESPACE@[37; 38) " " 31 WHITESPACE@37..38 " "
32 PIPE@[38; 39) "|" 32 PIPE@38..39 "|"
33 WHITESPACE@[39; 40) " " 33 WHITESPACE@39..40 " "
34 PLACEHOLDER_PAT@[40; 41) 34 PLACEHOLDER_PAT@40..41
35 UNDERSCORE@[40; 41) "_" 35 UNDERSCORE@40..41 "_"
36 R_PAREN@[41; 42) ")" 36 R_PAREN@41..42 ")"
37 WHITESPACE@[42; 43) " " 37 WHITESPACE@42..43 " "
38 FAT_ARROW@[43; 45) "=>" 38 FAT_ARROW@43..45 "=>"
39 WHITESPACE@[45; 46) " " 39 WHITESPACE@45..46 " "
40 TUPLE_EXPR@[46; 48) 40 TUPLE_EXPR@46..48
41 L_PAREN@[46; 47) "(" 41 L_PAREN@46..47 "("
42 R_PAREN@[47; 48) ")" 42 R_PAREN@47..48 ")"
43 COMMA@[48; 49) "," 43 COMMA@48..49 ","
44 WHITESPACE@[49; 58) "\n " 44 WHITESPACE@49..58 "\n "
45 MATCH_ARM@[58; 72) 45 MATCH_ARM@58..72
46 REF_PAT@[58; 66) 46 REF_PAT@58..66
47 AMP@[58; 59) "&" 47 AMP@58..59 "&"
48 PAREN_PAT@[59; 66) 48 PAREN_PAT@59..66
49 L_PAREN@[59; 60) "(" 49 L_PAREN@59..60 "("
50 OR_PAT@[60; 65) 50 OR_PAT@60..65
51 PLACEHOLDER_PAT@[60; 61) 51 PLACEHOLDER_PAT@60..61
52 UNDERSCORE@[60; 61) "_" 52 UNDERSCORE@60..61 "_"
53 WHITESPACE@[61; 62) " " 53 WHITESPACE@61..62 " "
54 PIPE@[62; 63) "|" 54 PIPE@62..63 "|"
55 WHITESPACE@[63; 64) " " 55 WHITESPACE@63..64 " "
56 PLACEHOLDER_PAT@[64; 65) 56 PLACEHOLDER_PAT@64..65
57 UNDERSCORE@[64; 65) "_" 57 UNDERSCORE@64..65 "_"
58 R_PAREN@[65; 66) ")" 58 R_PAREN@65..66 ")"
59 WHITESPACE@[66; 67) " " 59 WHITESPACE@66..67 " "
60 FAT_ARROW@[67; 69) "=>" 60 FAT_ARROW@67..69 "=>"
61 WHITESPACE@[69; 70) " " 61 WHITESPACE@69..70 " "
62 TUPLE_EXPR@[70; 72) 62 TUPLE_EXPR@70..72
63 L_PAREN@[70; 71) "(" 63 L_PAREN@70..71 "("
64 R_PAREN@[71; 72) ")" 64 R_PAREN@71..72 ")"
65 COMMA@[72; 73) "," 65 COMMA@72..73 ","
66 WHITESPACE@[73; 82) "\n " 66 WHITESPACE@73..82 "\n "
67 MATCH_ARM@[82; 96) 67 MATCH_ARM@82..96
68 TUPLE_PAT@[82; 90) 68 TUPLE_PAT@82..90
69 L_PAREN@[82; 83) "(" 69 L_PAREN@82..83 "("
70 OR_PAT@[83; 88) 70 OR_PAT@83..88
71 PLACEHOLDER_PAT@[83; 84) 71 PLACEHOLDER_PAT@83..84
72 UNDERSCORE@[83; 84) "_" 72 UNDERSCORE@83..84 "_"
73 WHITESPACE@[84; 85) " " 73 WHITESPACE@84..85 " "
74 PIPE@[85; 86) "|" 74 PIPE@85..86 "|"
75 WHITESPACE@[86; 87) " " 75 WHITESPACE@86..87 " "
76 PLACEHOLDER_PAT@[87; 88) 76 PLACEHOLDER_PAT@87..88
77 UNDERSCORE@[87; 88) "_" 77 UNDERSCORE@87..88 "_"
78 COMMA@[88; 89) "," 78 COMMA@88..89 ","
79 R_PAREN@[89; 90) ")" 79 R_PAREN@89..90 ")"
80 WHITESPACE@[90; 91) " " 80 WHITESPACE@90..91 " "
81 FAT_ARROW@[91; 93) "=>" 81 FAT_ARROW@91..93 "=>"
82 WHITESPACE@[93; 94) " " 82 WHITESPACE@93..94 " "
83 TUPLE_EXPR@[94; 96) 83 TUPLE_EXPR@94..96
84 L_PAREN@[94; 95) "(" 84 L_PAREN@94..95 "("
85 R_PAREN@[95; 96) ")" 85 R_PAREN@95..96 ")"
86 COMMA@[96; 97) "," 86 COMMA@96..97 ","
87 WHITESPACE@[97; 106) "\n " 87 WHITESPACE@97..106 "\n "
88 MATCH_ARM@[106; 120) 88 MATCH_ARM@106..120
89 SLICE_PAT@[106; 114) 89 SLICE_PAT@106..114
90 L_BRACK@[106; 107) "[" 90 L_BRACK@106..107 "["
91 OR_PAT@[107; 112) 91 OR_PAT@107..112
92 PLACEHOLDER_PAT@[107; 108) 92 PLACEHOLDER_PAT@107..108
93 UNDERSCORE@[107; 108) "_" 93 UNDERSCORE@107..108 "_"
94 WHITESPACE@[108; 109) " " 94 WHITESPACE@108..109 " "
95 PIPE@[109; 110) "|" 95 PIPE@109..110 "|"
96 WHITESPACE@[110; 111) " " 96 WHITESPACE@110..111 " "
97 PLACEHOLDER_PAT@[111; 112) 97 PLACEHOLDER_PAT@111..112
98 UNDERSCORE@[111; 112) "_" 98 UNDERSCORE@111..112 "_"
99 COMMA@[112; 113) "," 99 COMMA@112..113 ","
100 R_BRACK@[113; 114) "]" 100 R_BRACK@113..114 "]"
101 WHITESPACE@[114; 115) " " 101 WHITESPACE@114..115 " "
102 FAT_ARROW@[115; 117) "=>" 102 FAT_ARROW@115..117 "=>"
103 WHITESPACE@[117; 118) " " 103 WHITESPACE@117..118 " "
104 TUPLE_EXPR@[118; 120) 104 TUPLE_EXPR@118..120
105 L_PAREN@[118; 119) "(" 105 L_PAREN@118..119 "("
106 R_PAREN@[119; 120) ")" 106 R_PAREN@119..120 ")"
107 COMMA@[120; 121) "," 107 COMMA@120..121 ","
108 WHITESPACE@[121; 126) "\n " 108 WHITESPACE@121..126 "\n "
109 R_CURLY@[126; 127) "}" 109 R_CURLY@126..127 "}"
110 WHITESPACE@[127; 128) "\n" 110 WHITESPACE@127..128 "\n"
111 R_CURLY@[128; 129) "}" 111 R_CURLY@128..129 "}"
112 WHITESPACE@[129; 130) "\n" 112 WHITESPACE@129..130 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast b/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast
index e0081a9f2..fad9df007 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0157_fn_pointer_unnamed_arg.rast
@@ -1,26 +1,26 @@
1SOURCE_FILE@[0; 23) 1SOURCE_FILE@0..23
2 TYPE_ALIAS_DEF@[0; 22) 2 TYPE_ALIAS_DEF@0..22
3 TYPE_KW@[0; 4) "type" 3 TYPE_KW@0..4 "type"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 8) 5 NAME@5..8
6 IDENT@[5; 8) "Foo" 6 IDENT@5..8 "Foo"
7 WHITESPACE@[8; 9) " " 7 WHITESPACE@8..9 " "
8 EQ@[9; 10) "=" 8 EQ@9..10 "="
9 WHITESPACE@[10; 11) " " 9 WHITESPACE@10..11 " "
10 FN_POINTER_TYPE@[11; 21) 10 FN_POINTER_TYPE@11..21
11 FN_KW@[11; 13) "fn" 11 FN_KW@11..13 "fn"
12 PARAM_LIST@[13; 21) 12 PARAM_LIST@13..21
13 L_PAREN@[13; 14) "(" 13 L_PAREN@13..14 "("
14 PARAM@[14; 20) 14 PARAM@14..20
15 PLACEHOLDER_PAT@[14; 15) 15 PLACEHOLDER_PAT@14..15
16 UNDERSCORE@[14; 15) "_" 16 UNDERSCORE@14..15 "_"
17 COLON@[15; 16) ":" 17 COLON@15..16 ":"
18 WHITESPACE@[16; 17) " " 18 WHITESPACE@16..17 " "
19 PATH_TYPE@[17; 20) 19 PATH_TYPE@17..20
20 PATH@[17; 20) 20 PATH@17..20
21 PATH_SEGMENT@[17; 20) 21 PATH_SEGMENT@17..20
22 NAME_REF@[17; 20) 22 NAME_REF@17..20
23 IDENT@[17; 20) "bar" 23 IDENT@17..20 "bar"
24 R_PAREN@[20; 21) ")" 24 R_PAREN@20..21 ")"
25 SEMICOLON@[21; 22) ";" 25 SEMICOLON@21..22 ";"
26 WHITESPACE@[22; 23) "\n" 26 WHITESPACE@22..23 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast b/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast
index a378dd80b..e8a0e9ddd 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0157_variant_discriminant.rast
@@ -1,30 +1,30 @@
1SOURCE_FILE@[0; 23) 1SOURCE_FILE@0..23
2 ENUM_DEF@[0; 22) 2 ENUM_DEF@0..22
3 ENUM_KW@[0; 4) "enum" 3 ENUM_KW@0..4 "enum"
4 WHITESPACE@[4; 5) " " 4 WHITESPACE@4..5 " "
5 NAME@[5; 6) 5 NAME@5..6
6 IDENT@[5; 6) "E" 6 IDENT@5..6 "E"
7 WHITESPACE@[6; 7) " " 7 WHITESPACE@6..7 " "
8 ENUM_VARIANT_LIST@[7; 22) 8 ENUM_VARIANT_LIST@7..22
9 L_CURLY@[7; 8) "{" 9 L_CURLY@7..8 "{"
10 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 ENUM_VARIANT@[9; 20) 11 ENUM_VARIANT@9..20
12 NAME@[9; 10) 12 NAME@9..10
13 IDENT@[9; 10) "X" 13 IDENT@9..10 "X"
14 TUPLE_FIELD_DEF_LIST@[10; 15) 14 TUPLE_FIELD_DEF_LIST@10..15
15 L_PAREN@[10; 11) "(" 15 L_PAREN@10..11 "("
16 TUPLE_FIELD_DEF@[11; 14) 16 TUPLE_FIELD_DEF@11..14
17 PATH_TYPE@[11; 14) 17 PATH_TYPE@11..14
18 PATH@[11; 14) 18 PATH@11..14
19 PATH_SEGMENT@[11; 14) 19 PATH_SEGMENT@11..14
20 NAME_REF@[11; 14) 20 NAME_REF@11..14
21 IDENT@[11; 14) "i32" 21 IDENT@11..14 "i32"
22 R_PAREN@[14; 15) ")" 22 R_PAREN@14..15 ")"
23 WHITESPACE@[15; 16) " " 23 WHITESPACE@15..16 " "
24 EQ@[16; 17) "=" 24 EQ@16..17 "="
25 WHITESPACE@[17; 18) " " 25 WHITESPACE@17..18 " "
26 LITERAL@[18; 20) 26 LITERAL@18..20
27 INT_NUMBER@[18; 20) "10" 27 INT_NUMBER@18..20 "10"
28 WHITESPACE@[20; 21) " " 28 WHITESPACE@20..21 " "
29 R_CURLY@[21; 22) "}" 29 R_CURLY@21..22 "}"
30 WHITESPACE@[22; 23) "\n" 30 WHITESPACE@22..23 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast
index 548be2698..50db9e967 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0158_binop_resets_statementness.rast
@@ -1,38 +1,38 @@
1SOURCE_FILE@[0; 28) 1SOURCE_FILE@0..28
2 FN_DEF@[0; 27) 2 FN_DEF@0..27
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 6) 5 NAME@3..6
6 IDENT@[3; 6) "foo" 6 IDENT@3..6 "foo"
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 WHITESPACE@[8; 9) " " 10 WHITESPACE@8..9 " "
11 BLOCK_EXPR@[9; 27) 11 BLOCK_EXPR@9..27
12 BLOCK@[9; 27) 12 BLOCK@9..27
13 L_CURLY@[9; 10) "{" 13 L_CURLY@9..10 "{"
14 WHITESPACE@[10; 15) "\n " 14 WHITESPACE@10..15 "\n "
15 EXPR_STMT@[15; 25) 15 EXPR_STMT@15..25
16 BIN_EXPR@[15; 24) 16 BIN_EXPR@15..24
17 PATH_EXPR@[15; 16) 17 PATH_EXPR@15..16
18 PATH@[15; 16) 18 PATH@15..16
19 PATH_SEGMENT@[15; 16) 19 PATH_SEGMENT@15..16
20 NAME_REF@[15; 16) 20 NAME_REF@15..16
21 IDENT@[15; 16) "v" 21 IDENT@15..16 "v"
22 WHITESPACE@[16; 17) " " 22 WHITESPACE@16..17 " "
23 EQ@[17; 18) "=" 23 EQ@17..18 "="
24 WHITESPACE@[18; 19) " " 24 WHITESPACE@18..19 " "
25 BIN_EXPR@[19; 24) 25 BIN_EXPR@19..24
26 BLOCK_EXPR@[19; 22) 26 BLOCK_EXPR@19..22
27 BLOCK@[19; 22) 27 BLOCK@19..22
28 L_CURLY@[19; 20) "{" 28 L_CURLY@19..20 "{"
29 LITERAL@[20; 21) 29 LITERAL@20..21
30 INT_NUMBER@[20; 21) "1" 30 INT_NUMBER@20..21 "1"
31 R_CURLY@[21; 22) "}" 31 R_CURLY@21..22 "}"
32 AMP@[22; 23) "&" 32 AMP@22..23 "&"
33 LITERAL@[23; 24) 33 LITERAL@23..24
34 INT_NUMBER@[23; 24) "2" 34 INT_NUMBER@23..24 "2"
35 SEMICOLON@[24; 25) ";" 35 SEMICOLON@24..25 ";"
36 WHITESPACE@[25; 26) "\n" 36 WHITESPACE@25..26 "\n"
37 R_CURLY@[26; 27) "}" 37 R_CURLY@26..27 "}"
38 WHITESPACE@[27; 28) "\n" 38 WHITESPACE@27..28 "\n"
diff --git a/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast b/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast
index a7a547fce..c05e05bf3 100644
--- a/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast
+++ b/crates/ra_syntax/test_data/parser/inline/ok/0158_lambda_ret_block.rast
@@ -1,45 +1,45 @@
1SOURCE_FILE@[0; 34) 1SOURCE_FILE@0..34
2 FN_DEF@[0; 33) 2 FN_DEF@0..33
3 FN_KW@[0; 2) "fn" 3 FN_KW@0..2 "fn"
4 WHITESPACE@[2; 3) " " 4 WHITESPACE@2..3 " "
5 NAME@[3; 7) 5 NAME@3..7
6 IDENT@[3; 7) "main" 6 IDENT@3..7 "main"
7 PARAM_LIST@[7; 9) 7 PARAM_LIST@7..9
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_EXPR@[10; 33) 11 BLOCK_EXPR@10..33
12 BLOCK@[10; 33) 12 BLOCK@10..33
13 L_CURLY@[10; 11) "{" 13 L_CURLY@10..11 "{"
14 WHITESPACE@[11; 12) " " 14 WHITESPACE@11..12 " "
15 EXPR_STMT@[12; 31) 15 EXPR_STMT@12..31
16 CALL_EXPR@[12; 30) 16 CALL_EXPR@12..30
17 LAMBDA_EXPR@[12; 28) 17 LAMBDA_EXPR@12..28
18 PARAM_LIST@[12; 14) 18 PARAM_LIST@12..14
19 PIPE@[12; 13) "|" 19 PIPE@12..13 "|"
20 PIPE@[13; 14) "|" 20 PIPE@13..14 "|"
21 WHITESPACE@[14; 15) " " 21 WHITESPACE@14..15 " "
22 RET_TYPE@[15; 21) 22 RET_TYPE@15..21
23 THIN_ARROW@[15; 17) "->" 23 THIN_ARROW@15..17 "->"
24 WHITESPACE@[17; 18) " " 24 WHITESPACE@17..18 " "
25 PATH_TYPE@[18; 21) 25 PATH_TYPE@18..21
26 PATH@[18; 21) 26 PATH@18..21
27 PATH_SEGMENT@[18; 21) 27 PATH_SEGMENT@18..21
28 NAME_REF@[18; 21) 28 NAME_REF@18..21
29 IDENT@[18; 21) "i32" 29 IDENT@18..21 "i32"
30 WHITESPACE@[21; 22) " " 30 WHITESPACE@21..22 " "
31 BLOCK_EXPR@[22; 28) 31 BLOCK_EXPR@22..28
32 BLOCK@[22; 28) 32 BLOCK@22..28
33 L_CURLY@[22; 23) "{" 33 L_CURLY@22..23 "{"
34 WHITESPACE@[23; 24) " " 34 WHITESPACE@23..24 " "
35 LITERAL@[24; 26) 35 LITERAL@24..26
36 INT_NUMBER@[24; 26) "92" 36 INT_NUMBER@24..26 "92"
37 WHITESPACE@[26; 27) " " 37 WHITESPACE@26..27 " "
38 R_CURLY@[27; 28) "}" 38 R_CURLY@27..28 "}"
39 ARG_LIST@[28; 30) 39 ARG_LIST@28..30
40 L_PAREN@[28; 29) "(" 40 L_PAREN@28..29 "("
41 R_PAREN@[29; 30) ")" 41 R_PAREN@29..30 ")"
42 SEMICOLON@[30; 31) ";" 42 SEMICOLON@30..31 ";"
43 WHITESPACE@[31; 32) " " 43 WHITESPACE@31..32 " "
44 R_CURLY@[32; 33) "}" 44 R_CURLY@32..33 "}"
45 WHITESPACE@[33; 34) "\n" 45 WHITESPACE@33..34 "\n"