aboutsummaryrefslogtreecommitdiff
path: root/tests/data
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2018-08-05 20:06:34 +0100
committerAleksey Kladov <[email protected]>2018-08-05 20:06:34 +0100
commit50a7daa042c5f652cd724de55a056f9785a22a85 (patch)
treea836549996bdad7e5f94b8ec041bfba18d2d32b6 /tests/data
parent80366e90f5c1b809c8902e42dced42c0dc9d92ac (diff)
Smarter whitespace
Diffstat (limited to 'tests/data')
-rw-r--r--tests/data/parser/err/0000_struct_field_missing_comma.txt38
-rw-r--r--tests/data/parser/err/0001_item_recovery_in_file.txt16
-rw-r--r--tests/data/parser/err/0002_duplicate_shebang.txt6
-rw-r--r--tests/data/parser/err/0003_C++_semicolon.txt38
-rw-r--r--tests/data/parser/err/0004_use_path_bad_segment.txt12
-rw-r--r--tests/data/parser/err/0005_attribute_recover.txt46
-rw-r--r--tests/data/parser/err/0006_named_field_recovery.txt86
-rw-r--r--tests/data/parser/err/0007_stray_curly_in_file.txt34
-rw-r--r--tests/data/parser/err/0008_item_block_recovery.txt38
-rw-r--r--tests/data/parser/err/0009_broken_struct_type_parameter.txt38
-rw-r--r--tests/data/parser/err/0010_unsafe_lambda_block.txt38
-rw-r--r--tests/data/parser/err/0011_extern_struct.txt14
-rw-r--r--tests/data/parser/inline/0001_const_unsafe_fn.txt14
-rw-r--r--tests/data/parser/inline/0002_const_fn.txt14
-rw-r--r--tests/data/parser/inline/0003_extern_block.txt8
-rw-r--r--tests/data/parser/inline/0004_extern_fn.txt18
-rw-r--r--tests/data/parser/inline/0005_extern_crate.txt8
-rw-r--r--tests/data/parser/inline/0007_unsafe_trait.txt10
-rw-r--r--tests/data/parser/inline/0008_unsafe_impl.txt16
-rw-r--r--tests/data/parser/inline/0009_unsafe_auto_trait.txt10
-rw-r--r--tests/data/parser/inline/0010_unsafe_default_impl.txt16
-rw-r--r--tests/data/parser/inline/0011_unsafe_fn.txt14
-rw-r--r--tests/data/parser/inline/0012_unsafe_extern_fn.txt20
-rw-r--r--tests/data/parser/inline/0013_unsafe_block_in_mod.txt32
-rw-r--r--tests/data/parser/inline/0014_type_item_type_params.txt16
-rw-r--r--tests/data/parser/inline/0015_type_item.txt20
-rw-r--r--tests/data/parser/inline/0016_type_item_where_clause.txt18
-rw-r--r--tests/data/parser/inline/0017_paren_type.txt14
-rw-r--r--tests/data/parser/inline/0018_unit_type.txt14
-rw-r--r--tests/data/parser/inline/0019_singleton_tuple_type.txt14
-rw-r--r--tests/data/parser/inline/0020_never_type.txt14
-rw-r--r--tests/data/parser/inline/0021_pointer_type_no_mutability.txt14
-rw-r--r--tests/data/parser/inline/0022_pointer_type_mut.txt36
-rw-r--r--tests/data/parser/inline/0023_array_type_missing_semi.txt22
-rw-r--r--tests/data/parser/inline/0024_array_type.txt18
-rw-r--r--tests/data/parser/inline/0025_slice_type.txt14
-rw-r--r--tests/data/parser/inline/0026_reference_type;.txt50
-rw-r--r--tests/data/parser/inline/0027_placeholder_type.txt14
-rw-r--r--tests/data/parser/inline/0028_fn_pointer_type.txt48
-rw-r--r--tests/data/parser/inline/0029_fn_pointer_type_missing_fn.txt16
-rw-r--r--tests/data/parser/inline/0030_fn_pointer_type_with_ret.txt22
-rw-r--r--tests/data/parser/inline/0031_for_type.txt26
-rw-r--r--tests/data/parser/inline/0032_path_type.txt78
-rw-r--r--tests/data/parser/inline/0034_bind_pat.txt140
-rw-r--r--tests/data/parser/inline/0035_ref_pat.txt54
-rw-r--r--tests/data/parser/inline/0036_placeholder_pat.txt30
-rw-r--r--tests/data/parser/inline/0037_crate_visibility.txt48
-rw-r--r--tests/data/parser/inline/0038_fn_item_ret_type.txt34
-rw-r--r--tests/data/parser/inline/0039_path_expr.txt96
-rw-r--r--tests/data/parser/inline/0040_expr_literals.txt156
-rw-r--r--tests/data/parser/inline/0041_type_param_bounds.txt16
-rw-r--r--tests/data/parser/inline/0042_type_param_default.txt22
-rw-r--r--tests/data/parser/inline/0043_call_expr.txt68
-rw-r--r--tests/data/parser/inline/0044_ref_expr.txt48
-rw-r--r--tests/data/parser/inline/0045_block.txt96
-rw-r--r--tests/data/parser/inline/0046_default_impl.txt16
-rw-r--r--tests/data/parser/inline/0047_impl_item.txt16
-rw-r--r--tests/data/parser/inline/0048_impl_item_neg.txt26
-rw-r--r--tests/data/parser/inline/0050_let_stmt;.txt88
-rw-r--r--tests/data/parser/inline/0051_method_call_expr.txt38
-rw-r--r--tests/data/parser/inline/0052_field_expr.txt34
-rw-r--r--tests/data/parser/inline/0053_block_items.txt30
-rw-r--r--tests/data/parser/inline/0054_impl_item_items.txt90
-rw-r--r--tests/data/parser/inline/0055_self_param.txt92
-rw-r--r--tests/data/parser/inline/0056_trait_item.txt32
-rw-r--r--tests/data/parser/inline/0057_auto_trait.txt10
-rw-r--r--tests/data/parser/inline/0058_type_arg.txt40
-rw-r--r--tests/data/parser/inline/0059_fn_item_where_clause.txt18
-rw-r--r--tests/data/parser/inline/0060_fn_item_type_params.txt28
-rw-r--r--tests/data/parser/inline/0061_struct_lit.txt92
-rw-r--r--tests/data/parser/inline/0062_deref_expr.txt22
-rw-r--r--tests/data/parser/inline/0063_impl_trait_type.txt26
-rw-r--r--tests/data/parser/inline/0064_param_list.txt98
-rw-r--r--tests/data/parser/inline/0065_if_expr.txt94
-rw-r--r--tests/data/parser/inline/0066_lambda_expr.txt80
-rw-r--r--tests/data/parser/inline/0066_not_expr.txt22
-rw-r--r--tests/data/parser/inline/0067_block_expr.txt26
-rw-r--r--tests/data/parser/inline/0068_pub_expr.txt28
-rw-r--r--tests/data/parser/inline/0068_return_expr.txt30
-rw-r--r--tests/data/parser/inline/0069_match_arm.txt74
-rw-r--r--tests/data/parser/inline/0070_match_expr.txt44
-rw-r--r--tests/data/parser/inline/0071_tuple_pat_fields.txt102
-rw-r--r--tests/data/parser/inline/0072_path_part.txt104
-rw-r--r--tests/data/parser/inline/0073_struct_pat_fields.txt128
-rw-r--r--tests/data/parser/inline/0074_expr_binding_power.txt90
-rw-r--r--tests/data/parser/inline/0075_try_expr.txt30
-rw-r--r--tests/data/parser/inline/0076_cond.txt46
-rw-r--r--tests/data/parser/inline/0077_while_expr.txt60
-rw-r--r--tests/data/parser/inline/0078_mod_contents.txt34
-rw-r--r--tests/data/parser/inline/0080_tuple_expr.txt30
-rw-r--r--tests/data/parser/inline/0081_index_expr.txt32
-rw-r--r--tests/data/parser/inline/0082_range_binding_power.txt90
-rw-r--r--tests/data/parser/inline/0083_postfix_range.txt34
-rw-r--r--tests/data/parser/inline/0084_compound_ops.txt110
-rw-r--r--tests/data/parser/inline/0084_loop_expr.txt26
-rw-r--r--tests/data/parser/inline/0085_for_expr.txt36
-rw-r--r--tests/data/parser/inline/0086_array_expr.txt42
-rw-r--r--tests/data/parser/ok/0001_struct_item.txt6
-rw-r--r--tests/data/parser/ok/0002_struct_item_field.txt24
-rw-r--r--tests/data/parser/ok/0005_fn_item.txt14
-rw-r--r--tests/data/parser/ok/0006_inner_attributes.txt84
-rw-r--r--tests/data/parser/ok/0007_extern_crate.txt22
-rw-r--r--tests/data/parser/ok/0008_mod_item.txt84
-rw-r--r--tests/data/parser/ok/0009_use_item.txt22
-rw-r--r--tests/data/parser/ok/0010_use_path_segments.txt34
-rw-r--r--tests/data/parser/ok/0011_outer_attribute.txt22
-rw-r--r--tests/data/parser/ok/0012_visibility.txt98
-rw-r--r--tests/data/parser/ok/0013_use_path_self_super.txt48
-rw-r--r--tests/data/parser/ok/0014_use_tree.txt92
-rw-r--r--tests/data/parser/ok/0015_use_tree.txt70
-rw-r--r--tests/data/parser/ok/0016_struct_flavors.txt96
-rw-r--r--tests/data/parser/ok/0017_attr_trailing_comma.txt18
-rw-r--r--tests/data/parser/ok/0018_struct_type_params.txt172
-rw-r--r--tests/data/parser/ok/0019_enums.txt146
-rw-r--r--tests/data/parser/ok/0020_type_param_bounds.txt136
-rw-r--r--tests/data/parser/ok/0021_extern_fn.txt54
-rw-r--r--tests/data/parser/ok/0022_empty_extern_block.txt16
-rw-r--r--tests/data/parser/ok/0023_static_items.txt48
-rw-r--r--tests/data/parser/ok/0024_const_item.txt48
-rw-r--r--tests/data/parser/ok/0025_extern_fn_in_block.txt34
-rw-r--r--tests/data/parser/ok/0026_const_fn_in_block.txt30
-rw-r--r--tests/data/parser/ok/0027_unsafe_fn_in_block.txt40
122 files changed, 2753 insertions, 2753 deletions
diff --git a/tests/data/parser/err/0000_struct_field_missing_comma.txt b/tests/data/parser/err/0000_struct_field_missing_comma.txt
index 2bb3ee6ec..1b5d722f8 100644
--- a/tests/data/parser/err/0000_struct_field_missing_comma.txt
+++ b/tests/data/parser/err/0000_struct_field_missing_comma.txt
@@ -1,33 +1,33 @@
1FILE@[0; 34) 1FILE@[0; 34)
2 STRUCT_ITEM@[0; 34) 2 STRUCT_ITEM@[0; 34)
3 STRUCT_KW@[0; 6) 3 STRUCT_KW@[0; 6)
4 NAME@[6; 9) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 5 NAME@[7; 8)
6 IDENT@[7; 8) "S" 6 IDENT@[7; 8) "S"
7 WHITESPACE@[8; 9) 7 WHITESPACE@[8; 9)
8 L_CURLY@[9; 10) 8 L_CURLY@[9; 10)
9 NAMED_FIELD@[10; 26) 9 WHITESPACE@[10; 15)
10 NAME@[10; 16) 10 NAMED_FIELD@[15; 21)
11 WHITESPACE@[10; 15) 11 NAME@[15; 16)
12 IDENT@[15; 16) "a" 12 IDENT@[15; 16) "a"
13 COLON@[16; 17) 13 COLON@[16; 17)
14 PATH_TYPE@[17; 26) 14 WHITESPACE@[17; 18)
15 PATH@[17; 26) 15 PATH_TYPE@[18; 21)
16 PATH_SEGMENT@[17; 26) 16 PATH@[18; 21)
17 NAME_REF@[17; 26) 17 PATH_SEGMENT@[18; 21)
18 WHITESPACE@[17; 18) 18 NAME_REF@[18; 21)
19 IDENT@[18; 21) "u32" 19 IDENT@[18; 21) "u32"
20 WHITESPACE@[21; 26)
21 err: `expected COMMA` 20 err: `expected COMMA`
22 NAMED_FIELD@[26; 33) 21 WHITESPACE@[21; 26)
22 NAMED_FIELD@[26; 32)
23 NAME@[26; 27) 23 NAME@[26; 27)
24 IDENT@[26; 27) "b" 24 IDENT@[26; 27) "b"
25 COLON@[27; 28) 25 COLON@[27; 28)
26 PATH_TYPE@[28; 33) 26 WHITESPACE@[28; 29)
27 PATH@[28; 33) 27 PATH_TYPE@[29; 32)
28 PATH_SEGMENT@[28; 33) 28 PATH@[29; 32)
29 NAME_REF@[28; 33) 29 PATH_SEGMENT@[29; 32)
30 WHITESPACE@[28; 29) 30 NAME_REF@[29; 32)
31 IDENT@[29; 32) "u32" 31 IDENT@[29; 32) "u32"
32 WHITESPACE@[32; 33) 32 WHITESPACE@[32; 33)
33 R_CURLY@[33; 34) 33 R_CURLY@[33; 34)
diff --git a/tests/data/parser/err/0001_item_recovery_in_file.txt b/tests/data/parser/err/0001_item_recovery_in_file.txt
index 49612ac73..1aaf07625 100644
--- a/tests/data/parser/err/0001_item_recovery_in_file.txt
+++ b/tests/data/parser/err/0001_item_recovery_in_file.txt
@@ -1,17 +1,17 @@
1FILE@[0; 21) 1FILE@[0; 21)
2 ERROR@[0; 3) 2 ERROR@[0; 2)
3 IF_KW@[0; 2) 3 IF_KW@[0; 2)
4 err: `expected an item` 4 err: `expected an item`
5 WHITESPACE@[2; 3) 5 WHITESPACE@[2; 3)
6 err: `expected an item` 6 err: `expected an item`
7 ERROR@[3; 10) 7 ERROR@[3; 8)
8 MATCH_KW@[3; 8) 8 MATCH_KW@[3; 8)
9 WHITESPACE@[8; 10) 9 WHITESPACE@[8; 10)
10 STRUCT_ITEM@[10; 21) 10 STRUCT_ITEM@[10; 21)
11 STRUCT_KW@[10; 16) 11 STRUCT_KW@[10; 16)
12 NAME@[16; 19) 12 WHITESPACE@[16; 17)
13 WHITESPACE@[16; 17) 13 NAME@[17; 18)
14 IDENT@[17; 18) "S" 14 IDENT@[17; 18) "S"
15 WHITESPACE@[18; 19) 15 WHITESPACE@[18; 19)
16 L_CURLY@[19; 20) 16 L_CURLY@[19; 20)
17 R_CURLY@[20; 21) 17 R_CURLY@[20; 21)
diff --git a/tests/data/parser/err/0002_duplicate_shebang.txt b/tests/data/parser/err/0002_duplicate_shebang.txt
index ef0ddb09a..0b6aa26eb 100644
--- a/tests/data/parser/err/0002_duplicate_shebang.txt
+++ b/tests/data/parser/err/0002_duplicate_shebang.txt
@@ -1,7 +1,7 @@
1FILE@[0; 42) 1FILE@[0; 42)
2 SHEBANG@[0; 20) 2 SHEBANG@[0; 20)
3 WHITESPACE@[20; 21)
3 err: `expected an item` 4 err: `expected an item`
4 ERROR@[20; 42) 5 ERROR@[21; 41)
5 WHITESPACE@[20; 21)
6 SHEBANG@[21; 41) 6 SHEBANG@[21; 41)
7 WHITESPACE@[41; 42) 7 WHITESPACE@[41; 42)
diff --git a/tests/data/parser/err/0003_C++_semicolon.txt b/tests/data/parser/err/0003_C++_semicolon.txt
index 0a2dad70d..81777fec0 100644
--- a/tests/data/parser/err/0003_C++_semicolon.txt
+++ b/tests/data/parser/err/0003_C++_semicolon.txt
@@ -1,33 +1,33 @@
1FILE@[0; 40) 1FILE@[0; 40)
2 STRUCT_ITEM@[0; 40) 2 STRUCT_ITEM@[0; 40)
3 STRUCT_KW@[0; 6) 3 STRUCT_KW@[0; 6)
4 NAME@[6; 9) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 5 NAME@[7; 8)
6 IDENT@[7; 8) "S" 6 IDENT@[7; 8) "S"
7 WHITESPACE@[8; 9) 7 WHITESPACE@[8; 9)
8 L_CURLY@[9; 10) 8 L_CURLY@[9; 10)
9 NAMED_FIELD@[10; 21) 9 WHITESPACE@[10; 15)
10 NAME@[10; 16) 10 NAMED_FIELD@[15; 21)
11 WHITESPACE@[10; 15) 11 NAME@[15; 16)
12 IDENT@[15; 16) "a" 12 IDENT@[15; 16) "a"
13 COLON@[16; 17) 13 COLON@[16; 17)
14 PATH_TYPE@[17; 21) 14 WHITESPACE@[17; 18)
15 PATH@[17; 21) 15 PATH_TYPE@[18; 21)
16 PATH_SEGMENT@[17; 21) 16 PATH@[18; 21)
17 NAME_REF@[17; 21) 17 PATH_SEGMENT@[18; 21)
18 WHITESPACE@[17; 18) 18 NAME_REF@[18; 21)
19 IDENT@[18; 21) "i32" 19 IDENT@[18; 21) "i32"
20 COMMA@[21; 22) 20 COMMA@[21; 22)
21 NAMED_FIELD@[22; 36) 21 WHITESPACE@[22; 27)
22 NAME@[22; 28) 22 NAMED_FIELD@[27; 36)
23 WHITESPACE@[22; 27) 23 NAME@[27; 28)
24 IDENT@[27; 28) "b" 24 IDENT@[27; 28) "b"
25 COLON@[28; 29) 25 COLON@[28; 29)
26 PATH_TYPE@[29; 36) 26 WHITESPACE@[29; 30)
27 PATH@[29; 36) 27 PATH_TYPE@[30; 36)
28 PATH_SEGMENT@[29; 36) 28 PATH@[30; 36)
29 NAME_REF@[29; 36) 29 PATH_SEGMENT@[30; 36)
30 WHITESPACE@[29; 30) 30 NAME_REF@[30; 36)
31 IDENT@[30; 36) "String" 31 IDENT@[30; 36) "String"
32 COMMA@[36; 37) 32 COMMA@[36; 37)
33 WHITESPACE@[37; 38) 33 WHITESPACE@[37; 38)
diff --git a/tests/data/parser/err/0004_use_path_bad_segment.txt b/tests/data/parser/err/0004_use_path_bad_segment.txt
index 9b827d862..c6ae68103 100644
--- a/tests/data/parser/err/0004_use_path_bad_segment.txt
+++ b/tests/data/parser/err/0004_use_path_bad_segment.txt
@@ -1,12 +1,12 @@
1FILE@[0; 12) 1FILE@[0; 12)
2 USE_ITEM@[0; 9) 2 USE_ITEM@[0; 9)
3 USE_KW@[0; 3) 3 USE_KW@[0; 3)
4 USE_TREE@[3; 9) 4 WHITESPACE@[3; 4)
5 PATH@[3; 9) 5 USE_TREE@[4; 9)
6 PATH@[3; 7) 6 PATH@[4; 9)
7 PATH_SEGMENT@[3; 7) 7 PATH@[4; 7)
8 NAME_REF@[3; 7) 8 PATH_SEGMENT@[4; 7)
9 WHITESPACE@[3; 4) 9 NAME_REF@[4; 7)
10 IDENT@[4; 7) "foo" 10 IDENT@[4; 7) "foo"
11 COLONCOLON@[7; 9) 11 COLONCOLON@[7; 9)
12 err: `expected identifier` 12 err: `expected identifier`
diff --git a/tests/data/parser/err/0005_attribute_recover.txt b/tests/data/parser/err/0005_attribute_recover.txt
index 0ab73b46d..3f5f0aec9 100644
--- a/tests/data/parser/err/0005_attribute_recover.txt
+++ b/tests/data/parser/err/0005_attribute_recover.txt
@@ -1,6 +1,6 @@
1FILE@[0; 54) 1FILE@[0; 54)
2 FN_ITEM@[0; 34) 2 FN_ITEM@[0; 31)
3 ATTR@[0; 19) 3 ATTR@[0; 18)
4 POUND@[0; 1) 4 POUND@[0; 1)
5 L_BRACK@[1; 2) 5 L_BRACK@[1; 2)
6 META_ITEM@[2; 17) 6 META_ITEM@[2; 17)
@@ -9,52 +9,52 @@ FILE@[0; 54)
9 META_ITEM@[6; 9) 9 META_ITEM@[6; 9)
10 IDENT@[6; 9) "foo" 10 IDENT@[6; 9) "foo"
11 COMMA@[9; 10) 11 COMMA@[9; 10)
12 WHITESPACE@[10; 11)
12 err: `expected attribute` 13 err: `expected attribute`
13 ERROR@[10; 12) 14 ERROR@[11; 12)
14 WHITESPACE@[10; 11)
15 PLUS@[11; 12) 15 PLUS@[11; 12)
16 err: `expected attribute` 16 err: `expected attribute`
17 ERROR@[12; 14) 17 ERROR@[12; 13)
18 COMMA@[12; 13) 18 COMMA@[12; 13)
19 WHITESPACE@[13; 14) 19 WHITESPACE@[13; 14)
20 LITERAL@[14; 16) 20 LITERAL@[14; 16)
21 INT_NUMBER@[14; 16) "92" 21 INT_NUMBER@[14; 16) "92"
22 R_PAREN@[16; 17) 22 R_PAREN@[16; 17)
23 R_BRACK@[17; 18) 23 R_BRACK@[17; 18)
24 WHITESPACE@[18; 19) 24 WHITESPACE@[18; 19)
25 FN_KW@[19; 21) 25 FN_KW@[19; 21)
26 NAME@[21; 25) 26 WHITESPACE@[21; 22)
27 WHITESPACE@[21; 22) 27 NAME@[22; 25)
28 IDENT@[22; 25) "foo" 28 IDENT@[22; 25) "foo"
29 PARAM_LIST@[25; 28) 29 PARAM_LIST@[25; 27)
30 L_PAREN@[25; 26) 30 L_PAREN@[25; 26)
31 R_PAREN@[26; 27) 31 R_PAREN@[26; 27)
32 WHITESPACE@[27; 28) 32 WHITESPACE@[27; 28)
33 BLOCK_EXPR@[28; 34) 33 BLOCK_EXPR@[28; 31)
34 L_CURLY@[28; 29) 34 L_CURLY@[28; 29)
35 WHITESPACE@[29; 30) 35 WHITESPACE@[29; 30)
36 R_CURLY@[30; 31) 36 R_CURLY@[30; 31)
37 WHITESPACE@[31; 34) 37 WHITESPACE@[31; 34)
38 FN_ITEM@[34; 54) 38 FN_ITEM@[34; 53)
39 ATTR@[34; 41) 39 ATTR@[34; 40)
40 POUND@[34; 35) 40 POUND@[34; 35)
41 L_BRACK@[35; 36) 41 L_BRACK@[35; 36)
42 META_ITEM@[36; 41) 42 META_ITEM@[36; 40)
43 IDENT@[36; 39) "foo" 43 IDENT@[36; 39) "foo"
44 L_PAREN@[39; 40) 44 L_PAREN@[39; 40)
45 err: `expected attribute` 45 err: `expected attribute`
46 WHITESPACE@[40; 41)
47 err: `expected R_BRACK` 46 err: `expected R_BRACK`
47 WHITESPACE@[40; 41)
48 FN_KW@[41; 43) 48 FN_KW@[41; 43)
49 NAME@[43; 47) 49 WHITESPACE@[43; 44)
50 WHITESPACE@[43; 44) 50 NAME@[44; 47)
51 IDENT@[44; 47) "foo" 51 IDENT@[44; 47) "foo"
52 PARAM_LIST@[47; 50) 52 PARAM_LIST@[47; 49)
53 L_PAREN@[47; 48) 53 L_PAREN@[47; 48)
54 R_PAREN@[48; 49) 54 R_PAREN@[48; 49)
55 WHITESPACE@[49; 50) 55 WHITESPACE@[49; 50)
56 BLOCK_EXPR@[50; 54) 56 BLOCK_EXPR@[50; 53)
57 L_CURLY@[50; 51) 57 L_CURLY@[50; 51)
58 WHITESPACE@[51; 52) 58 WHITESPACE@[51; 52)
59 R_CURLY@[52; 53) 59 R_CURLY@[52; 53)
60 WHITESPACE@[53; 54) 60 WHITESPACE@[53; 54)
diff --git a/tests/data/parser/err/0006_named_field_recovery.txt b/tests/data/parser/err/0006_named_field_recovery.txt
index 5abde6710..009b307b1 100644
--- a/tests/data/parser/err/0006_named_field_recovery.txt
+++ b/tests/data/parser/err/0006_named_field_recovery.txt
@@ -1,73 +1,73 @@
1FILE@[0; 74) 1FILE@[0; 74)
2 STRUCT_ITEM@[0; 74) 2 STRUCT_ITEM@[0; 73)
3 STRUCT_KW@[0; 6) 3 STRUCT_KW@[0; 6)
4 NAME@[6; 9) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 5 NAME@[7; 8)
6 IDENT@[7; 8) "S" 6 IDENT@[7; 8) "S"
7 WHITESPACE@[8; 9) 7 WHITESPACE@[8; 9)
8 L_CURLY@[9; 10) 8 L_CURLY@[9; 10)
9 NAMED_FIELD@[10; 21) 9 WHITESPACE@[10; 15)
10 NAME@[10; 16) 10 NAMED_FIELD@[15; 21)
11 WHITESPACE@[10; 15) 11 NAME@[15; 16)
12 IDENT@[15; 16) "f" 12 IDENT@[15; 16) "f"
13 COLON@[16; 17) 13 COLON@[16; 17)
14 PATH_TYPE@[17; 21) 14 WHITESPACE@[17; 18)
15 PATH@[17; 21) 15 PATH_TYPE@[18; 21)
16 PATH_SEGMENT@[17; 21) 16 PATH@[18; 21)
17 NAME_REF@[17; 21) 17 PATH_SEGMENT@[18; 21)
18 WHITESPACE@[17; 18) 18 NAME_REF@[18; 21)
19 IDENT@[18; 21) "u32" 19 IDENT@[18; 21) "u32"
20 COMMA@[21; 22) 20 COMMA@[21; 22)
21 VISIBILITY@[22; 31) 21 WHITESPACE@[22; 27)
22 WHITESPACE@[22; 27) 22 VISIBILITY@[27; 30)
23 PUB_KW@[27; 30) 23 PUB_KW@[27; 30)
24 WHITESPACE@[30; 31) 24 WHITESPACE@[30; 31)
25 err: `expected field declaration` 25 err: `expected field declaration`
26 ERROR@[31; 38) 26 ERROR@[31; 33)
27 INT_NUMBER@[31; 33) "92" 27 INT_NUMBER@[31; 33) "92"
28 WHITESPACE@[33; 38)
29 err: `expected COMMA` 28 err: `expected COMMA`
30 err: `expected field declaration` 29 WHITESPACE@[33; 38)
31 ERROR@[38; 40) 30 err: `expected field declaration`
31 ERROR@[38; 39)
32 PLUS@[38; 39) 32 PLUS@[38; 39)
33 WHITESPACE@[39; 40)
34 err: `expected COMMA` 33 err: `expected COMMA`
35 err: `expected field declaration` 34 WHITESPACE@[39; 40)
36 ERROR@[40; 42) 35 err: `expected field declaration`
36 ERROR@[40; 41)
37 MINUS@[40; 41) 37 MINUS@[40; 41)
38 WHITESPACE@[41; 42)
39 err: `expected COMMA` 38 err: `expected COMMA`
40 err: `expected field declaration` 39 WHITESPACE@[41; 42)
41 ERROR@[42; 48) 40 err: `expected field declaration`
41 ERROR@[42; 43)
42 STAR@[42; 43) 42 STAR@[42; 43)
43 WHITESPACE@[43; 48)
44 err: `expected COMMA` 43 err: `expected COMMA`
44 WHITESPACE@[43; 48)
45 NAMED_FIELD@[48; 58) 45 NAMED_FIELD@[48; 58)
46 VISIBILITY@[48; 52) 46 VISIBILITY@[48; 51)
47 PUB_KW@[48; 51) 47 PUB_KW@[48; 51)
48 WHITESPACE@[51; 52) 48 WHITESPACE@[51; 52)
49 NAME@[52; 53) 49 NAME@[52; 53)
50 IDENT@[52; 53) "x" 50 IDENT@[52; 53) "x"
51 COLON@[53; 54) 51 COLON@[53; 54)
52 PATH_TYPE@[54; 58) 52 WHITESPACE@[54; 55)
53 PATH@[54; 58) 53 PATH_TYPE@[55; 58)
54 PATH_SEGMENT@[54; 58) 54 PATH@[55; 58)
55 NAME_REF@[54; 58) 55 PATH_SEGMENT@[55; 58)
56 WHITESPACE@[54; 55) 56 NAME_REF@[55; 58)
57 IDENT@[55; 58) "u32" 57 IDENT@[55; 58) "u32"
58 COMMA@[58; 59) 58 COMMA@[58; 59)
59 NAMED_FIELD@[59; 70) 59 WHITESPACE@[59; 64)
60 NAME@[59; 65) 60 NAMED_FIELD@[64; 70)
61 WHITESPACE@[59; 64) 61 NAME@[64; 65)
62 IDENT@[64; 65) "z" 62 IDENT@[64; 65) "z"
63 COLON@[65; 66) 63 COLON@[65; 66)
64 PATH_TYPE@[66; 70) 64 WHITESPACE@[66; 67)
65 PATH@[66; 70) 65 PATH_TYPE@[67; 70)
66 PATH_SEGMENT@[66; 70) 66 PATH@[67; 70)
67 NAME_REF@[66; 70) 67 PATH_SEGMENT@[67; 70)
68 WHITESPACE@[66; 67) 68 NAME_REF@[67; 70)
69 IDENT@[67; 70) "f64" 69 IDENT@[67; 70) "f64"
70 COMMA@[70; 71) 70 COMMA@[70; 71)
71 WHITESPACE@[71; 72) 71 WHITESPACE@[71; 72)
72 R_CURLY@[72; 73) 72 R_CURLY@[72; 73)
73 WHITESPACE@[73; 74) 73 WHITESPACE@[73; 74)
diff --git a/tests/data/parser/err/0007_stray_curly_in_file.txt b/tests/data/parser/err/0007_stray_curly_in_file.txt
index 473fe17cb..beca9be38 100644
--- a/tests/data/parser/err/0007_stray_curly_in_file.txt
+++ b/tests/data/parser/err/0007_stray_curly_in_file.txt
@@ -1,32 +1,32 @@
1FILE@[0; 31) 1FILE@[0; 31)
2 ERROR@[0; 3) 2 ERROR@[0; 1)
3 R_CURLY@[0; 1) 3 R_CURLY@[0; 1)
4 err: `expected an item` 4 err: `expected an item`
5 WHITESPACE@[1; 3) 5 WHITESPACE@[1; 3)
6 STRUCT_ITEM@[3; 14) 6 STRUCT_ITEM@[3; 12)
7 STRUCT_KW@[3; 9) 7 STRUCT_KW@[3; 9)
8 NAME@[9; 11) 8 WHITESPACE@[9; 10)
9 WHITESPACE@[9; 10) 9 NAME@[10; 11)
10 IDENT@[10; 11) "S" 10 IDENT@[10; 11) "S"
11 SEMI@[11; 12) 11 SEMI@[11; 12)
12 WHITESPACE@[12; 14) 12 WHITESPACE@[12; 14)
13 err: `expected an item` 13 err: `expected an item`
14 ERROR@[14; 17) 14 ERROR@[14; 15)
15 R_CURLY@[14; 15) 15 R_CURLY@[14; 15)
16 WHITESPACE@[15; 17) 16 WHITESPACE@[15; 17)
17 FN_ITEM@[17; 29) 17 FN_ITEM@[17; 27)
18 FN_KW@[17; 19) 18 FN_KW@[17; 19)
19 NAME@[19; 23) 19 WHITESPACE@[19; 20)
20 WHITESPACE@[19; 20) 20 NAME@[20; 23)
21 IDENT@[20; 23) "foo" 21 IDENT@[20; 23) "foo"
22 PARAM_LIST@[23; 25) 22 PARAM_LIST@[23; 25)
23 L_PAREN@[23; 24) 23 L_PAREN@[23; 24)
24 R_PAREN@[24; 25) 24 R_PAREN@[24; 25)
25 BLOCK_EXPR@[25; 29) 25 BLOCK_EXPR@[25; 27)
26 L_CURLY@[25; 26) 26 L_CURLY@[25; 26)
27 R_CURLY@[26; 27) 27 R_CURLY@[26; 27)
28 WHITESPACE@[27; 29) 28 WHITESPACE@[27; 29)
29 err: `expected an item` 29 err: `expected an item`
30 ERROR@[29; 31) 30 ERROR@[29; 30)
31 R_CURLY@[29; 30) 31 R_CURLY@[29; 30)
32 WHITESPACE@[30; 31) 32 WHITESPACE@[30; 31)
diff --git a/tests/data/parser/err/0008_item_block_recovery.txt b/tests/data/parser/err/0008_item_block_recovery.txt
index 62ca31080..eb1c8faa6 100644
--- a/tests/data/parser/err/0008_item_block_recovery.txt
+++ b/tests/data/parser/err/0008_item_block_recovery.txt
@@ -1,19 +1,19 @@
1FILE@[0; 95) 1FILE@[0; 95)
2 FN_ITEM@[0; 14) 2 FN_ITEM@[0; 12)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 14) 11 BLOCK_EXPR@[9; 12)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 WHITESPACE@[10; 11) 13 WHITESPACE@[10; 11)
14 R_CURLY@[11; 12) 14 R_CURLY@[11; 12)
15 WHITESPACE@[12; 14) 15 WHITESPACE@[12; 14)
16 MACRO_CALL@[14; 20) 16 MACRO_CALL@[14; 19)
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)
@@ -22,9 +22,9 @@ FILE@[0; 95)
22 L_PAREN@[17; 18) 22 L_PAREN@[17; 18)
23 R_PAREN@[18; 19) 23 R_PAREN@[18; 19)
24 err: `expected SEMI` 24 err: `expected SEMI`
25 WHITESPACE@[19; 20) 25 WHITESPACE@[19; 20)
26 err: `expected an item` 26 err: `expected an item`
27 ERROR@[20; 82) 27 ERROR@[20; 80)
28 L_CURLY@[20; 21) 28 L_CURLY@[20; 21)
29 WHITESPACE@[21; 26) 29 WHITESPACE@[21; 26)
30 IF_KW@[26; 28) 30 IF_KW@[26; 28)
@@ -50,18 +50,18 @@ FILE@[0; 95)
50 R_CURLY@[77; 78) 50 R_CURLY@[77; 78)
51 WHITESPACE@[78; 79) 51 WHITESPACE@[78; 79)
52 R_CURLY@[79; 80) 52 R_CURLY@[79; 80)
53 WHITESPACE@[80; 82) 53 WHITESPACE@[80; 82)
54 FN_ITEM@[82; 95) 54 FN_ITEM@[82; 94)
55 FN_KW@[82; 84) 55 FN_KW@[82; 84)
56 NAME@[84; 88) 56 WHITESPACE@[84; 85)
57 WHITESPACE@[84; 85) 57 NAME@[85; 88)
58 IDENT@[85; 88) "baz" 58 IDENT@[85; 88) "baz"
59 PARAM_LIST@[88; 91) 59 PARAM_LIST@[88; 90)
60 L_PAREN@[88; 89) 60 L_PAREN@[88; 89)
61 R_PAREN@[89; 90) 61 R_PAREN@[89; 90)
62 WHITESPACE@[90; 91) 62 WHITESPACE@[90; 91)
63 BLOCK_EXPR@[91; 95) 63 BLOCK_EXPR@[91; 94)
64 L_CURLY@[91; 92) 64 L_CURLY@[91; 92)
65 WHITESPACE@[92; 93) 65 WHITESPACE@[92; 93)
66 R_CURLY@[93; 94) 66 R_CURLY@[93; 94)
67 WHITESPACE@[94; 95) 67 WHITESPACE@[94; 95)
diff --git a/tests/data/parser/err/0009_broken_struct_type_parameter.txt b/tests/data/parser/err/0009_broken_struct_type_parameter.txt
index 72e5b36e5..fc736f0e9 100644
--- a/tests/data/parser/err/0009_broken_struct_type_parameter.txt
+++ b/tests/data/parser/err/0009_broken_struct_type_parameter.txt
@@ -1,31 +1,31 @@
1FILE@[0; 43) 1FILE@[0; 43)
2 STRUCT_ITEM@[0; 12) 2 STRUCT_ITEM@[0; 11)
3 STRUCT_KW@[0; 6) 3 STRUCT_KW@[0; 6)
4 NAME@[6; 8) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 5 NAME@[7; 8)
6 IDENT@[7; 8) "S" 6 IDENT@[7; 8) "S"
7 TYPE_PARAM_LIST@[8; 12) 7 TYPE_PARAM_LIST@[8; 11)
8 L_ANGLE@[8; 9) 8 L_ANGLE@[8; 9)
9 err: `expected type parameter` 9 err: `expected type parameter`
10 ERROR@[9; 12) 10 ERROR@[9; 11)
11 INT_NUMBER@[9; 11) "90" 11 INT_NUMBER@[9; 11) "90"
12 WHITESPACE@[11; 12)
13 err: `expected COMMA` 12 err: `expected COMMA`
14 err: `expected R_ANGLE` 13 err: `expected R_ANGLE`
15 err: `expected `;`, `{`, or `(`` 14 err: `expected `;`, `{`, or `(``
16 err: `expected an item` 15 WHITESPACE@[11; 12)
17 ERROR@[12; 14) 16 err: `expected an item`
17 ERROR@[12; 13)
18 PLUS@[12; 13) 18 PLUS@[12; 13)
19 WHITESPACE@[13; 14) 19 WHITESPACE@[13; 14)
20 err: `expected an item` 20 err: `expected an item`
21 ERROR@[14; 15) 21 ERROR@[14; 15)
22 INT_NUMBER@[14; 15) "2" 22 INT_NUMBER@[14; 15) "2"
23 err: `expected an item` 23 err: `expected an item`
24 ERROR@[15; 17) 24 ERROR@[15; 16)
25 R_ANGLE@[15; 16) 25 R_ANGLE@[15; 16)
26 WHITESPACE@[16; 17) 26 WHITESPACE@[16; 17)
27 err: `expected an item` 27 err: `expected an item`
28 ERROR@[17; 33) 28 ERROR@[17; 31)
29 L_CURLY@[17; 18) 29 L_CURLY@[17; 18)
30 WHITESPACE@[18; 23) 30 WHITESPACE@[18; 23)
31 IDENT@[23; 24) "f" 31 IDENT@[23; 24) "f"
@@ -34,11 +34,11 @@ FILE@[0; 43)
34 IDENT@[26; 29) "u32" 34 IDENT@[26; 29) "u32"
35 WHITESPACE@[29; 30) 35 WHITESPACE@[29; 30)
36 R_CURLY@[30; 31) 36 R_CURLY@[30; 31)
37 WHITESPACE@[31; 33) 37 WHITESPACE@[31; 33)
38 STRUCT_ITEM@[33; 43) 38 STRUCT_ITEM@[33; 42)
39 STRUCT_KW@[33; 39) 39 STRUCT_KW@[33; 39)
40 NAME@[39; 41) 40 WHITESPACE@[39; 40)
41 WHITESPACE@[39; 40) 41 NAME@[40; 41)
42 IDENT@[40; 41) "T" 42 IDENT@[40; 41) "T"
43 SEMI@[41; 42) 43 SEMI@[41; 42)
44 WHITESPACE@[42; 43) 44 WHITESPACE@[42; 43)
diff --git a/tests/data/parser/err/0010_unsafe_lambda_block.txt b/tests/data/parser/err/0010_unsafe_lambda_block.txt
index a8791a595..0bc6c10b7 100644
--- a/tests/data/parser/err/0010_unsafe_lambda_block.txt
+++ b/tests/data/parser/err/0010_unsafe_lambda_block.txt
@@ -1,40 +1,40 @@
1FILE@[0; 42) 1FILE@[0; 42)
2 FN_ITEM@[0; 42) 2 FN_ITEM@[0; 41)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 7) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 7)
6 IDENT@[3; 7) "main" 6 IDENT@[3; 7) "main"
7 PARAM_LIST@[7; 10) 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; 42) 11 BLOCK_EXPR@[10; 41)
12 L_CURLY@[10; 11) 12 L_CURLY@[10; 11)
13 LAMBDA_EXPR@[11; 25) 13 WHITESPACE@[11; 16)
14 PARAM_LIST@[11; 19) 14 LAMBDA_EXPR@[16; 24)
15 WHITESPACE@[11; 16) 15 PARAM_LIST@[16; 18)
16 PIPE@[16; 17) 16 PIPE@[16; 17)
17 PIPE@[17; 18) 17 PIPE@[17; 18)
18 WHITESPACE@[18; 19) 18 WHITESPACE@[18; 19)
19 THIN_ARROW@[19; 21) 19 THIN_ARROW@[19; 21)
20 TUPLE_TYPE@[21; 25) 20 WHITESPACE@[21; 22)
21 WHITESPACE@[21; 22) 21 TUPLE_TYPE@[22; 24)
22 L_PAREN@[22; 23) 22 L_PAREN@[22; 23)
23 R_PAREN@[23; 24) 23 R_PAREN@[23; 24)
24 WHITESPACE@[24; 25)
25 err: `expected block` 24 err: `expected block`
26 EXPR_STMT@[25; 40) 25 WHITESPACE@[24; 25)
26 EXPR_STMT@[25; 39)
27 BLOCK_EXPR@[25; 38) 27 BLOCK_EXPR@[25; 38)
28 UNSAFE_KW@[25; 31) 28 UNSAFE_KW@[25; 31)
29 WHITESPACE@[31; 32) 29 WHITESPACE@[31; 32)
30 L_CURLY@[32; 33) 30 L_CURLY@[32; 33)
31 TUPLE_EXPR@[33; 37) 31 WHITESPACE@[33; 34)
32 WHITESPACE@[33; 34) 32 TUPLE_EXPR@[34; 36)
33 L_PAREN@[34; 35) 33 L_PAREN@[34; 35)
34 R_PAREN@[35; 36) 34 R_PAREN@[35; 36)
35 WHITESPACE@[36; 37) 35 WHITESPACE@[36; 37)
36 R_CURLY@[37; 38) 36 R_CURLY@[37; 38)
37 SEMI@[38; 39) 37 SEMI@[38; 39)
38 WHITESPACE@[39; 40) 38 WHITESPACE@[39; 40)
39 R_CURLY@[40; 41) 39 R_CURLY@[40; 41)
40 WHITESPACE@[41; 42) 40 WHITESPACE@[41; 42)
diff --git a/tests/data/parser/err/0011_extern_struct.txt b/tests/data/parser/err/0011_extern_struct.txt
index 288f3469b..3c5b678a1 100644
--- a/tests/data/parser/err/0011_extern_struct.txt
+++ b/tests/data/parser/err/0011_extern_struct.txt
@@ -1,13 +1,13 @@
1FILE@[0; 19) 1FILE@[0; 19)
2 ERROR@[0; 7) 2 ERROR@[0; 6)
3 ABI@[0; 7) 3 ABI@[0; 6)
4 EXTERN_KW@[0; 6) 4 EXTERN_KW@[0; 6)
5 WHITESPACE@[6; 7)
6 err: `expected fn, trait or impl` 5 err: `expected fn, trait or impl`
7 STRUCT_ITEM@[7; 19) 6 WHITESPACE@[6; 7)
7 STRUCT_ITEM@[7; 18)
8 STRUCT_KW@[7; 13) 8 STRUCT_KW@[7; 13)
9 NAME@[13; 17) 9 WHITESPACE@[13; 14)
10 WHITESPACE@[13; 14) 10 NAME@[14; 17)
11 IDENT@[14; 17) "Foo" 11 IDENT@[14; 17) "Foo"
12 SEMI@[17; 18) 12 SEMI@[17; 18)
13 WHITESPACE@[18; 19) 13 WHITESPACE@[18; 19)
diff --git a/tests/data/parser/inline/0001_const_unsafe_fn.txt b/tests/data/parser/inline/0001_const_unsafe_fn.txt
index e5819919f..b1eb657a4 100644
--- a/tests/data/parser/inline/0001_const_unsafe_fn.txt
+++ b/tests/data/parser/inline/0001_const_unsafe_fn.txt
@@ -1,18 +1,18 @@
1FILE@[0; 25) 1FILE@[0; 25)
2 FN_ITEM@[0; 25) 2 FN_ITEM@[0; 24)
3 CONST_KW@[0; 5) 3 CONST_KW@[0; 5)
4 WHITESPACE@[5; 6) 4 WHITESPACE@[5; 6)
5 UNSAFE_KW@[6; 12) 5 UNSAFE_KW@[6; 12)
6 WHITESPACE@[12; 13) 6 WHITESPACE@[12; 13)
7 FN_KW@[13; 15) 7 FN_KW@[13; 15)
8 NAME@[15; 19) 8 WHITESPACE@[15; 16)
9 WHITESPACE@[15; 16) 9 NAME@[16; 19)
10 IDENT@[16; 19) "foo" 10 IDENT@[16; 19) "foo"
11 PARAM_LIST@[19; 22) 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; 25) 15 BLOCK_EXPR@[22; 24)
16 L_CURLY@[22; 23) 16 L_CURLY@[22; 23)
17 R_CURLY@[23; 24) 17 R_CURLY@[23; 24)
18 WHITESPACE@[24; 25) 18 WHITESPACE@[24; 25)
diff --git a/tests/data/parser/inline/0002_const_fn.txt b/tests/data/parser/inline/0002_const_fn.txt
index aa7747f51..a83b1d1c7 100644
--- a/tests/data/parser/inline/0002_const_fn.txt
+++ b/tests/data/parser/inline/0002_const_fn.txt
@@ -1,16 +1,16 @@
1FILE@[0; 18) 1FILE@[0; 18)
2 FN_ITEM@[0; 18) 2 FN_ITEM@[0; 17)
3 CONST_KW@[0; 5) 3 CONST_KW@[0; 5)
4 WHITESPACE@[5; 6) 4 WHITESPACE@[5; 6)
5 FN_KW@[6; 8) 5 FN_KW@[6; 8)
6 NAME@[8; 12) 6 WHITESPACE@[8; 9)
7 WHITESPACE@[8; 9) 7 NAME@[9; 12)
8 IDENT@[9; 12) "foo" 8 IDENT@[9; 12) "foo"
9 PARAM_LIST@[12; 15) 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; 18) 13 BLOCK_EXPR@[15; 17)
14 L_CURLY@[15; 16) 14 L_CURLY@[15; 16)
15 R_CURLY@[16; 17) 15 R_CURLY@[16; 17)
16 WHITESPACE@[17; 18) 16 WHITESPACE@[17; 18)
diff --git a/tests/data/parser/inline/0003_extern_block.txt b/tests/data/parser/inline/0003_extern_block.txt
index 24ef8f5ac..cbe9a1ebc 100644
--- a/tests/data/parser/inline/0003_extern_block.txt
+++ b/tests/data/parser/inline/0003_extern_block.txt
@@ -1,8 +1,8 @@
1FILE@[0; 10) 1FILE@[0; 10)
2 EXTERN_BLOCK_EXPR@[0; 10) 2 EXTERN_BLOCK_EXPR@[0; 9)
3 ABI@[0; 7) 3 ABI@[0; 6)
4 EXTERN_KW@[0; 6) 4 EXTERN_KW@[0; 6)
5 WHITESPACE@[6; 7) 5 WHITESPACE@[6; 7)
6 L_CURLY@[7; 8) 6 L_CURLY@[7; 8)
7 R_CURLY@[8; 9) 7 R_CURLY@[8; 9)
8 WHITESPACE@[9; 10) 8 WHITESPACE@[9; 10)
diff --git a/tests/data/parser/inline/0004_extern_fn.txt b/tests/data/parser/inline/0004_extern_fn.txt
index 3c4663da9..247fb229d 100644
--- a/tests/data/parser/inline/0004_extern_fn.txt
+++ b/tests/data/parser/inline/0004_extern_fn.txt
@@ -1,17 +1,17 @@
1FILE@[0; 19) 1FILE@[0; 19)
2 FN_ITEM@[0; 19) 2 FN_ITEM@[0; 18)
3 ABI@[0; 7) 3 ABI@[0; 6)
4 EXTERN_KW@[0; 6) 4 EXTERN_KW@[0; 6)
5 WHITESPACE@[6; 7) 5 WHITESPACE@[6; 7)
6 FN_KW@[7; 9) 6 FN_KW@[7; 9)
7 NAME@[9; 13) 7 WHITESPACE@[9; 10)
8 WHITESPACE@[9; 10) 8 NAME@[10; 13)
9 IDENT@[10; 13) "foo" 9 IDENT@[10; 13) "foo"
10 PARAM_LIST@[13; 16) 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; 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) 17 WHITESPACE@[18; 19)
diff --git a/tests/data/parser/inline/0005_extern_crate.txt b/tests/data/parser/inline/0005_extern_crate.txt
index cbdf5aba1..eac8656ac 100644
--- a/tests/data/parser/inline/0005_extern_crate.txt
+++ b/tests/data/parser/inline/0005_extern_crate.txt
@@ -1,10 +1,10 @@
1FILE@[0; 18) 1FILE@[0; 18)
2 EXTERN_CRATE_ITEM@[0; 18) 2 EXTERN_CRATE_ITEM@[0; 17)
3 EXTERN_KW@[0; 6) 3 EXTERN_KW@[0; 6)
4 WHITESPACE@[6; 7) 4 WHITESPACE@[6; 7)
5 CRATE_KW@[7; 12) 5 CRATE_KW@[7; 12)
6 NAME@[12; 16) 6 WHITESPACE@[12; 13)
7 WHITESPACE@[12; 13) 7 NAME@[13; 16)
8 IDENT@[13; 16) "foo" 8 IDENT@[13; 16) "foo"
9 SEMI@[16; 17) 9 SEMI@[16; 17)
10 WHITESPACE@[17; 18) 10 WHITESPACE@[17; 18)
diff --git a/tests/data/parser/inline/0007_unsafe_trait.txt b/tests/data/parser/inline/0007_unsafe_trait.txt
index 9e2f82587..afa6637d3 100644
--- a/tests/data/parser/inline/0007_unsafe_trait.txt
+++ b/tests/data/parser/inline/0007_unsafe_trait.txt
@@ -1,12 +1,12 @@
1FILE@[0; 18) 1FILE@[0; 18)
2 TRAIT_ITEM@[0; 18) 2 TRAIT_ITEM@[0; 17)
3 UNSAFE_KW@[0; 6) 3 UNSAFE_KW@[0; 6)
4 WHITESPACE@[6; 7) 4 WHITESPACE@[6; 7)
5 TRAIT_KW@[7; 12) 5 TRAIT_KW@[7; 12)
6 NAME@[12; 15) 6 WHITESPACE@[12; 13)
7 WHITESPACE@[12; 13) 7 NAME@[13; 14)
8 IDENT@[13; 14) "T" 8 IDENT@[13; 14) "T"
9 WHITESPACE@[14; 15) 9 WHITESPACE@[14; 15)
10 L_CURLY@[15; 16) 10 L_CURLY@[15; 16)
11 R_CURLY@[16; 17) 11 R_CURLY@[16; 17)
12 WHITESPACE@[17; 18) 12 WHITESPACE@[17; 18)
diff --git a/tests/data/parser/inline/0008_unsafe_impl.txt b/tests/data/parser/inline/0008_unsafe_impl.txt
index d21782b45..6fd3f868f 100644
--- a/tests/data/parser/inline/0008_unsafe_impl.txt
+++ b/tests/data/parser/inline/0008_unsafe_impl.txt
@@ -1,15 +1,15 @@
1FILE@[0; 19) 1FILE@[0; 19)
2 IMPL_ITEM@[0; 19) 2 IMPL_ITEM@[0; 18)
3 UNSAFE_KW@[0; 6) 3 UNSAFE_KW@[0; 6)
4 WHITESPACE@[6; 7) 4 WHITESPACE@[6; 7)
5 IMPL_KW@[7; 11) 5 IMPL_KW@[7; 11)
6 PATH_TYPE@[11; 16) 6 WHITESPACE@[11; 12)
7 PATH@[11; 16) 7 PATH_TYPE@[12; 15)
8 PATH_SEGMENT@[11; 16) 8 PATH@[12; 15)
9 NAME_REF@[11; 16) 9 PATH_SEGMENT@[12; 15)
10 WHITESPACE@[11; 12) 10 NAME_REF@[12; 15)
11 IDENT@[12; 15) "Foo" 11 IDENT@[12; 15) "Foo"
12 WHITESPACE@[15; 16) 12 WHITESPACE@[15; 16)
13 L_CURLY@[16; 17) 13 L_CURLY@[16; 17)
14 R_CURLY@[17; 18) 14 R_CURLY@[17; 18)
15 WHITESPACE@[18; 19) 15 WHITESPACE@[18; 19)
diff --git a/tests/data/parser/inline/0009_unsafe_auto_trait.txt b/tests/data/parser/inline/0009_unsafe_auto_trait.txt
index aa1c99168..825a56f17 100644
--- a/tests/data/parser/inline/0009_unsafe_auto_trait.txt
+++ b/tests/data/parser/inline/0009_unsafe_auto_trait.txt
@@ -1,14 +1,14 @@
1FILE@[0; 23) 1FILE@[0; 23)
2 TRAIT_ITEM@[0; 23) 2 TRAIT_ITEM@[0; 22)
3 UNSAFE_KW@[0; 6) 3 UNSAFE_KW@[0; 6)
4 WHITESPACE@[6; 7) 4 WHITESPACE@[6; 7)
5 AUTO_KW@[7; 11) 5 AUTO_KW@[7; 11)
6 WHITESPACE@[11; 12) 6 WHITESPACE@[11; 12)
7 TRAIT_KW@[12; 17) 7 TRAIT_KW@[12; 17)
8 NAME@[17; 20) 8 WHITESPACE@[17; 18)
9 WHITESPACE@[17; 18) 9 NAME@[18; 19)
10 IDENT@[18; 19) "T" 10 IDENT@[18; 19) "T"
11 WHITESPACE@[19; 20) 11 WHITESPACE@[19; 20)
12 L_CURLY@[20; 21) 12 L_CURLY@[20; 21)
13 R_CURLY@[21; 22) 13 R_CURLY@[21; 22)
14 WHITESPACE@[22; 23) 14 WHITESPACE@[22; 23)
diff --git a/tests/data/parser/inline/0010_unsafe_default_impl.txt b/tests/data/parser/inline/0010_unsafe_default_impl.txt
index a89008c8a..ab12d5fc0 100644
--- a/tests/data/parser/inline/0010_unsafe_default_impl.txt
+++ b/tests/data/parser/inline/0010_unsafe_default_impl.txt
@@ -1,17 +1,17 @@
1FILE@[0; 27) 1FILE@[0; 27)
2 IMPL_ITEM@[0; 27) 2 IMPL_ITEM@[0; 26)
3 UNSAFE_KW@[0; 6) 3 UNSAFE_KW@[0; 6)
4 WHITESPACE@[6; 7) 4 WHITESPACE@[6; 7)
5 DEFAULT_KW@[7; 14) 5 DEFAULT_KW@[7; 14)
6 WHITESPACE@[14; 15) 6 WHITESPACE@[14; 15)
7 IMPL_KW@[15; 19) 7 IMPL_KW@[15; 19)
8 PATH_TYPE@[19; 24) 8 WHITESPACE@[19; 20)
9 PATH@[19; 24) 9 PATH_TYPE@[20; 23)
10 PATH_SEGMENT@[19; 24) 10 PATH@[20; 23)
11 NAME_REF@[19; 24) 11 PATH_SEGMENT@[20; 23)
12 WHITESPACE@[19; 20) 12 NAME_REF@[20; 23)
13 IDENT@[20; 23) "Foo" 13 IDENT@[20; 23) "Foo"
14 WHITESPACE@[23; 24) 14 WHITESPACE@[23; 24)
15 L_CURLY@[24; 25) 15 L_CURLY@[24; 25)
16 R_CURLY@[25; 26) 16 R_CURLY@[25; 26)
17 WHITESPACE@[26; 27) 17 WHITESPACE@[26; 27)
diff --git a/tests/data/parser/inline/0011_unsafe_fn.txt b/tests/data/parser/inline/0011_unsafe_fn.txt
index 1fdff8d4b..3af80b1f8 100644
--- a/tests/data/parser/inline/0011_unsafe_fn.txt
+++ b/tests/data/parser/inline/0011_unsafe_fn.txt
@@ -1,16 +1,16 @@
1FILE@[0; 19) 1FILE@[0; 19)
2 FN_ITEM@[0; 19) 2 FN_ITEM@[0; 18)
3 UNSAFE_KW@[0; 6) 3 UNSAFE_KW@[0; 6)
4 WHITESPACE@[6; 7) 4 WHITESPACE@[6; 7)
5 FN_KW@[7; 9) 5 FN_KW@[7; 9)
6 NAME@[9; 13) 6 WHITESPACE@[9; 10)
7 WHITESPACE@[9; 10) 7 NAME@[10; 13)
8 IDENT@[10; 13) "foo" 8 IDENT@[10; 13) "foo"
9 PARAM_LIST@[13; 16) 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; 19) 13 BLOCK_EXPR@[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) 16 WHITESPACE@[18; 19)
diff --git a/tests/data/parser/inline/0012_unsafe_extern_fn.txt b/tests/data/parser/inline/0012_unsafe_extern_fn.txt
index ad3bd8542..af502740e 100644
--- a/tests/data/parser/inline/0012_unsafe_extern_fn.txt
+++ b/tests/data/parser/inline/0012_unsafe_extern_fn.txt
@@ -1,21 +1,21 @@
1FILE@[0; 30) 1FILE@[0; 30)
2 FN_ITEM@[0; 30) 2 FN_ITEM@[0; 29)
3 UNSAFE_KW@[0; 6) 3 UNSAFE_KW@[0; 6)
4 ABI@[6; 18) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 5 ABI@[7; 17)
6 EXTERN_KW@[7; 13) 6 EXTERN_KW@[7; 13)
7 WHITESPACE@[13; 14) 7 WHITESPACE@[13; 14)
8 STRING@[14; 17) 8 STRING@[14; 17)
9 WHITESPACE@[17; 18) 9 WHITESPACE@[17; 18)
10 FN_KW@[18; 20) 10 FN_KW@[18; 20)
11 NAME@[20; 24) 11 WHITESPACE@[20; 21)
12 WHITESPACE@[20; 21) 12 NAME@[21; 24)
13 IDENT@[21; 24) "foo" 13 IDENT@[21; 24) "foo"
14 PARAM_LIST@[24; 27) 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; 30) 18 BLOCK_EXPR@[27; 29)
19 L_CURLY@[27; 28) 19 L_CURLY@[27; 28)
20 R_CURLY@[28; 29) 20 R_CURLY@[28; 29)
21 WHITESPACE@[29; 30) 21 WHITESPACE@[29; 30)
diff --git a/tests/data/parser/inline/0013_unsafe_block_in_mod.txt b/tests/data/parser/inline/0013_unsafe_block_in_mod.txt
index 142838692..9cf820bd2 100644
--- a/tests/data/parser/inline/0013_unsafe_block_in_mod.txt
+++ b/tests/data/parser/inline/0013_unsafe_block_in_mod.txt
@@ -1,35 +1,35 @@
1FILE@[0; 33) 1FILE@[0; 33)
2 FN_ITEM@[0; 11) 2 FN_ITEM@[0; 10)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 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; 11) 10 BLOCK_EXPR@[8; 10)
11 L_CURLY@[8; 9) 11 L_CURLY@[8; 9)
12 R_CURLY@[9; 10) 12 R_CURLY@[9; 10)
13 WHITESPACE@[10; 11) 13 WHITESPACE@[10; 11)
14 err: `expected an item` 14 err: `expected an item`
15 ERROR@[11; 18) 15 ERROR@[11; 17)
16 UNSAFE_KW@[11; 17) 16 UNSAFE_KW@[11; 17)
17 WHITESPACE@[17; 18) 17 WHITESPACE@[17; 18)
18 err: `expected an item` 18 err: `expected an item`
19 ERROR@[18; 22) 19 ERROR@[18; 21)
20 L_CURLY@[18; 19) 20 L_CURLY@[18; 19)
21 WHITESPACE@[19; 20) 21 WHITESPACE@[19; 20)
22 R_CURLY@[20; 21) 22 R_CURLY@[20; 21)
23 WHITESPACE@[21; 22) 23 WHITESPACE@[21; 22)
24 FN_ITEM@[22; 33) 24 FN_ITEM@[22; 32)
25 FN_KW@[22; 24) 25 FN_KW@[22; 24)
26 NAME@[24; 28) 26 WHITESPACE@[24; 25)
27 WHITESPACE@[24; 25) 27 NAME@[25; 28)
28 IDENT@[25; 28) "bar" 28 IDENT@[25; 28) "bar"
29 PARAM_LIST@[28; 30) 29 PARAM_LIST@[28; 30)
30 L_PAREN@[28; 29) 30 L_PAREN@[28; 29)
31 R_PAREN@[29; 30) 31 R_PAREN@[29; 30)
32 BLOCK_EXPR@[30; 33) 32 BLOCK_EXPR@[30; 32)
33 L_CURLY@[30; 31) 33 L_CURLY@[30; 31)
34 R_CURLY@[31; 32) 34 R_CURLY@[31; 32)
35 WHITESPACE@[32; 33) 35 WHITESPACE@[32; 33)
diff --git a/tests/data/parser/inline/0014_type_item_type_params.txt b/tests/data/parser/inline/0014_type_item_type_params.txt
index 437ce13e1..e39e57889 100644
--- a/tests/data/parser/inline/0014_type_item_type_params.txt
+++ b/tests/data/parser/inline/0014_type_item_type_params.txt
@@ -1,20 +1,20 @@
1FILE@[0; 21) 1FILE@[0; 21)
2 TYPE_ITEM@[0; 21) 2 TYPE_ITEM@[0; 20)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 11) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 5 NAME@[5; 11)
6 IDENT@[5; 11) "Result" 6 IDENT@[5; 11) "Result"
7 TYPE_PARAM_LIST@[11; 15) 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 TUPLE_TYPE@[16; 19) 15 WHITESPACE@[16; 17)
16 WHITESPACE@[16; 17) 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 SEMI@[19; 20) 19 SEMI@[19; 20)
20 WHITESPACE@[20; 21) 20 WHITESPACE@[20; 21)
diff --git a/tests/data/parser/inline/0015_type_item.txt b/tests/data/parser/inline/0015_type_item.txt
index 602298546..964071aa1 100644
--- a/tests/data/parser/inline/0015_type_item.txt
+++ b/tests/data/parser/inline/0015_type_item.txt
@@ -1,16 +1,16 @@
1FILE@[0; 16) 1FILE@[0; 16)
2 TYPE_ITEM@[0; 16) 2 TYPE_ITEM@[0; 15)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 9) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 PATH_TYPE@[10; 14) 9 WHITESPACE@[10; 11)
10 PATH@[10; 14) 10 PATH_TYPE@[11; 14)
11 PATH_SEGMENT@[10; 14) 11 PATH@[11; 14)
12 NAME_REF@[10; 14) 12 PATH_SEGMENT@[11; 14)
13 WHITESPACE@[10; 11) 13 NAME_REF@[11; 14)
14 IDENT@[11; 14) "Bar" 14 IDENT@[11; 14) "Bar"
15 SEMI@[14; 15) 15 SEMI@[14; 15)
16 WHITESPACE@[15; 16) 16 WHITESPACE@[15; 16)
diff --git a/tests/data/parser/inline/0016_type_item_where_clause.txt b/tests/data/parser/inline/0016_type_item_where_clause.txt
index ff20c6255..5879edc42 100644
--- a/tests/data/parser/inline/0016_type_item_where_clause.txt
+++ b/tests/data/parser/inline/0016_type_item_where_clause.txt
@@ -1,22 +1,22 @@
1FILE@[0; 31) 1FILE@[0; 31)
2 TYPE_ITEM@[0; 31) 2 TYPE_ITEM@[0; 30)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 9) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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; 25) 8 WHERE_CLAUSE@[9; 24)
9 WHERE_KW@[9; 14) 9 WHERE_KW@[9; 14)
10 WHITESPACE@[14; 15) 10 WHITESPACE@[14; 15)
11 IDENT@[15; 18) "Foo" 11 IDENT@[15; 18) "Foo"
12 COLON@[18; 19) 12 COLON@[18; 19)
13 WHITESPACE@[19; 20) 13 WHITESPACE@[19; 20)
14 IDENT@[20; 24) "Copy" 14 IDENT@[20; 24) "Copy"
15 WHITESPACE@[24; 25) 15 WHITESPACE@[24; 25)
16 EQ@[25; 26) 16 EQ@[25; 26)
17 TUPLE_TYPE@[26; 29) 17 WHITESPACE@[26; 27)
18 WHITESPACE@[26; 27) 18 TUPLE_TYPE@[27; 29)
19 L_PAREN@[27; 28) 19 L_PAREN@[27; 28)
20 R_PAREN@[28; 29) 20 R_PAREN@[28; 29)
21 SEMI@[29; 30) 21 SEMI@[29; 30)
22 WHITESPACE@[30; 31) 22 WHITESPACE@[30; 31)
diff --git a/tests/data/parser/inline/0017_paren_type.txt b/tests/data/parser/inline/0017_paren_type.txt
index 6ef9c9190..1194fb02c 100644
--- a/tests/data/parser/inline/0017_paren_type.txt
+++ b/tests/data/parser/inline/0017_paren_type.txt
@@ -1,13 +1,13 @@
1FILE@[0; 16) 1FILE@[0; 16)
2 TYPE_ITEM@[0; 16) 2 TYPE_ITEM@[0; 15)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 PAREN_TYPE@[8; 14) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 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)
@@ -16,4 +16,4 @@ FILE@[0; 16)
16 IDENT@[10; 13) "i32" 16 IDENT@[10; 13) "i32"
17 R_PAREN@[13; 14) 17 R_PAREN@[13; 14)
18 SEMI@[14; 15) 18 SEMI@[14; 15)
19 WHITESPACE@[15; 16) 19 WHITESPACE@[15; 16)
diff --git a/tests/data/parser/inline/0018_unit_type.txt b/tests/data/parser/inline/0018_unit_type.txt
index 707b6e53e..e52af7b1e 100644
--- a/tests/data/parser/inline/0018_unit_type.txt
+++ b/tests/data/parser/inline/0018_unit_type.txt
@@ -1,14 +1,14 @@
1FILE@[0; 13) 1FILE@[0; 13)
2 TYPE_ITEM@[0; 13) 2 TYPE_ITEM@[0; 12)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 TUPLE_TYPE@[8; 11) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 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 SEMI@[11; 12) 13 SEMI@[11; 12)
14 WHITESPACE@[12; 13) 14 WHITESPACE@[12; 13)
diff --git a/tests/data/parser/inline/0019_singleton_tuple_type.txt b/tests/data/parser/inline/0019_singleton_tuple_type.txt
index cca96e7ea..7b8e06c25 100644
--- a/tests/data/parser/inline/0019_singleton_tuple_type.txt
+++ b/tests/data/parser/inline/0019_singleton_tuple_type.txt
@@ -1,13 +1,13 @@
1FILE@[0; 17) 1FILE@[0; 17)
2 TYPE_ITEM@[0; 17) 2 TYPE_ITEM@[0; 16)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 TUPLE_TYPE@[8; 15) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 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)
@@ -17,4 +17,4 @@ FILE@[0; 17)
17 COMMA@[13; 14) 17 COMMA@[13; 14)
18 R_PAREN@[14; 15) 18 R_PAREN@[14; 15)
19 SEMI@[15; 16) 19 SEMI@[15; 16)
20 WHITESPACE@[16; 17) 20 WHITESPACE@[16; 17)
diff --git a/tests/data/parser/inline/0020_never_type.txt b/tests/data/parser/inline/0020_never_type.txt
index 935f33459..89f8a9eea 100644
--- a/tests/data/parser/inline/0020_never_type.txt
+++ b/tests/data/parser/inline/0020_never_type.txt
@@ -1,13 +1,13 @@
1FILE@[0; 16) 1FILE@[0; 16)
2 TYPE_ITEM@[0; 16) 2 TYPE_ITEM@[0; 15)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 11) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 NEVER_TYPE@[12; 14) 9 WHITESPACE@[12; 13)
10 WHITESPACE@[12; 13) 10 NEVER_TYPE@[13; 14)
11 EXCL@[13; 14) 11 EXCL@[13; 14)
12 SEMI@[14; 15) 12 SEMI@[14; 15)
13 WHITESPACE@[15; 16) 13 WHITESPACE@[15; 16)
diff --git a/tests/data/parser/inline/0021_pointer_type_no_mutability.txt b/tests/data/parser/inline/0021_pointer_type_no_mutability.txt
index f7720a712..d86fc6388 100644
--- a/tests/data/parser/inline/0021_pointer_type_no_mutability.txt
+++ b/tests/data/parser/inline/0021_pointer_type_no_mutability.txt
@@ -1,17 +1,17 @@
1FILE@[0; 14) 1FILE@[0; 14)
2 TYPE_ITEM@[0; 14) 2 TYPE_ITEM@[0; 13)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 POINTER_TYPE@[8; 12) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 10 POINTER_TYPE@[9; 12)
11 STAR@[9; 10) 11 STAR@[9; 10)
12 err: `expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate)` 12 err: `expected mut or const in raw pointer type (use `*mut T` or `*const T` as appropriate)`
13 TUPLE_TYPE@[10; 12) 13 TUPLE_TYPE@[10; 12)
14 L_PAREN@[10; 11) 14 L_PAREN@[10; 11)
15 R_PAREN@[11; 12) 15 R_PAREN@[11; 12)
16 SEMI@[12; 13) 16 SEMI@[12; 13)
17 WHITESPACE@[13; 14) 17 WHITESPACE@[13; 14)
diff --git a/tests/data/parser/inline/0022_pointer_type_mut.txt b/tests/data/parser/inline/0022_pointer_type_mut.txt
index c3ab2b887..fbeba506e 100644
--- a/tests/data/parser/inline/0022_pointer_type_mut.txt
+++ b/tests/data/parser/inline/0022_pointer_type_mut.txt
@@ -1,35 +1,35 @@
1FILE@[0; 36) 1FILE@[0; 36)
2 TYPE_ITEM@[0; 18) 2 TYPE_ITEM@[0; 17)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 POINTER_TYPE@[8; 16) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 10 POINTER_TYPE@[9; 16)
11 STAR@[9; 10) 11 STAR@[9; 10)
12 MUT_KW@[10; 13) 12 MUT_KW@[10; 13)
13 TUPLE_TYPE@[13; 16) 13 WHITESPACE@[13; 14)
14 WHITESPACE@[13; 14) 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 SEMI@[16; 17) 17 SEMI@[16; 17)
18 WHITESPACE@[17; 18) 18 WHITESPACE@[17; 18)
19 TYPE_ITEM@[18; 36) 19 TYPE_ITEM@[18; 35)
20 TYPE_KW@[18; 22) 20 TYPE_KW@[18; 22)
21 NAME@[22; 25) 21 WHITESPACE@[22; 23)
22 WHITESPACE@[22; 23) 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 POINTER_TYPE@[26; 34) 26 WHITESPACE@[26; 27)
27 WHITESPACE@[26; 27) 27 POINTER_TYPE@[27; 34)
28 STAR@[27; 28) 28 STAR@[27; 28)
29 MUT_KW@[28; 31) 29 MUT_KW@[28; 31)
30 TUPLE_TYPE@[31; 34) 30 WHITESPACE@[31; 32)
31 WHITESPACE@[31; 32) 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 SEMI@[34; 35) 34 SEMI@[34; 35)
35 WHITESPACE@[35; 36) 35 WHITESPACE@[35; 36)
diff --git a/tests/data/parser/inline/0023_array_type_missing_semi.txt b/tests/data/parser/inline/0023_array_type_missing_semi.txt
index aa600eab4..4d90d52c7 100644
--- a/tests/data/parser/inline/0023_array_type_missing_semi.txt
+++ b/tests/data/parser/inline/0023_array_type_missing_semi.txt
@@ -1,27 +1,27 @@
1FILE@[0; 18) 1FILE@[0; 18)
2 TYPE_ITEM@[0; 13) 2 TYPE_ITEM@[0; 12)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 SLICE_TYPE@[8; 13) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 10 SLICE_TYPE@[9; 12)
11 L_BRACK@[9; 10) 11 L_BRACK@[9; 10)
12 TUPLE_TYPE@[10; 13) 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 WHITESPACE@[12; 13)
16 err: `expected `;` or `]`` 15 err: `expected `;` or `]``
17 err: `expected SEMI` 16 err: `expected SEMI`
18 err: `expected an item` 17 WHITESPACE@[12; 13)
18 err: `expected an item`
19 ERROR@[13; 15) 19 ERROR@[13; 15)
20 INT_NUMBER@[13; 15) "92" 20 INT_NUMBER@[13; 15) "92"
21 err: `expected an item` 21 err: `expected an item`
22 ERROR@[15; 16) 22 ERROR@[15; 16)
23 R_BRACK@[15; 16) 23 R_BRACK@[15; 16)
24 err: `expected an item` 24 err: `expected an item`
25 ERROR@[16; 18) 25 ERROR@[16; 17)
26 SEMI@[16; 17) 26 SEMI@[16; 17)
27 WHITESPACE@[17; 18) 27 WHITESPACE@[17; 18)
diff --git a/tests/data/parser/inline/0024_array_type.txt b/tests/data/parser/inline/0024_array_type.txt
index 4587da937..5a6b76904 100644
--- a/tests/data/parser/inline/0024_array_type.txt
+++ b/tests/data/parser/inline/0024_array_type.txt
@@ -1,21 +1,21 @@
1FILE@[0; 19) 1FILE@[0; 19)
2 TYPE_ITEM@[0; 19) 2 TYPE_ITEM@[0; 18)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 ARRAY_TYPE@[8; 17) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 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 SEMI@[12; 13) 15 SEMI@[12; 13)
16 LITERAL@[13; 16) 16 WHITESPACE@[13; 14)
17 WHITESPACE@[13; 14) 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 SEMI@[17; 18) 20 SEMI@[17; 18)
21 WHITESPACE@[18; 19) 21 WHITESPACE@[18; 19)
diff --git a/tests/data/parser/inline/0025_slice_type.txt b/tests/data/parser/inline/0025_slice_type.txt
index 22938e5e1..52508cda4 100644
--- a/tests/data/parser/inline/0025_slice_type.txt
+++ b/tests/data/parser/inline/0025_slice_type.txt
@@ -1,17 +1,17 @@
1FILE@[0; 15) 1FILE@[0; 15)
2 TYPE_ITEM@[0; 15) 2 TYPE_ITEM@[0; 14)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 SLICE_TYPE@[8; 13) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 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 SEMI@[13; 14) 16 SEMI@[13; 14)
17 WHITESPACE@[14; 15) 17 WHITESPACE@[14; 15)
diff --git a/tests/data/parser/inline/0026_reference_type;.txt b/tests/data/parser/inline/0026_reference_type;.txt
index 10fc5f636..b6bd6a48c 100644
--- a/tests/data/parser/inline/0026_reference_type;.txt
+++ b/tests/data/parser/inline/0026_reference_type;.txt
@@ -1,50 +1,50 @@
1FILE@[0; 54) 1FILE@[0; 54)
2 TYPE_ITEM@[0; 14) 2 TYPE_ITEM@[0; 13)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 REFERENCE_TYPE@[8; 12) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 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 SEMI@[12; 13) 15 SEMI@[12; 13)
16 WHITESPACE@[13; 14) 16 WHITESPACE@[13; 14)
17 TYPE_ITEM@[14; 36) 17 TYPE_ITEM@[14; 35)
18 TYPE_KW@[14; 18) 18 TYPE_KW@[14; 18)
19 NAME@[18; 21) 19 WHITESPACE@[18; 19)
20 WHITESPACE@[18; 19) 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 REFERENCE_TYPE@[22; 34) 24 WHITESPACE@[22; 23)
25 WHITESPACE@[22; 23) 25 REFERENCE_TYPE@[23; 34)
26 AMP@[23; 24) 26 AMP@[23; 24)
27 LIFETIME@[24; 31) "'static" 27 LIFETIME@[24; 31) "'static"
28 TUPLE_TYPE@[31; 34) 28 WHITESPACE@[31; 32)
29 WHITESPACE@[31; 32) 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 SEMI@[34; 35) 32 SEMI@[34; 35)
33 WHITESPACE@[35; 36) 33 WHITESPACE@[35; 36)
34 TYPE_ITEM@[36; 54) 34 TYPE_ITEM@[36; 53)
35 TYPE_KW@[36; 40) 35 TYPE_KW@[36; 40)
36 NAME@[40; 43) 36 WHITESPACE@[40; 41)
37 WHITESPACE@[40; 41) 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 REFERENCE_TYPE@[44; 52) 41 WHITESPACE@[44; 45)
42 WHITESPACE@[44; 45) 42 REFERENCE_TYPE@[45; 52)
43 AMP@[45; 46) 43 AMP@[45; 46)
44 MUT_KW@[46; 49) 44 MUT_KW@[46; 49)
45 TUPLE_TYPE@[49; 52) 45 WHITESPACE@[49; 50)
46 WHITESPACE@[49; 50) 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 SEMI@[52; 53) 49 SEMI@[52; 53)
50 WHITESPACE@[53; 54) 50 WHITESPACE@[53; 54)
diff --git a/tests/data/parser/inline/0027_placeholder_type.txt b/tests/data/parser/inline/0027_placeholder_type.txt
index ab848836c..5e6e6c397 100644
--- a/tests/data/parser/inline/0027_placeholder_type.txt
+++ b/tests/data/parser/inline/0027_placeholder_type.txt
@@ -1,13 +1,13 @@
1FILE@[0; 22) 1FILE@[0; 22)
2 TYPE_ITEM@[0; 22) 2 TYPE_ITEM@[0; 21)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 17) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 PLACEHOLDER_TYPE@[18; 20) 9 WHITESPACE@[18; 19)
10 WHITESPACE@[18; 19) 10 PLACEHOLDER_TYPE@[19; 20)
11 UNDERSCORE@[19; 20) 11 UNDERSCORE@[19; 20)
12 SEMI@[20; 21) 12 SEMI@[20; 21)
13 WHITESPACE@[21; 22) 13 WHITESPACE@[21; 22)
diff --git a/tests/data/parser/inline/0028_fn_pointer_type.txt b/tests/data/parser/inline/0028_fn_pointer_type.txt
index 21bc066e3..31818365a 100644
--- a/tests/data/parser/inline/0028_fn_pointer_type.txt
+++ b/tests/data/parser/inline/0028_fn_pointer_type.txt
@@ -1,28 +1,28 @@
1FILE@[0; 70) 1FILE@[0; 70)
2 TYPE_ITEM@[0; 15) 2 TYPE_ITEM@[0; 14)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 FN_POINTER_TYPE@[8; 13) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 10 FN_POINTER_TYPE@[9; 13)
11 FN_KW@[9; 11) 11 FN_KW@[9; 11)
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 SEMI@[13; 14) 15 SEMI@[13; 14)
16 WHITESPACE@[14; 15) 16 WHITESPACE@[14; 15)
17 TYPE_ITEM@[15; 37) 17 TYPE_ITEM@[15; 36)
18 TYPE_KW@[15; 19) 18 TYPE_KW@[15; 19)
19 NAME@[19; 22) 19 WHITESPACE@[19; 20)
20 WHITESPACE@[19; 20) 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 FN_POINTER_TYPE@[23; 35) 24 WHITESPACE@[23; 24)
25 WHITESPACE@[23; 24) 25 FN_POINTER_TYPE@[24; 35)
26 UNSAFE_KW@[24; 30) 26 UNSAFE_KW@[24; 30)
27 WHITESPACE@[30; 31) 27 WHITESPACE@[30; 31)
28 FN_KW@[31; 33) 28 FN_KW@[31; 33)
@@ -30,26 +30,26 @@ FILE@[0; 70)
30 L_PAREN@[33; 34) 30 L_PAREN@[33; 34)
31 R_PAREN@[34; 35) 31 R_PAREN@[34; 35)
32 SEMI@[35; 36) 32 SEMI@[35; 36)
33 WHITESPACE@[36; 37) 33 WHITESPACE@[36; 37)
34 TYPE_ITEM@[37; 70) 34 TYPE_ITEM@[37; 69)
35 TYPE_KW@[37; 41) 35 TYPE_KW@[37; 41)
36 NAME@[41; 44) 36 WHITESPACE@[41; 42)
37 WHITESPACE@[41; 42) 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 FN_POINTER_TYPE@[45; 68) 41 WHITESPACE@[45; 46)
42 WHITESPACE@[45; 46) 42 FN_POINTER_TYPE@[46; 68)
43 UNSAFE_KW@[46; 52) 43 UNSAFE_KW@[46; 52)
44 ABI@[52; 64) 44 WHITESPACE@[52; 53)
45 WHITESPACE@[52; 53) 45 ABI@[53; 63)
46 EXTERN_KW@[53; 59) 46 EXTERN_KW@[53; 59)
47 WHITESPACE@[59; 60) 47 WHITESPACE@[59; 60)
48 STRING@[60; 63) 48 STRING@[60; 63)
49 WHITESPACE@[63; 64) 49 WHITESPACE@[63; 64)
50 FN_KW@[64; 66) 50 FN_KW@[64; 66)
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 SEMI@[68; 69) 54 SEMI@[68; 69)
55 WHITESPACE@[69; 70) 55 WHITESPACE@[69; 70)
diff --git a/tests/data/parser/inline/0029_fn_pointer_type_missing_fn.txt b/tests/data/parser/inline/0029_fn_pointer_type_missing_fn.txt
index 82632b7bf..ddec1b866 100644
--- a/tests/data/parser/inline/0029_fn_pointer_type_missing_fn.txt
+++ b/tests/data/parser/inline/0029_fn_pointer_type_missing_fn.txt
@@ -1,23 +1,23 @@
1FILE@[0; 20) 1FILE@[0; 20)
2 TYPE_ITEM@[0; 16) 2 TYPE_ITEM@[0; 15)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 UNSAFE_KW@[9; 15) 10 UNSAFE_KW@[9; 15)
11 err: `expected `fn`` 11 err: `expected `fn``
12 err: `expected SEMI` 12 err: `expected SEMI`
13 WHITESPACE@[15; 16) 13 WHITESPACE@[15; 16)
14 err: `expected an item` 14 err: `expected an item`
15 ERROR@[16; 17) 15 ERROR@[16; 17)
16 L_PAREN@[16; 17) 16 L_PAREN@[16; 17)
17 err: `expected an item` 17 err: `expected an item`
18 ERROR@[17; 18) 18 ERROR@[17; 18)
19 R_PAREN@[17; 18) 19 R_PAREN@[17; 18)
20 err: `expected an item` 20 err: `expected an item`
21 ERROR@[18; 20) 21 ERROR@[18; 19)
22 SEMI@[18; 19) 22 SEMI@[18; 19)
23 WHITESPACE@[19; 20) 23 WHITESPACE@[19; 20)
diff --git a/tests/data/parser/inline/0030_fn_pointer_type_with_ret.txt b/tests/data/parser/inline/0030_fn_pointer_type_with_ret.txt
index a72af3f09..447b1ed3f 100644
--- a/tests/data/parser/inline/0030_fn_pointer_type_with_ret.txt
+++ b/tests/data/parser/inline/0030_fn_pointer_type_with_ret.txt
@@ -1,22 +1,22 @@
1FILE@[0; 21) 1FILE@[0; 21)
2 TYPE_ITEM@[0; 21) 2 TYPE_ITEM@[0; 20)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 FN_POINTER_TYPE@[8; 19) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 10 FN_POINTER_TYPE@[9; 19)
11 FN_KW@[9; 11) 11 FN_KW@[9; 11)
12 PARAM_LIST@[11; 14) 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 THIN_ARROW@[14; 16) 16 THIN_ARROW@[14; 16)
17 TUPLE_TYPE@[16; 19) 17 WHITESPACE@[16; 17)
18 WHITESPACE@[16; 17) 18 TUPLE_TYPE@[17; 19)
19 L_PAREN@[17; 18) 19 L_PAREN@[17; 18)
20 R_PAREN@[18; 19) 20 R_PAREN@[18; 19)
21 SEMI@[19; 20) 21 SEMI@[19; 20)
22 WHITESPACE@[20; 21) 22 WHITESPACE@[20; 21)
diff --git a/tests/data/parser/inline/0031_for_type.txt b/tests/data/parser/inline/0031_for_type.txt
index 94ce22f5d..65753a702 100644
--- a/tests/data/parser/inline/0031_for_type.txt
+++ b/tests/data/parser/inline/0031_for_type.txt
@@ -1,30 +1,30 @@
1FILE@[0; 29) 1FILE@[0; 29)
2 TYPE_ITEM@[0; 29) 2 TYPE_ITEM@[0; 28)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 FOR_TYPE@[8; 27) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 10 FOR_TYPE@[9; 27)
11 FOR_KW@[9; 12) 11 FOR_KW@[9; 12)
12 TYPE_PARAM_LIST@[12; 17) 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) 19 FN_KW@[17; 19)
20 PARAM_LIST@[19; 22) 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 THIN_ARROW@[22; 24) 24 THIN_ARROW@[22; 24)
25 TUPLE_TYPE@[24; 27) 25 WHITESPACE@[24; 25)
26 WHITESPACE@[24; 25) 26 TUPLE_TYPE@[25; 27)
27 L_PAREN@[25; 26) 27 L_PAREN@[25; 26)
28 R_PAREN@[26; 27) 28 R_PAREN@[26; 27)
29 SEMI@[27; 28) 29 SEMI@[27; 28)
30 WHITESPACE@[28; 29) 30 WHITESPACE@[28; 29)
diff --git a/tests/data/parser/inline/0032_path_type.txt b/tests/data/parser/inline/0032_path_type.txt
index 1441b8c13..d9085118a 100644
--- a/tests/data/parser/inline/0032_path_type.txt
+++ b/tests/data/parser/inline/0032_path_type.txt
@@ -1,70 +1,70 @@
1FILE@[0; 71) 1FILE@[0; 71)
2 TYPE_ITEM@[0; 14) 2 TYPE_ITEM@[0; 13)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 PATH_TYPE@[8; 12) 9 WHITESPACE@[8; 9)
10 PATH@[8; 12) 10 PATH_TYPE@[9; 12)
11 PATH_SEGMENT@[8; 12) 11 PATH@[9; 12)
12 NAME_REF@[8; 12) 12 PATH_SEGMENT@[9; 12)
13 WHITESPACE@[8; 9) 13 NAME_REF@[9; 12)
14 IDENT@[9; 12) "Foo" 14 IDENT@[9; 12) "Foo"
15 SEMI@[12; 13) 15 SEMI@[12; 13)
16 WHITESPACE@[13; 14) 16 WHITESPACE@[13; 14)
17 TYPE_ITEM@[14; 30) 17 TYPE_ITEM@[14; 29)
18 TYPE_KW@[14; 18) 18 TYPE_KW@[14; 18)
19 NAME@[18; 21) 19 WHITESPACE@[18; 19)
20 WHITESPACE@[18; 19) 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 PATH_TYPE@[22; 28) 24 WHITESPACE@[22; 23)
25 PATH@[22; 28) 25 PATH_TYPE@[23; 28)
26 PATH_SEGMENT@[22; 28) 26 PATH@[23; 28)
27 WHITESPACE@[22; 23) 27 PATH_SEGMENT@[23; 28)
28 COLONCOLON@[23; 25) 28 COLONCOLON@[23; 25)
29 NAME_REF@[25; 28) 29 NAME_REF@[25; 28)
30 IDENT@[25; 28) "Foo" 30 IDENT@[25; 28) "Foo"
31 SEMI@[28; 29) 31 SEMI@[28; 29)
32 WHITESPACE@[29; 30) 32 WHITESPACE@[29; 30)
33 TYPE_ITEM@[30; 50) 33 TYPE_ITEM@[30; 49)
34 TYPE_KW@[30; 34) 34 TYPE_KW@[30; 34)
35 NAME@[34; 37) 35 WHITESPACE@[34; 35)
36 WHITESPACE@[34; 35) 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 PATH_TYPE@[38; 48) 40 WHITESPACE@[38; 39)
41 PATH@[38; 48) 41 PATH_TYPE@[39; 48)
42 PATH@[38; 43) 42 PATH@[39; 48)
43 PATH_SEGMENT@[38; 43) 43 PATH@[39; 43)
44 WHITESPACE@[38; 39) 44 PATH_SEGMENT@[39; 43)
45 SELF_KW@[39; 43) 45 SELF_KW@[39; 43)
46 COLONCOLON@[43; 45) 46 COLONCOLON@[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 SEMI@[48; 49) 50 SEMI@[48; 49)
51 WHITESPACE@[49; 50) 51 WHITESPACE@[49; 50)
52 TYPE_ITEM@[50; 71) 52 TYPE_ITEM@[50; 70)
53 TYPE_KW@[50; 54) 53 TYPE_KW@[50; 54)
54 NAME@[54; 57) 54 WHITESPACE@[54; 55)
55 WHITESPACE@[54; 55) 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 PATH_TYPE@[58; 69) 59 WHITESPACE@[58; 59)
60 PATH@[58; 69) 60 PATH_TYPE@[59; 69)
61 PATH@[58; 64) 61 PATH@[59; 69)
62 PATH_SEGMENT@[58; 64) 62 PATH@[59; 64)
63 WHITESPACE@[58; 59) 63 PATH_SEGMENT@[59; 64)
64 SUPER_KW@[59; 64) 64 SUPER_KW@[59; 64)
65 COLONCOLON@[64; 66) 65 COLONCOLON@[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 SEMI@[69; 70) 69 SEMI@[69; 70)
70 WHITESPACE@[70; 71) 70 WHITESPACE@[70; 71)
diff --git a/tests/data/parser/inline/0034_bind_pat.txt b/tests/data/parser/inline/0034_bind_pat.txt
index d23678fbe..3ce7057f6 100644
--- a/tests/data/parser/inline/0034_bind_pat.txt
+++ b/tests/data/parser/inline/0034_bind_pat.txt
@@ -1,127 +1,127 @@
1FILE@[0; 146) 1FILE@[0; 146)
2 FN_ITEM@[0; 146) 2 FN_ITEM@[0; 145)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 7) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 7)
6 IDENT@[3; 7) "main" 6 IDENT@[3; 7) "main"
7 PARAM_LIST@[7; 10) 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; 146) 11 BLOCK_EXPR@[10; 145)
12 L_CURLY@[10; 11) 12 L_CURLY@[10; 11)
13 LET_STMT@[11; 32) 13 WHITESPACE@[11; 16)
14 WHITESPACE@[11; 16) 14 LET_STMT@[16; 27)
15 LET_KW@[16; 19) 15 LET_KW@[16; 19)
16 BIND_PAT@[19; 22) 16 WHITESPACE@[19; 20)
17 NAME@[19; 22) 17 BIND_PAT@[20; 21)
18 WHITESPACE@[19; 20) 18 NAME@[20; 21)
19 IDENT@[20; 21) "a" 19 IDENT@[20; 21) "a"
20 WHITESPACE@[21; 22) 20 WHITESPACE@[21; 22)
21 EQ@[22; 23) 21 EQ@[22; 23)
22 TUPLE_EXPR@[23; 26) 22 WHITESPACE@[23; 24)
23 WHITESPACE@[23; 24) 23 TUPLE_EXPR@[24; 26)
24 L_PAREN@[24; 25) 24 L_PAREN@[24; 25)
25 R_PAREN@[25; 26) 25 R_PAREN@[25; 26)
26 SEMI@[26; 27) 26 SEMI@[26; 27)
27 WHITESPACE@[27; 32) 27 WHITESPACE@[27; 32)
28 LET_STMT@[32; 52) 28 LET_STMT@[32; 47)
29 LET_KW@[32; 35) 29 LET_KW@[32; 35)
30 BIND_PAT@[35; 42) 30 WHITESPACE@[35; 36)
31 WHITESPACE@[35; 36) 31 BIND_PAT@[36; 41)
32 MUT_KW@[36; 39) 32 MUT_KW@[36; 39)
33 NAME@[39; 42) 33 WHITESPACE@[39; 40)
34 WHITESPACE@[39; 40) 34 NAME@[40; 41)
35 IDENT@[40; 41) "b" 35 IDENT@[40; 41) "b"
36 WHITESPACE@[41; 42) 36 WHITESPACE@[41; 42)
37 EQ@[42; 43) 37 EQ@[42; 43)
38 TUPLE_EXPR@[43; 46) 38 WHITESPACE@[43; 44)
39 WHITESPACE@[43; 44) 39 TUPLE_EXPR@[44; 46)
40 L_PAREN@[44; 45) 40 L_PAREN@[44; 45)
41 R_PAREN@[45; 46) 41 R_PAREN@[45; 46)
42 SEMI@[46; 47) 42 SEMI@[46; 47)
43 WHITESPACE@[47; 52) 43 WHITESPACE@[47; 52)
44 LET_STMT@[52; 72) 44 LET_STMT@[52; 67)
45 LET_KW@[52; 55) 45 LET_KW@[52; 55)
46 BIND_PAT@[55; 62) 46 WHITESPACE@[55; 56)
47 WHITESPACE@[55; 56) 47 BIND_PAT@[56; 61)
48 REF_KW@[56; 59) 48 REF_KW@[56; 59)
49 NAME@[59; 62) 49 WHITESPACE@[59; 60)
50 WHITESPACE@[59; 60) 50 NAME@[60; 61)
51 IDENT@[60; 61) "c" 51 IDENT@[60; 61) "c"
52 WHITESPACE@[61; 62) 52 WHITESPACE@[61; 62)
53 EQ@[62; 63) 53 EQ@[62; 63)
54 TUPLE_EXPR@[63; 66) 54 WHITESPACE@[63; 64)
55 WHITESPACE@[63; 64) 55 TUPLE_EXPR@[64; 66)
56 L_PAREN@[64; 65) 56 L_PAREN@[64; 65)
57 R_PAREN@[65; 66) 57 R_PAREN@[65; 66)
58 SEMI@[66; 67) 58 SEMI@[66; 67)
59 WHITESPACE@[67; 72) 59 WHITESPACE@[67; 72)
60 LET_STMT@[72; 96) 60 LET_STMT@[72; 91)
61 LET_KW@[72; 75) 61 LET_KW@[72; 75)
62 BIND_PAT@[75; 86) 62 WHITESPACE@[75; 76)
63 WHITESPACE@[75; 76) 63 BIND_PAT@[76; 85)
64 REF_KW@[76; 79) 64 REF_KW@[76; 79)
65 WHITESPACE@[79; 80) 65 WHITESPACE@[79; 80)
66 MUT_KW@[80; 83) 66 MUT_KW@[80; 83)
67 NAME@[83; 86) 67 WHITESPACE@[83; 84)
68 WHITESPACE@[83; 84) 68 NAME@[84; 85)
69 IDENT@[84; 85) "d" 69 IDENT@[84; 85) "d"
70 WHITESPACE@[85; 86) 70 WHITESPACE@[85; 86)
71 EQ@[86; 87) 71 EQ@[86; 87)
72 TUPLE_EXPR@[87; 90) 72 WHITESPACE@[87; 88)
73 WHITESPACE@[87; 88) 73 TUPLE_EXPR@[88; 90)
74 L_PAREN@[88; 89) 74 L_PAREN@[88; 89)
75 R_PAREN@[89; 90) 75 R_PAREN@[89; 90)
76 SEMI@[90; 91) 76 SEMI@[90; 91)
77 WHITESPACE@[91; 96) 77 WHITESPACE@[91; 96)
78 LET_STMT@[96; 116) 78 LET_STMT@[96; 111)
79 LET_KW@[96; 99) 79 LET_KW@[96; 99)
80 BIND_PAT@[99; 106) 80 WHITESPACE@[99; 100)
81 NAME@[99; 102) 81 BIND_PAT@[100; 105)
82 WHITESPACE@[99; 100) 82 NAME@[100; 101)
83 IDENT@[100; 101) "e" 83 IDENT@[100; 101) "e"
84 WHITESPACE@[101; 102) 84 WHITESPACE@[101; 102)
85 AT@[102; 103) 85 AT@[102; 103)
86 PLACEHOLDER_PAT@[103; 106) 86 WHITESPACE@[103; 104)
87 WHITESPACE@[103; 104) 87 PLACEHOLDER_PAT@[104; 105)
88 UNDERSCORE@[104; 105) 88 UNDERSCORE@[104; 105)
89 WHITESPACE@[105; 106) 89 WHITESPACE@[105; 106)
90 EQ@[106; 107) 90 EQ@[106; 107)
91 TUPLE_EXPR@[107; 110) 91 WHITESPACE@[107; 108)
92 WHITESPACE@[107; 108) 92 TUPLE_EXPR@[108; 110)
93 L_PAREN@[108; 109) 93 L_PAREN@[108; 109)
94 R_PAREN@[109; 110) 94 R_PAREN@[109; 110)
95 SEMI@[110; 111) 95 SEMI@[110; 111)
96 WHITESPACE@[111; 116) 96 WHITESPACE@[111; 116)
97 LET_STMT@[116; 144) 97 LET_STMT@[116; 143)
98 LET_KW@[116; 119) 98 LET_KW@[116; 119)
99 BIND_PAT@[119; 138) 99 WHITESPACE@[119; 120)
100 WHITESPACE@[119; 120) 100 BIND_PAT@[120; 137)
101 REF_KW@[120; 123) 101 REF_KW@[120; 123)
102 WHITESPACE@[123; 124) 102 WHITESPACE@[123; 124)
103 MUT_KW@[124; 127) 103 MUT_KW@[124; 127)
104 NAME@[127; 130) 104 WHITESPACE@[127; 128)
105 WHITESPACE@[127; 128) 105 NAME@[128; 129)
106 IDENT@[128; 129) "f" 106 IDENT@[128; 129) "f"
107 WHITESPACE@[129; 130) 107 WHITESPACE@[129; 130)
108 AT@[130; 131) 108 AT@[130; 131)
109 BIND_PAT@[131; 138) 109 WHITESPACE@[131; 132)
110 NAME@[131; 134) 110 BIND_PAT@[132; 137)
111 WHITESPACE@[131; 132) 111 NAME@[132; 133)
112 IDENT@[132; 133) "g" 112 IDENT@[132; 133) "g"
113 WHITESPACE@[133; 134) 113 WHITESPACE@[133; 134)
114 AT@[134; 135) 114 AT@[134; 135)
115 PLACEHOLDER_PAT@[135; 138) 115 WHITESPACE@[135; 136)
116 WHITESPACE@[135; 136) 116 PLACEHOLDER_PAT@[136; 137)
117 UNDERSCORE@[136; 137) 117 UNDERSCORE@[136; 137)
118 WHITESPACE@[137; 138) 118 WHITESPACE@[137; 138)
119 EQ@[138; 139) 119 EQ@[138; 139)
120 TUPLE_EXPR@[139; 142) 120 WHITESPACE@[139; 140)
121 WHITESPACE@[139; 140) 121 TUPLE_EXPR@[140; 142)
122 L_PAREN@[140; 141) 122 L_PAREN@[140; 141)
123 R_PAREN@[141; 142) 123 R_PAREN@[141; 142)
124 SEMI@[142; 143) 124 SEMI@[142; 143)
125 WHITESPACE@[143; 144) 125 WHITESPACE@[143; 144)
126 R_CURLY@[144; 145) 126 R_CURLY@[144; 145)
127 WHITESPACE@[145; 146) 127 WHITESPACE@[145; 146)
diff --git a/tests/data/parser/inline/0035_ref_pat.txt b/tests/data/parser/inline/0035_ref_pat.txt
index b3aa6d285..68bd89f4e 100644
--- a/tests/data/parser/inline/0035_ref_pat.txt
+++ b/tests/data/parser/inline/0035_ref_pat.txt
@@ -1,49 +1,49 @@
1FILE@[0; 52) 1FILE@[0; 52)
2 FN_ITEM@[0; 52) 2 FN_ITEM@[0; 51)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 7) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 7)
6 IDENT@[3; 7) "main" 6 IDENT@[3; 7) "main"
7 PARAM_LIST@[7; 10) 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; 52) 11 BLOCK_EXPR@[10; 51)
12 L_CURLY@[10; 11) 12 L_CURLY@[10; 11)
13 LET_STMT@[11; 33) 13 WHITESPACE@[11; 16)
14 WHITESPACE@[11; 16) 14 LET_STMT@[16; 28)
15 LET_KW@[16; 19) 15 LET_KW@[16; 19)
16 REF_PAT@[19; 23) 16 WHITESPACE@[19; 20)
17 WHITESPACE@[19; 20) 17 REF_PAT@[20; 22)
18 AMP@[20; 21) 18 AMP@[20; 21)
19 BIND_PAT@[21; 23) 19 BIND_PAT@[21; 22)
20 NAME@[21; 23) 20 NAME@[21; 22)
21 IDENT@[21; 22) "a" 21 IDENT@[21; 22) "a"
22 WHITESPACE@[22; 23) 22 WHITESPACE@[22; 23)
23 EQ@[23; 24) 23 EQ@[23; 24)
24 TUPLE_EXPR@[24; 27) 24 WHITESPACE@[24; 25)
25 WHITESPACE@[24; 25) 25 TUPLE_EXPR@[25; 27)
26 L_PAREN@[25; 26) 26 L_PAREN@[25; 26)
27 R_PAREN@[26; 27) 27 R_PAREN@[26; 27)
28 SEMI@[27; 28) 28 SEMI@[27; 28)
29 WHITESPACE@[28; 33) 29 WHITESPACE@[28; 33)
30 LET_STMT@[33; 50) 30 LET_STMT@[33; 49)
31 LET_KW@[33; 36) 31 LET_KW@[33; 36)
32 REF_PAT@[36; 44) 32 WHITESPACE@[36; 37)
33 WHITESPACE@[36; 37) 33 REF_PAT@[37; 43)
34 AMP@[37; 38) 34 AMP@[37; 38)
35 MUT_KW@[38; 41) 35 MUT_KW@[38; 41)
36 BIND_PAT@[41; 44) 36 WHITESPACE@[41; 42)
37 NAME@[41; 44) 37 BIND_PAT@[42; 43)
38 WHITESPACE@[41; 42) 38 NAME@[42; 43)
39 IDENT@[42; 43) "b" 39 IDENT@[42; 43) "b"
40 WHITESPACE@[43; 44) 40 WHITESPACE@[43; 44)
41 EQ@[44; 45) 41 EQ@[44; 45)
42 TUPLE_EXPR@[45; 48) 42 WHITESPACE@[45; 46)
43 WHITESPACE@[45; 46) 43 TUPLE_EXPR@[46; 48)
44 L_PAREN@[46; 47) 44 L_PAREN@[46; 47)
45 R_PAREN@[47; 48) 45 R_PAREN@[47; 48)
46 SEMI@[48; 49) 46 SEMI@[48; 49)
47 WHITESPACE@[49; 50) 47 WHITESPACE@[49; 50)
48 R_CURLY@[50; 51) 48 R_CURLY@[50; 51)
49 WHITESPACE@[51; 52) 49 WHITESPACE@[51; 52)
diff --git a/tests/data/parser/inline/0036_placeholder_pat.txt b/tests/data/parser/inline/0036_placeholder_pat.txt
index 2d7fd0627..fc002b112 100644
--- a/tests/data/parser/inline/0036_placeholder_pat.txt
+++ b/tests/data/parser/inline/0036_placeholder_pat.txt
@@ -1,28 +1,28 @@
1FILE@[0; 26) 1FILE@[0; 26)
2 FN_ITEM@[0; 26) 2 FN_ITEM@[0; 25)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 7) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 7)
6 IDENT@[3; 7) "main" 6 IDENT@[3; 7) "main"
7 PARAM_LIST@[7; 10) 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; 26) 11 BLOCK_EXPR@[10; 25)
12 L_CURLY@[10; 11) 12 L_CURLY@[10; 11)
13 LET_STMT@[11; 24) 13 WHITESPACE@[11; 12)
14 WHITESPACE@[11; 12) 14 LET_STMT@[12; 23)
15 LET_KW@[12; 15) 15 LET_KW@[12; 15)
16 PLACEHOLDER_PAT@[15; 18) 16 WHITESPACE@[15; 16)
17 WHITESPACE@[15; 16) 17 PLACEHOLDER_PAT@[16; 17)
18 UNDERSCORE@[16; 17) 18 UNDERSCORE@[16; 17)
19 WHITESPACE@[17; 18) 19 WHITESPACE@[17; 18)
20 EQ@[18; 19) 20 EQ@[18; 19)
21 TUPLE_EXPR@[19; 22) 21 WHITESPACE@[19; 20)
22 WHITESPACE@[19; 20) 22 TUPLE_EXPR@[20; 22)
23 L_PAREN@[20; 21) 23 L_PAREN@[20; 21)
24 R_PAREN@[21; 22) 24 R_PAREN@[21; 22)
25 SEMI@[22; 23) 25 SEMI@[22; 23)
26 WHITESPACE@[23; 24) 26 WHITESPACE@[23; 24)
27 R_CURLY@[24; 25) 27 R_CURLY@[24; 25)
28 WHITESPACE@[25; 26) 28 WHITESPACE@[25; 26)
diff --git a/tests/data/parser/inline/0037_crate_visibility.txt b/tests/data/parser/inline/0037_crate_visibility.txt
index 5fb410b67..113ac59e2 100644
--- a/tests/data/parser/inline/0037_crate_visibility.txt
+++ b/tests/data/parser/inline/0037_crate_visibility.txt
@@ -1,53 +1,53 @@
1FILE@[0; 81) 1FILE@[0; 81)
2 STRUCT_ITEM@[0; 21) 2 STRUCT_ITEM@[0; 20)
3 VISIBILITY@[0; 11) 3 VISIBILITY@[0; 10)
4 PUB_KW@[0; 3) 4 PUB_KW@[0; 3)
5 L_PAREN@[3; 4) 5 L_PAREN@[3; 4)
6 CRATE_KW@[4; 9) 6 CRATE_KW@[4; 9)
7 R_PAREN@[9; 10) 7 R_PAREN@[9; 10)
8 WHITESPACE@[10; 11) 8 WHITESPACE@[10; 11)
9 STRUCT_KW@[11; 17) 9 STRUCT_KW@[11; 17)
10 NAME@[17; 19) 10 WHITESPACE@[17; 18)
11 WHITESPACE@[17; 18) 11 NAME@[18; 19)
12 IDENT@[18; 19) "S" 12 IDENT@[18; 19) "S"
13 SEMI@[19; 20) 13 SEMI@[19; 20)
14 WHITESPACE@[20; 21) 14 WHITESPACE@[20; 21)
15 STRUCT_ITEM@[21; 41) 15 STRUCT_ITEM@[21; 40)
16 VISIBILITY@[21; 31) 16 VISIBILITY@[21; 30)
17 PUB_KW@[21; 24) 17 PUB_KW@[21; 24)
18 L_PAREN@[24; 25) 18 L_PAREN@[24; 25)
19 SELF_KW@[25; 29) 19 SELF_KW@[25; 29)
20 R_PAREN@[29; 30) 20 R_PAREN@[29; 30)
21 WHITESPACE@[30; 31) 21 WHITESPACE@[30; 31)
22 STRUCT_KW@[31; 37) 22 STRUCT_KW@[31; 37)
23 NAME@[37; 39) 23 WHITESPACE@[37; 38)
24 WHITESPACE@[37; 38) 24 NAME@[38; 39)
25 IDENT@[38; 39) "S" 25 IDENT@[38; 39) "S"
26 SEMI@[39; 40) 26 SEMI@[39; 40)
27 WHITESPACE@[40; 41) 27 WHITESPACE@[40; 41)
28 STRUCT_ITEM@[41; 61) 28 STRUCT_ITEM@[41; 60)
29 VISIBILITY@[41; 51) 29 VISIBILITY@[41; 50)
30 PUB_KW@[41; 44) 30 PUB_KW@[41; 44)
31 L_PAREN@[44; 45) 31 L_PAREN@[44; 45)
32 SELF_KW@[45; 49) 32 SELF_KW@[45; 49)
33 R_PAREN@[49; 50) 33 R_PAREN@[49; 50)
34 WHITESPACE@[50; 51) 34 WHITESPACE@[50; 51)
35 STRUCT_KW@[51; 57) 35 STRUCT_KW@[51; 57)
36 NAME@[57; 59) 36 WHITESPACE@[57; 58)
37 WHITESPACE@[57; 58) 37 NAME@[58; 59)
38 IDENT@[58; 59) "S" 38 IDENT@[58; 59) "S"
39 SEMI@[59; 60) 39 SEMI@[59; 60)
40 WHITESPACE@[60; 61) 40 WHITESPACE@[60; 61)
41 STRUCT_ITEM@[61; 81) 41 STRUCT_ITEM@[61; 80)
42 VISIBILITY@[61; 71) 42 VISIBILITY@[61; 70)
43 PUB_KW@[61; 64) 43 PUB_KW@[61; 64)
44 L_PAREN@[64; 65) 44 L_PAREN@[64; 65)
45 SELF_KW@[65; 69) 45 SELF_KW@[65; 69)
46 R_PAREN@[69; 70) 46 R_PAREN@[69; 70)
47 WHITESPACE@[70; 71) 47 WHITESPACE@[70; 71)
48 STRUCT_KW@[71; 77) 48 STRUCT_KW@[71; 77)
49 NAME@[77; 79) 49 WHITESPACE@[77; 78)
50 WHITESPACE@[77; 78) 50 NAME@[78; 79)
51 IDENT@[78; 79) "S" 51 IDENT@[78; 79) "S"
52 SEMI@[79; 80) 52 SEMI@[79; 80)
53 WHITESPACE@[80; 81) 53 WHITESPACE@[80; 81)
diff --git a/tests/data/parser/inline/0038_fn_item_ret_type.txt b/tests/data/parser/inline/0038_fn_item_ret_type.txt
index 391971721..a6157445c 100644
--- a/tests/data/parser/inline/0038_fn_item_ret_type.txt
+++ b/tests/data/parser/inline/0038_fn_item_ret_type.txt
@@ -1,33 +1,33 @@
1FILE@[0; 30) 1FILE@[0; 30)
2 FN_ITEM@[0; 12) 2 FN_ITEM@[0; 11)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 12) 11 BLOCK_EXPR@[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) 14 WHITESPACE@[11; 12)
15 FN_ITEM@[12; 30) 15 FN_ITEM@[12; 29)
16 FN_KW@[12; 14) 16 FN_KW@[12; 14)
17 NAME@[14; 18) 17 WHITESPACE@[14; 15)
18 WHITESPACE@[14; 15) 18 NAME@[15; 18)
19 IDENT@[15; 18) "bar" 19 IDENT@[15; 18) "bar"
20 PARAM_LIST@[18; 21) 20 PARAM_LIST@[18; 20)
21 L_PAREN@[18; 19) 21 L_PAREN@[18; 19)
22 R_PAREN@[19; 20) 22 R_PAREN@[19; 20)
23 WHITESPACE@[20; 21) 23 WHITESPACE@[20; 21)
24 THIN_ARROW@[21; 23) 24 THIN_ARROW@[21; 23)
25 TUPLE_TYPE@[23; 27) 25 WHITESPACE@[23; 24)
26 WHITESPACE@[23; 24) 26 TUPLE_TYPE@[24; 26)
27 L_PAREN@[24; 25) 27 L_PAREN@[24; 25)
28 R_PAREN@[25; 26) 28 R_PAREN@[25; 26)
29 WHITESPACE@[26; 27) 29 WHITESPACE@[26; 27)
30 BLOCK_EXPR@[27; 30) 30 BLOCK_EXPR@[27; 29)
31 L_CURLY@[27; 28) 31 L_CURLY@[27; 28)
32 R_CURLY@[28; 29) 32 R_CURLY@[28; 29)
33 WHITESPACE@[29; 30) 33 WHITESPACE@[29; 30)
diff --git a/tests/data/parser/inline/0039_path_expr.txt b/tests/data/parser/inline/0039_path_expr.txt
index a3e2dbbe8..90eab65f6 100644
--- a/tests/data/parser/inline/0039_path_expr.txt
+++ b/tests/data/parser/inline/0039_path_expr.txt
@@ -1,62 +1,62 @@
1FILE@[0; 91) 1FILE@[0; 91)
2 FN_ITEM@[0; 91) 2 FN_ITEM@[0; 90)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 91) 11 BLOCK_EXPR@[9; 90)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 LET_STMT@[10; 30) 13 WHITESPACE@[10; 15)
14 WHITESPACE@[10; 15) 14 LET_STMT@[15; 25)
15 LET_KW@[15; 18) 15 LET_KW@[15; 18)
16 PLACEHOLDER_PAT@[18; 21) 16 WHITESPACE@[18; 19)
17 WHITESPACE@[18; 19) 17 PLACEHOLDER_PAT@[19; 20)
18 UNDERSCORE@[19; 20) 18 UNDERSCORE@[19; 20)
19 WHITESPACE@[20; 21) 19 WHITESPACE@[20; 21)
20 EQ@[21; 22) 20 EQ@[21; 22)
21 PATH_EXPR@[22; 24) 21 WHITESPACE@[22; 23)
22 PATH@[22; 24) 22 PATH_EXPR@[23; 24)
23 PATH_SEGMENT@[22; 24) 23 PATH@[23; 24)
24 NAME_REF@[22; 24) 24 PATH_SEGMENT@[23; 24)
25 WHITESPACE@[22; 23) 25 NAME_REF@[23; 24)
26 IDENT@[23; 24) "a" 26 IDENT@[23; 24) "a"
27 SEMI@[24; 25) 27 SEMI@[24; 25)
28 WHITESPACE@[25; 30) 28 WHITESPACE@[25; 30)
29 LET_STMT@[30; 48) 29 LET_STMT@[30; 43)
30 LET_KW@[30; 33) 30 LET_KW@[30; 33)
31 PLACEHOLDER_PAT@[33; 36) 31 WHITESPACE@[33; 34)
32 WHITESPACE@[33; 34) 32 PLACEHOLDER_PAT@[34; 35)
33 UNDERSCORE@[34; 35) 33 UNDERSCORE@[34; 35)
34 WHITESPACE@[35; 36) 34 WHITESPACE@[35; 36)
35 EQ@[36; 37) 35 EQ@[36; 37)
36 PATH_EXPR@[37; 42) 36 WHITESPACE@[37; 38)
37 PATH@[37; 42) 37 PATH_EXPR@[38; 42)
38 PATH@[37; 39) 38 PATH@[38; 42)
39 PATH_SEGMENT@[37; 39) 39 PATH@[38; 39)
40 NAME_REF@[37; 39) 40 PATH_SEGMENT@[38; 39)
41 WHITESPACE@[37; 38) 41 NAME_REF@[38; 39)
42 IDENT@[38; 39) "a" 42 IDENT@[38; 39) "a"
43 COLONCOLON@[39; 41) 43 COLONCOLON@[39; 41)
44 PATH_SEGMENT@[41; 42) 44 PATH_SEGMENT@[41; 42)
45 NAME_REF@[41; 42) 45 NAME_REF@[41; 42)
46 IDENT@[41; 42) "b" 46 IDENT@[41; 42) "b"
47 SEMI@[42; 43) 47 SEMI@[42; 43)
48 WHITESPACE@[43; 48) 48 WHITESPACE@[43; 48)
49 LET_STMT@[48; 70) 49 LET_STMT@[48; 65)
50 LET_KW@[48; 51) 50 LET_KW@[48; 51)
51 PLACEHOLDER_PAT@[51; 54) 51 WHITESPACE@[51; 52)
52 WHITESPACE@[51; 52) 52 PLACEHOLDER_PAT@[52; 53)
53 UNDERSCORE@[52; 53) 53 UNDERSCORE@[52; 53)
54 WHITESPACE@[53; 54) 54 WHITESPACE@[53; 54)
55 EQ@[54; 55) 55 EQ@[54; 55)
56 PATH_EXPR@[55; 64) 56 WHITESPACE@[55; 56)
57 PATH@[55; 64) 57 PATH_EXPR@[56; 64)
58 PATH_SEGMENT@[55; 64) 58 PATH@[56; 64)
59 WHITESPACE@[55; 56) 59 PATH_SEGMENT@[56; 64)
60 COLONCOLON@[56; 58) 60 COLONCOLON@[56; 58)
61 NAME_REF@[58; 59) 61 NAME_REF@[58; 59)
62 IDENT@[58; 59) "a" 62 IDENT@[58; 59) "a"
@@ -71,24 +71,24 @@ FILE@[0; 91)
71 IDENT@[62; 63) "b" 71 IDENT@[62; 63) "b"
72 R_ANGLE@[63; 64) 72 R_ANGLE@[63; 64)
73 SEMI@[64; 65) 73 SEMI@[64; 65)
74 WHITESPACE@[65; 70) 74 WHITESPACE@[65; 70)
75 LET_STMT@[70; 89) 75 LET_STMT@[70; 88)
76 LET_KW@[70; 73) 76 LET_KW@[70; 73)
77 PLACEHOLDER_PAT@[73; 76) 77 WHITESPACE@[73; 74)
78 WHITESPACE@[73; 74) 78 PLACEHOLDER_PAT@[74; 75)
79 UNDERSCORE@[74; 75) 79 UNDERSCORE@[74; 75)
80 WHITESPACE@[75; 76) 80 WHITESPACE@[75; 76)
81 EQ@[76; 77) 81 EQ@[76; 77)
82 MACRO_CALL@[77; 87) 82 WHITESPACE@[77; 78)
83 PATH@[77; 84) 83 MACRO_CALL@[78; 87)
84 PATH_SEGMENT@[77; 84) 84 PATH@[78; 84)
85 NAME_REF@[77; 84) 85 PATH_SEGMENT@[78; 84)
86 WHITESPACE@[77; 78) 86 NAME_REF@[78; 84)
87 IDENT@[78; 84) "format" 87 IDENT@[78; 84) "format"
88 EXCL@[84; 85) 88 EXCL@[84; 85)
89 L_PAREN@[85; 86) 89 L_PAREN@[85; 86)
90 R_PAREN@[86; 87) 90 R_PAREN@[86; 87)
91 SEMI@[87; 88) 91 SEMI@[87; 88)
92 WHITESPACE@[88; 89) 92 WHITESPACE@[88; 89)
93 R_CURLY@[89; 90) 93 R_CURLY@[89; 90)
94 WHITESPACE@[90; 91) 94 WHITESPACE@[90; 91)
diff --git a/tests/data/parser/inline/0040_expr_literals.txt b/tests/data/parser/inline/0040_expr_literals.txt
index f6a843a48..bc651c2a9 100644
--- a/tests/data/parser/inline/0040_expr_literals.txt
+++ b/tests/data/parser/inline/0040_expr_literals.txt
@@ -1,135 +1,135 @@
1FILE@[0; 189) 1FILE@[0; 189)
2 FN_ITEM@[0; 189) 2 FN_ITEM@[0; 188)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 189) 11 BLOCK_EXPR@[9; 188)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 LET_STMT@[10; 33) 13 WHITESPACE@[10; 15)
14 WHITESPACE@[10; 15) 14 LET_STMT@[15; 28)
15 LET_KW@[15; 18) 15 LET_KW@[15; 18)
16 PLACEHOLDER_PAT@[18; 21) 16 WHITESPACE@[18; 19)
17 WHITESPACE@[18; 19) 17 PLACEHOLDER_PAT@[19; 20)
18 UNDERSCORE@[19; 20) 18 UNDERSCORE@[19; 20)
19 WHITESPACE@[20; 21) 19 WHITESPACE@[20; 21)
20 EQ@[21; 22) 20 EQ@[21; 22)
21 LITERAL@[22; 27) 21 WHITESPACE@[22; 23)
22 WHITESPACE@[22; 23) 22 LITERAL@[23; 27)
23 TRUE_KW@[23; 27) 23 TRUE_KW@[23; 27)
24 SEMI@[27; 28) 24 SEMI@[27; 28)
25 WHITESPACE@[28; 33) 25 WHITESPACE@[28; 33)
26 LET_STMT@[33; 52) 26 LET_STMT@[33; 47)
27 LET_KW@[33; 36) 27 LET_KW@[33; 36)
28 PLACEHOLDER_PAT@[36; 39) 28 WHITESPACE@[36; 37)
29 WHITESPACE@[36; 37) 29 PLACEHOLDER_PAT@[37; 38)
30 UNDERSCORE@[37; 38) 30 UNDERSCORE@[37; 38)
31 WHITESPACE@[38; 39) 31 WHITESPACE@[38; 39)
32 EQ@[39; 40) 32 EQ@[39; 40)
33 LITERAL@[40; 46) 33 WHITESPACE@[40; 41)
34 WHITESPACE@[40; 41) 34 LITERAL@[41; 46)
35 FALSE_KW@[41; 46) 35 FALSE_KW@[41; 46)
36 SEMI@[46; 47) 36 SEMI@[46; 47)
37 WHITESPACE@[47; 52) 37 WHITESPACE@[47; 52)
38 LET_STMT@[52; 67) 38 LET_STMT@[52; 62)
39 LET_KW@[52; 55) 39 LET_KW@[52; 55)
40 PLACEHOLDER_PAT@[55; 58) 40 WHITESPACE@[55; 56)
41 WHITESPACE@[55; 56) 41 PLACEHOLDER_PAT@[56; 57)
42 UNDERSCORE@[56; 57) 42 UNDERSCORE@[56; 57)
43 WHITESPACE@[57; 58) 43 WHITESPACE@[57; 58)
44 EQ@[58; 59) 44 EQ@[58; 59)
45 LITERAL@[59; 61) 45 WHITESPACE@[59; 60)
46 WHITESPACE@[59; 60) 46 LITERAL@[60; 61)
47 INT_NUMBER@[60; 61) "1" 47 INT_NUMBER@[60; 61) "1"
48 SEMI@[61; 62) 48 SEMI@[61; 62)
49 WHITESPACE@[62; 67) 49 WHITESPACE@[62; 67)
50 LET_STMT@[67; 84) 50 LET_STMT@[67; 79)
51 LET_KW@[67; 70) 51 LET_KW@[67; 70)
52 PLACEHOLDER_PAT@[70; 73) 52 WHITESPACE@[70; 71)
53 WHITESPACE@[70; 71) 53 PLACEHOLDER_PAT@[71; 72)
54 UNDERSCORE@[71; 72) 54 UNDERSCORE@[71; 72)
55 WHITESPACE@[72; 73) 55 WHITESPACE@[72; 73)
56 EQ@[73; 74) 56 EQ@[73; 74)
57 LITERAL@[74; 78) 57 WHITESPACE@[74; 75)
58 WHITESPACE@[74; 75) 58 LITERAL@[75; 78)
59 FLOAT_NUMBER@[75; 78) "2.0" 59 FLOAT_NUMBER@[75; 78) "2.0"
60 SEMI@[78; 79) 60 SEMI@[78; 79)
61 WHITESPACE@[79; 84) 61 WHITESPACE@[79; 84)
62 LET_STMT@[84; 102) 62 LET_STMT@[84; 97)
63 LET_KW@[84; 87) 63 LET_KW@[84; 87)
64 PLACEHOLDER_PAT@[87; 90) 64 WHITESPACE@[87; 88)
65 WHITESPACE@[87; 88) 65 PLACEHOLDER_PAT@[88; 89)
66 UNDERSCORE@[88; 89) 66 UNDERSCORE@[88; 89)
67 WHITESPACE@[89; 90) 67 WHITESPACE@[89; 90)
68 EQ@[90; 91) 68 EQ@[90; 91)
69 LITERAL@[91; 96) 69 WHITESPACE@[91; 92)
70 WHITESPACE@[91; 92) 70 LITERAL@[92; 96)
71 BYTE@[92; 96) 71 BYTE@[92; 96)
72 SEMI@[96; 97) 72 SEMI@[96; 97)
73 WHITESPACE@[97; 102) 73 WHITESPACE@[97; 102)
74 LET_STMT@[102; 119) 74 LET_STMT@[102; 114)
75 LET_KW@[102; 105) 75 LET_KW@[102; 105)
76 PLACEHOLDER_PAT@[105; 108) 76 WHITESPACE@[105; 106)
77 WHITESPACE@[105; 106) 77 PLACEHOLDER_PAT@[106; 107)
78 UNDERSCORE@[106; 107) 78 UNDERSCORE@[106; 107)
79 WHITESPACE@[107; 108) 79 WHITESPACE@[107; 108)
80 EQ@[108; 109) 80 EQ@[108; 109)
81 LITERAL@[109; 113) 81 WHITESPACE@[109; 110)
82 WHITESPACE@[109; 110) 82 LITERAL@[110; 113)
83 CHAR@[110; 113) 83 CHAR@[110; 113)
84 SEMI@[113; 114) 84 SEMI@[113; 114)
85 WHITESPACE@[114; 119) 85 WHITESPACE@[114; 119)
86 LET_STMT@[119; 136) 86 LET_STMT@[119; 131)
87 LET_KW@[119; 122) 87 LET_KW@[119; 122)
88 PLACEHOLDER_PAT@[122; 125) 88 WHITESPACE@[122; 123)
89 WHITESPACE@[122; 123) 89 PLACEHOLDER_PAT@[123; 124)
90 UNDERSCORE@[123; 124) 90 UNDERSCORE@[123; 124)
91 WHITESPACE@[124; 125) 91 WHITESPACE@[124; 125)
92 EQ@[125; 126) 92 EQ@[125; 126)
93 LITERAL@[126; 130) 93 WHITESPACE@[126; 127)
94 WHITESPACE@[126; 127) 94 LITERAL@[127; 130)
95 STRING@[127; 130) 95 STRING@[127; 130)
96 SEMI@[130; 131) 96 SEMI@[130; 131)
97 WHITESPACE@[131; 136) 97 WHITESPACE@[131; 136)
98 LET_STMT@[136; 154) 98 LET_STMT@[136; 149)
99 LET_KW@[136; 139) 99 LET_KW@[136; 139)
100 PLACEHOLDER_PAT@[139; 142) 100 WHITESPACE@[139; 140)
101 WHITESPACE@[139; 140) 101 PLACEHOLDER_PAT@[140; 141)
102 UNDERSCORE@[140; 141) 102 UNDERSCORE@[140; 141)
103 WHITESPACE@[141; 142) 103 WHITESPACE@[141; 142)
104 EQ@[142; 143) 104 EQ@[142; 143)
105 LITERAL@[143; 148) 105 WHITESPACE@[143; 144)
106 WHITESPACE@[143; 144) 106 LITERAL@[144; 148)
107 RAW_STRING@[144; 148) 107 RAW_STRING@[144; 148)
108 SEMI@[148; 149) 108 SEMI@[148; 149)
109 WHITESPACE@[149; 154) 109 WHITESPACE@[149; 154)
110 LET_STMT@[154; 172) 110 LET_STMT@[154; 167)
111 LET_KW@[154; 157) 111 LET_KW@[154; 157)
112 PLACEHOLDER_PAT@[157; 160) 112 WHITESPACE@[157; 158)
113 WHITESPACE@[157; 158) 113 PLACEHOLDER_PAT@[158; 159)
114 UNDERSCORE@[158; 159) 114 UNDERSCORE@[158; 159)
115 WHITESPACE@[159; 160) 115 WHITESPACE@[159; 160)
116 EQ@[160; 161) 116 EQ@[160; 161)
117 LITERAL@[161; 166) 117 WHITESPACE@[161; 162)
118 WHITESPACE@[161; 162) 118 LITERAL@[162; 166)
119 BYTE_STRING@[162; 166) 119 BYTE_STRING@[162; 166)
120 SEMI@[166; 167) 120 SEMI@[166; 167)
121 WHITESPACE@[167; 172) 121 WHITESPACE@[167; 172)
122 LET_STMT@[172; 187) 122 LET_STMT@[172; 186)
123 LET_KW@[172; 175) 123 LET_KW@[172; 175)
124 PLACEHOLDER_PAT@[175; 178) 124 WHITESPACE@[175; 176)
125 WHITESPACE@[175; 176) 125 PLACEHOLDER_PAT@[176; 177)
126 UNDERSCORE@[176; 177) 126 UNDERSCORE@[176; 177)
127 WHITESPACE@[177; 178) 127 WHITESPACE@[177; 178)
128 EQ@[178; 179) 128 EQ@[178; 179)
129 LITERAL@[179; 185) 129 WHITESPACE@[179; 180)
130 WHITESPACE@[179; 180) 130 LITERAL@[180; 185)
131 RAW_BYTE_STRING@[180; 185) 131 RAW_BYTE_STRING@[180; 185)
132 SEMI@[185; 186) 132 SEMI@[185; 186)
133 WHITESPACE@[186; 187) 133 WHITESPACE@[186; 187)
134 R_CURLY@[187; 188) 134 R_CURLY@[187; 188)
135 WHITESPACE@[188; 189) 135 WHITESPACE@[188; 189)
diff --git a/tests/data/parser/inline/0041_type_param_bounds.txt b/tests/data/parser/inline/0041_type_param_bounds.txt
index c03a80fa0..4996d6ace 100644
--- a/tests/data/parser/inline/0041_type_param_bounds.txt
+++ b/tests/data/parser/inline/0041_type_param_bounds.txt
@@ -1,8 +1,8 @@
1FILE@[0; 35) 1FILE@[0; 35)
2 STRUCT_ITEM@[0; 35) 2 STRUCT_ITEM@[0; 34)
3 STRUCT_KW@[0; 6) 3 STRUCT_KW@[0; 6)
4 NAME@[6; 8) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 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)
@@ -16,11 +16,11 @@ FILE@[0; 35)
16 PLUS@[15; 16) 16 PLUS@[15; 16)
17 WHITESPACE@[16; 17) 17 WHITESPACE@[16; 17)
18 QUESTION@[17; 18) 18 QUESTION@[17; 18)
19 PATH@[18; 24) 19 PATH@[18; 23)
20 PATH_SEGMENT@[18; 24) 20 PATH_SEGMENT@[18; 23)
21 NAME_REF@[18; 24) 21 NAME_REF@[18; 23)
22 IDENT@[18; 23) "Sized" 22 IDENT@[18; 23) "Sized"
23 WHITESPACE@[23; 24) 23 WHITESPACE@[23; 24)
24 PLUS@[24; 25) 24 PLUS@[24; 25)
25 WHITESPACE@[25; 26) 25 WHITESPACE@[25; 26)
26 L_PAREN@[26; 27) 26 L_PAREN@[26; 27)
@@ -31,4 +31,4 @@ FILE@[0; 35)
31 R_PAREN@[31; 32) 31 R_PAREN@[31; 32)
32 R_ANGLE@[32; 33) 32 R_ANGLE@[32; 33)
33 SEMI@[33; 34) 33 SEMI@[33; 34)
34 WHITESPACE@[34; 35) 34 WHITESPACE@[34; 35)
diff --git a/tests/data/parser/inline/0042_type_param_default.txt b/tests/data/parser/inline/0042_type_param_default.txt
index 24671ed6b..ec875e9a2 100644
--- a/tests/data/parser/inline/0042_type_param_default.txt
+++ b/tests/data/parser/inline/0042_type_param_default.txt
@@ -1,22 +1,22 @@
1FILE@[0; 19) 1FILE@[0; 19)
2 STRUCT_ITEM@[0; 19) 2 STRUCT_ITEM@[0; 18)
3 STRUCT_KW@[0; 6) 3 STRUCT_KW@[0; 6)
4 NAME@[6; 8) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 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; 11) 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 PATH_TYPE@[12; 16) 14 WHITESPACE@[12; 13)
15 PATH@[12; 16) 15 PATH_TYPE@[13; 16)
16 PATH_SEGMENT@[12; 16) 16 PATH@[13; 16)
17 NAME_REF@[12; 16) 17 PATH_SEGMENT@[13; 16)
18 WHITESPACE@[12; 13) 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 SEMI@[17; 18) 21 SEMI@[17; 18)
22 WHITESPACE@[18; 19) 22 WHITESPACE@[18; 19)
diff --git a/tests/data/parser/inline/0043_call_expr.txt b/tests/data/parser/inline/0043_call_expr.txt
index 5df6bb6d5..4277d5dc8 100644
--- a/tests/data/parser/inline/0043_call_expr.txt
+++ b/tests/data/parser/inline/0043_call_expr.txt
@@ -1,50 +1,50 @@
1FILE@[0; 57) 1FILE@[0; 57)
2 FN_ITEM@[0; 57) 2 FN_ITEM@[0; 56)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 56)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 LET_STMT@[10; 32) 13 WHITESPACE@[10; 15)
14 WHITESPACE@[10; 15) 14 LET_STMT@[15; 27)
15 LET_KW@[15; 18) 15 LET_KW@[15; 18)
16 PLACEHOLDER_PAT@[18; 21) 16 WHITESPACE@[18; 19)
17 WHITESPACE@[18; 19) 17 PLACEHOLDER_PAT@[19; 20)
18 UNDERSCORE@[19; 20) 18 UNDERSCORE@[19; 20)
19 WHITESPACE@[20; 21) 19 WHITESPACE@[20; 21)
20 EQ@[21; 22) 20 EQ@[21; 22)
21 CALL_EXPR@[22; 26) 21 WHITESPACE@[22; 23)
22 PATH_EXPR@[22; 24) 22 CALL_EXPR@[23; 26)
23 PATH@[22; 24) 23 PATH_EXPR@[23; 24)
24 PATH_SEGMENT@[22; 24) 24 PATH@[23; 24)
25 NAME_REF@[22; 24) 25 PATH_SEGMENT@[23; 24)
26 WHITESPACE@[22; 23) 26 NAME_REF@[23; 24)
27 IDENT@[23; 24) "f" 27 IDENT@[23; 24) "f"
28 ARG_LIST@[24; 26) 28 ARG_LIST@[24; 26)
29 L_PAREN@[24; 25) 29 L_PAREN@[24; 25)
30 R_PAREN@[25; 26) 30 R_PAREN@[25; 26)
31 SEMI@[26; 27) 31 SEMI@[26; 27)
32 WHITESPACE@[27; 32) 32 WHITESPACE@[27; 32)
33 LET_STMT@[32; 55) 33 LET_STMT@[32; 54)
34 LET_KW@[32; 35) 34 LET_KW@[32; 35)
35 PLACEHOLDER_PAT@[35; 38) 35 WHITESPACE@[35; 36)
36 WHITESPACE@[35; 36) 36 PLACEHOLDER_PAT@[36; 37)
37 UNDERSCORE@[36; 37) 37 UNDERSCORE@[36; 37)
38 WHITESPACE@[37; 38) 38 WHITESPACE@[37; 38)
39 EQ@[38; 39) 39 EQ@[38; 39)
40 CALL_EXPR@[39; 53) 40 WHITESPACE@[39; 40)
41 CALL_EXPR@[39; 46) 41 CALL_EXPR@[40; 53)
42 CALL_EXPR@[39; 43) 42 CALL_EXPR@[40; 46)
43 PATH_EXPR@[39; 41) 43 CALL_EXPR@[40; 43)
44 PATH@[39; 41) 44 PATH_EXPR@[40; 41)
45 PATH_SEGMENT@[39; 41) 45 PATH@[40; 41)
46 NAME_REF@[39; 41) 46 PATH_SEGMENT@[40; 41)
47 WHITESPACE@[39; 40) 47 NAME_REF@[40; 41)
48 IDENT@[40; 41) "f" 48 IDENT@[40; 41) "f"
49 ARG_LIST@[41; 43) 49 ARG_LIST@[41; 43)
50 L_PAREN@[41; 42) 50 L_PAREN@[41; 42)
@@ -59,12 +59,12 @@ FILE@[0; 57)
59 LITERAL@[47; 48) 59 LITERAL@[47; 48)
60 INT_NUMBER@[47; 48) "1" 60 INT_NUMBER@[47; 48) "1"
61 COMMA@[48; 49) 61 COMMA@[48; 49)
62 LITERAL@[49; 51) 62 WHITESPACE@[49; 50)
63 WHITESPACE@[49; 50) 63 LITERAL@[50; 51)
64 INT_NUMBER@[50; 51) "2" 64 INT_NUMBER@[50; 51) "2"
65 COMMA@[51; 52) 65 COMMA@[51; 52)
66 R_PAREN@[52; 53) 66 R_PAREN@[52; 53)
67 SEMI@[53; 54) 67 SEMI@[53; 54)
68 WHITESPACE@[54; 55) 68 WHITESPACE@[54; 55)
69 R_CURLY@[55; 56) 69 R_CURLY@[55; 56)
70 WHITESPACE@[56; 57) 70 WHITESPACE@[56; 57)
diff --git a/tests/data/parser/inline/0044_ref_expr.txt b/tests/data/parser/inline/0044_ref_expr.txt
index f4b553c56..29b1be957 100644
--- a/tests/data/parser/inline/0044_ref_expr.txt
+++ b/tests/data/parser/inline/0044_ref_expr.txt
@@ -1,43 +1,43 @@
1FILE@[0; 52) 1FILE@[0; 52)
2 FN_ITEM@[0; 52) 2 FN_ITEM@[0; 51)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 52) 11 BLOCK_EXPR@[9; 51)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 LET_STMT@[10; 31) 13 WHITESPACE@[10; 15)
14 WHITESPACE@[10; 15) 14 LET_STMT@[15; 26)
15 LET_KW@[15; 18) 15 LET_KW@[15; 18)
16 PLACEHOLDER_PAT@[18; 21) 16 WHITESPACE@[18; 19)
17 WHITESPACE@[18; 19) 17 PLACEHOLDER_PAT@[19; 20)
18 UNDERSCORE@[19; 20) 18 UNDERSCORE@[19; 20)
19 WHITESPACE@[20; 21) 19 WHITESPACE@[20; 21)
20 EQ@[21; 22) 20 EQ@[21; 22)
21 REF_EXPR@[22; 25) 21 WHITESPACE@[22; 23)
22 WHITESPACE@[22; 23) 22 REF_EXPR@[23; 25)
23 AMP@[23; 24) 23 AMP@[23; 24)
24 LITERAL@[24; 25) 24 LITERAL@[24; 25)
25 INT_NUMBER@[24; 25) "1" 25 INT_NUMBER@[24; 25) "1"
26 SEMI@[25; 26) 26 SEMI@[25; 26)
27 WHITESPACE@[26; 31) 27 WHITESPACE@[26; 31)
28 LET_STMT@[31; 50) 28 LET_STMT@[31; 49)
29 LET_KW@[31; 34) 29 LET_KW@[31; 34)
30 PLACEHOLDER_PAT@[34; 37) 30 WHITESPACE@[34; 35)
31 WHITESPACE@[34; 35) 31 PLACEHOLDER_PAT@[35; 36)
32 UNDERSCORE@[35; 36) 32 UNDERSCORE@[35; 36)
33 WHITESPACE@[36; 37) 33 WHITESPACE@[36; 37)
34 EQ@[37; 38) 34 EQ@[37; 38)
35 REF_EXPR@[38; 48) 35 WHITESPACE@[38; 39)
36 WHITESPACE@[38; 39) 36 REF_EXPR@[39; 48)
37 AMP@[39; 40) 37 AMP@[39; 40)
38 MUT_KW@[40; 43) 38 MUT_KW@[40; 43)
39 REF_EXPR@[43; 48) 39 WHITESPACE@[43; 44)
40 WHITESPACE@[43; 44) 40 REF_EXPR@[44; 48)
41 AMP@[44; 45) 41 AMP@[44; 45)
42 CALL_EXPR@[45; 48) 42 CALL_EXPR@[45; 48)
43 PATH_EXPR@[45; 46) 43 PATH_EXPR@[45; 46)
@@ -49,6 +49,6 @@ FILE@[0; 52)
49 L_PAREN@[46; 47) 49 L_PAREN@[46; 47)
50 R_PAREN@[47; 48) 50 R_PAREN@[47; 48)
51 SEMI@[48; 49) 51 SEMI@[48; 49)
52 WHITESPACE@[49; 50) 52 WHITESPACE@[49; 50)
53 R_CURLY@[50; 51) 53 R_CURLY@[50; 51)
54 WHITESPACE@[51; 52) 54 WHITESPACE@[51; 52)
diff --git a/tests/data/parser/inline/0045_block.txt b/tests/data/parser/inline/0045_block.txt
index 25ed3fe5a..f68e55e1d 100644
--- a/tests/data/parser/inline/0045_block.txt
+++ b/tests/data/parser/inline/0045_block.txt
@@ -1,86 +1,86 @@
1FILE@[0; 65) 1FILE@[0; 65)
2 FN_ITEM@[0; 10) 2 FN_ITEM@[0; 9)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 4) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 4)
6 IDENT@[3; 4) "a" 6 IDENT@[3; 4) "a"
7 PARAM_LIST@[4; 7) 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; 10) 11 BLOCK_EXPR@[7; 9)
12 L_CURLY@[7; 8) 12 L_CURLY@[7; 8)
13 R_CURLY@[8; 9) 13 R_CURLY@[8; 9)
14 WHITESPACE@[9; 10) 14 WHITESPACE@[9; 10)
15 FN_ITEM@[10; 32) 15 FN_ITEM@[10; 31)
16 FN_KW@[10; 12) 16 FN_KW@[10; 12)
17 NAME@[12; 14) 17 WHITESPACE@[12; 13)
18 WHITESPACE@[12; 13) 18 NAME@[13; 14)
19 IDENT@[13; 14) "b" 19 IDENT@[13; 14) "b"
20 PARAM_LIST@[14; 17) 20 PARAM_LIST@[14; 16)
21 L_PAREN@[14; 15) 21 L_PAREN@[14; 15)
22 R_PAREN@[15; 16) 22 R_PAREN@[15; 16)
23 WHITESPACE@[16; 17) 23 WHITESPACE@[16; 17)
24 BLOCK_EXPR@[17; 32) 24 BLOCK_EXPR@[17; 31)
25 L_CURLY@[17; 18) 25 L_CURLY@[17; 18)
26 LET_STMT@[18; 30) 26 WHITESPACE@[18; 19)
27 WHITESPACE@[18; 19) 27 LET_STMT@[19; 29)
28 LET_KW@[19; 22) 28 LET_KW@[19; 22)
29 PLACEHOLDER_PAT@[22; 25) 29 WHITESPACE@[22; 23)
30 WHITESPACE@[22; 23) 30 PLACEHOLDER_PAT@[23; 24)
31 UNDERSCORE@[23; 24) 31 UNDERSCORE@[23; 24)
32 WHITESPACE@[24; 25) 32 WHITESPACE@[24; 25)
33 EQ@[25; 26) 33 EQ@[25; 26)
34 LITERAL@[26; 28) 34 WHITESPACE@[26; 27)
35 WHITESPACE@[26; 27) 35 LITERAL@[27; 28)
36 INT_NUMBER@[27; 28) "1" 36 INT_NUMBER@[27; 28) "1"
37 SEMI@[28; 29) 37 SEMI@[28; 29)
38 WHITESPACE@[29; 30) 38 WHITESPACE@[29; 30)
39 R_CURLY@[30; 31) 39 R_CURLY@[30; 31)
40 WHITESPACE@[31; 32) 40 WHITESPACE@[31; 32)
41 FN_ITEM@[32; 49) 41 FN_ITEM@[32; 48)
42 FN_KW@[32; 34) 42 FN_KW@[32; 34)
43 NAME@[34; 36) 43 WHITESPACE@[34; 35)
44 WHITESPACE@[34; 35) 44 NAME@[35; 36)
45 IDENT@[35; 36) "c" 45 IDENT@[35; 36) "c"
46 PARAM_LIST@[36; 39) 46 PARAM_LIST@[36; 38)
47 L_PAREN@[36; 37) 47 L_PAREN@[36; 37)
48 R_PAREN@[37; 38) 48 R_PAREN@[37; 38)
49 WHITESPACE@[38; 39) 49 WHITESPACE@[38; 39)
50 BLOCK_EXPR@[39; 49) 50 BLOCK_EXPR@[39; 48)
51 L_CURLY@[39; 40) 51 L_CURLY@[39; 40)
52 EXPR_STMT@[40; 44) 52 WHITESPACE@[40; 41)
53 LITERAL@[40; 42) 53 EXPR_STMT@[41; 43)
54 WHITESPACE@[40; 41) 54 LITERAL@[41; 42)
55 INT_NUMBER@[41; 42) "1" 55 INT_NUMBER@[41; 42) "1"
56 SEMI@[42; 43) 56 SEMI@[42; 43)
57 WHITESPACE@[43; 44) 57 WHITESPACE@[43; 44)
58 EXPR_STMT@[44; 47) 58 EXPR_STMT@[44; 46)
59 LITERAL@[44; 45) 59 LITERAL@[44; 45)
60 INT_NUMBER@[44; 45) "2" 60 INT_NUMBER@[44; 45) "2"
61 SEMI@[45; 46) 61 SEMI@[45; 46)
62 WHITESPACE@[46; 47) 62 WHITESPACE@[46; 47)
63 R_CURLY@[47; 48) 63 R_CURLY@[47; 48)
64 WHITESPACE@[48; 49) 64 WHITESPACE@[48; 49)
65 FN_ITEM@[49; 65) 65 FN_ITEM@[49; 64)
66 FN_KW@[49; 51) 66 FN_KW@[49; 51)
67 NAME@[51; 53) 67 WHITESPACE@[51; 52)
68 WHITESPACE@[51; 52) 68 NAME@[52; 53)
69 IDENT@[52; 53) "d" 69 IDENT@[52; 53) "d"
70 PARAM_LIST@[53; 56) 70 PARAM_LIST@[53; 55)
71 L_PAREN@[53; 54) 71 L_PAREN@[53; 54)
72 R_PAREN@[54; 55) 72 R_PAREN@[54; 55)
73 WHITESPACE@[55; 56) 73 WHITESPACE@[55; 56)
74 BLOCK_EXPR@[56; 65) 74 BLOCK_EXPR@[56; 64)
75 L_CURLY@[56; 57) 75 L_CURLY@[56; 57)
76 EXPR_STMT@[57; 61) 76 WHITESPACE@[57; 58)
77 LITERAL@[57; 59) 77 EXPR_STMT@[58; 60)
78 WHITESPACE@[57; 58) 78 LITERAL@[58; 59)
79 INT_NUMBER@[58; 59) "1" 79 INT_NUMBER@[58; 59) "1"
80 SEMI@[59; 60) 80 SEMI@[59; 60)
81 WHITESPACE@[60; 61) 81 WHITESPACE@[60; 61)
82 LITERAL@[61; 63) 82 LITERAL@[61; 62)
83 INT_NUMBER@[61; 62) "2" 83 INT_NUMBER@[61; 62) "2"
84 WHITESPACE@[62; 63) 84 WHITESPACE@[62; 63)
85 R_CURLY@[63; 64) 85 R_CURLY@[63; 64)
86 WHITESPACE@[64; 65) 86 WHITESPACE@[64; 65)
diff --git a/tests/data/parser/inline/0046_default_impl.txt b/tests/data/parser/inline/0046_default_impl.txt
index 3718aea3b..d5a27baf7 100644
--- a/tests/data/parser/inline/0046_default_impl.txt
+++ b/tests/data/parser/inline/0046_default_impl.txt
@@ -1,15 +1,15 @@
1FILE@[0; 20) 1FILE@[0; 20)
2 IMPL_ITEM@[0; 20) 2 IMPL_ITEM@[0; 19)
3 DEFAULT_KW@[0; 7) 3 DEFAULT_KW@[0; 7)
4 WHITESPACE@[7; 8) 4 WHITESPACE@[7; 8)
5 IMPL_KW@[8; 12) 5 IMPL_KW@[8; 12)
6 PATH_TYPE@[12; 17) 6 WHITESPACE@[12; 13)
7 PATH@[12; 17) 7 PATH_TYPE@[13; 16)
8 PATH_SEGMENT@[12; 17) 8 PATH@[13; 16)
9 NAME_REF@[12; 17) 9 PATH_SEGMENT@[13; 16)
10 WHITESPACE@[12; 13) 10 NAME_REF@[13; 16)
11 IDENT@[13; 16) "Foo" 11 IDENT@[13; 16) "Foo"
12 WHITESPACE@[16; 17) 12 WHITESPACE@[16; 17)
13 L_CURLY@[17; 18) 13 L_CURLY@[17; 18)
14 R_CURLY@[18; 19) 14 R_CURLY@[18; 19)
15 WHITESPACE@[19; 20) 15 WHITESPACE@[19; 20)
diff --git a/tests/data/parser/inline/0047_impl_item.txt b/tests/data/parser/inline/0047_impl_item.txt
index 90f11e8a2..76b29f95d 100644
--- a/tests/data/parser/inline/0047_impl_item.txt
+++ b/tests/data/parser/inline/0047_impl_item.txt
@@ -1,13 +1,13 @@
1FILE@[0; 12) 1FILE@[0; 12)
2 IMPL_ITEM@[0; 12) 2 IMPL_ITEM@[0; 11)
3 IMPL_KW@[0; 4) 3 IMPL_KW@[0; 4)
4 PATH_TYPE@[4; 9) 4 WHITESPACE@[4; 5)
5 PATH@[4; 9) 5 PATH_TYPE@[5; 8)
6 PATH_SEGMENT@[4; 9) 6 PATH@[5; 8)
7 NAME_REF@[4; 9) 7 PATH_SEGMENT@[5; 8)
8 WHITESPACE@[4; 5) 8 NAME_REF@[5; 8)
9 IDENT@[5; 8) "Foo" 9 IDENT@[5; 8) "Foo"
10 WHITESPACE@[8; 9) 10 WHITESPACE@[8; 9)
11 L_CURLY@[9; 10) 11 L_CURLY@[9; 10)
12 R_CURLY@[10; 11) 12 R_CURLY@[10; 11)
13 WHITESPACE@[11; 12) 13 WHITESPACE@[11; 12)
diff --git a/tests/data/parser/inline/0048_impl_item_neg.txt b/tests/data/parser/inline/0048_impl_item_neg.txt
index 1b7581434..2d01419c0 100644
--- a/tests/data/parser/inline/0048_impl_item_neg.txt
+++ b/tests/data/parser/inline/0048_impl_item_neg.txt
@@ -1,22 +1,22 @@
1FILE@[0; 20) 1FILE@[0; 20)
2 IMPL_ITEM@[0; 20) 2 IMPL_ITEM@[0; 19)
3 IMPL_KW@[0; 4) 3 IMPL_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 EXCL@[5; 6) 5 EXCL@[5; 6)
6 PATH_TYPE@[6; 11) 6 PATH_TYPE@[6; 10)
7 PATH@[6; 11) 7 PATH@[6; 10)
8 PATH_SEGMENT@[6; 11) 8 PATH_SEGMENT@[6; 10)
9 NAME_REF@[6; 11) 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) 12 FOR_KW@[11; 14)
13 PATH_TYPE@[14; 17) 13 WHITESPACE@[14; 15)
14 PATH@[14; 17) 14 PATH_TYPE@[15; 16)
15 PATH_SEGMENT@[14; 17) 15 PATH@[15; 16)
16 NAME_REF@[14; 17) 16 PATH_SEGMENT@[15; 16)
17 WHITESPACE@[14; 15) 17 NAME_REF@[15; 16)
18 IDENT@[15; 16) "X" 18 IDENT@[15; 16) "X"
19 WHITESPACE@[16; 17) 19 WHITESPACE@[16; 17)
20 L_CURLY@[17; 18) 20 L_CURLY@[17; 18)
21 R_CURLY@[18; 19) 21 R_CURLY@[18; 19)
22 WHITESPACE@[19; 20) 22 WHITESPACE@[19; 20)
diff --git a/tests/data/parser/inline/0050_let_stmt;.txt b/tests/data/parser/inline/0050_let_stmt;.txt
index de218cb8d..cac6bac3f 100644
--- a/tests/data/parser/inline/0050_let_stmt;.txt
+++ b/tests/data/parser/inline/0050_let_stmt;.txt
@@ -1,71 +1,71 @@
1FILE@[0; 77) 1FILE@[0; 77)
2 FN_ITEM@[0; 77) 2 FN_ITEM@[0; 76)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 77) 11 BLOCK_EXPR@[9; 76)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 LET_STMT@[10; 26) 13 WHITESPACE@[10; 15)
14 WHITESPACE@[10; 15) 14 LET_STMT@[15; 21)
15 LET_KW@[15; 18) 15 LET_KW@[15; 18)
16 BIND_PAT@[18; 20) 16 WHITESPACE@[18; 19)
17 NAME@[18; 20) 17 BIND_PAT@[19; 20)
18 WHITESPACE@[18; 19) 18 NAME@[19; 20)
19 IDENT@[19; 20) "a" 19 IDENT@[19; 20) "a"
20 SEMI@[20; 21) 20 SEMI@[20; 21)
21 WHITESPACE@[21; 26) 21 WHITESPACE@[21; 26)
22 LET_STMT@[26; 42) 22 LET_STMT@[26; 37)
23 LET_KW@[26; 29) 23 LET_KW@[26; 29)
24 BIND_PAT@[29; 31) 24 WHITESPACE@[29; 30)
25 NAME@[29; 31) 25 BIND_PAT@[30; 31)
26 WHITESPACE@[29; 30) 26 NAME@[30; 31)
27 IDENT@[30; 31) "b" 27 IDENT@[30; 31) "b"
28 COLON@[31; 32) 28 COLON@[31; 32)
29 PATH_TYPE@[32; 36) 29 WHITESPACE@[32; 33)
30 PATH@[32; 36) 30 PATH_TYPE@[33; 36)
31 PATH_SEGMENT@[32; 36) 31 PATH@[33; 36)
32 NAME_REF@[32; 36) 32 PATH_SEGMENT@[33; 36)
33 WHITESPACE@[32; 33) 33 NAME_REF@[33; 36)
34 IDENT@[33; 36) "i32" 34 IDENT@[33; 36) "i32"
35 SEMI@[36; 37) 35 SEMI@[36; 37)
36 WHITESPACE@[37; 42) 36 WHITESPACE@[37; 42)
37 LET_STMT@[42; 58) 37 LET_STMT@[42; 53)
38 LET_KW@[42; 45) 38 LET_KW@[42; 45)
39 BIND_PAT@[45; 48) 39 WHITESPACE@[45; 46)
40 NAME@[45; 48) 40 BIND_PAT@[46; 47)
41 WHITESPACE@[45; 46) 41 NAME@[46; 47)
42 IDENT@[46; 47) "c" 42 IDENT@[46; 47) "c"
43 WHITESPACE@[47; 48) 43 WHITESPACE@[47; 48)
44 EQ@[48; 49) 44 EQ@[48; 49)
45 LITERAL@[49; 52) 45 WHITESPACE@[49; 50)
46 WHITESPACE@[49; 50) 46 LITERAL@[50; 52)
47 INT_NUMBER@[50; 52) "92" 47 INT_NUMBER@[50; 52) "92"
48 SEMI@[52; 53) 48 SEMI@[52; 53)
49 WHITESPACE@[53; 58) 49 WHITESPACE@[53; 58)
50 LET_STMT@[58; 75) 50 LET_STMT@[58; 74)
51 LET_KW@[58; 61) 51 LET_KW@[58; 61)
52 BIND_PAT@[61; 63) 52 WHITESPACE@[61; 62)
53 NAME@[61; 63) 53 BIND_PAT@[62; 63)
54 WHITESPACE@[61; 62) 54 NAME@[62; 63)
55 IDENT@[62; 63) "d" 55 IDENT@[62; 63) "d"
56 COLON@[63; 64) 56 COLON@[63; 64)
57 PATH_TYPE@[64; 69) 57 WHITESPACE@[64; 65)
58 PATH@[64; 69) 58 PATH_TYPE@[65; 68)
59 PATH_SEGMENT@[64; 69) 59 PATH@[65; 68)
60 NAME_REF@[64; 69) 60 PATH_SEGMENT@[65; 68)
61 WHITESPACE@[64; 65) 61 NAME_REF@[65; 68)
62 IDENT@[65; 68) "i32" 62 IDENT@[65; 68) "i32"
63 WHITESPACE@[68; 69) 63 WHITESPACE@[68; 69)
64 EQ@[69; 70) 64 EQ@[69; 70)
65 LITERAL@[70; 73) 65 WHITESPACE@[70; 71)
66 WHITESPACE@[70; 71) 66 LITERAL@[71; 73)
67 INT_NUMBER@[71; 73) "92" 67 INT_NUMBER@[71; 73) "92"
68 SEMI@[73; 74) 68 SEMI@[73; 74)
69 WHITESPACE@[74; 75) 69 WHITESPACE@[74; 75)
70 R_CURLY@[75; 76) 70 R_CURLY@[75; 76)
71 WHITESPACE@[76; 77) 71 WHITESPACE@[76; 77)
diff --git a/tests/data/parser/inline/0051_method_call_expr.txt b/tests/data/parser/inline/0051_method_call_expr.txt
index 598056c88..189c8628f 100644
--- a/tests/data/parser/inline/0051_method_call_expr.txt
+++ b/tests/data/parser/inline/0051_method_call_expr.txt
@@ -1,22 +1,22 @@
1FILE@[0; 49) 1FILE@[0; 49)
2 FN_ITEM@[0; 49) 2 FN_ITEM@[0; 48)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 49) 11 BLOCK_EXPR@[9; 48)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 28) 13 WHITESPACE@[10; 15)
14 METHOD_CALL_EXPR@[10; 22) 14 EXPR_STMT@[15; 23)
15 PATH_EXPR@[10; 16) 15 METHOD_CALL_EXPR@[15; 22)
16 PATH@[10; 16) 16 PATH_EXPR@[15; 16)
17 PATH_SEGMENT@[10; 16) 17 PATH@[15; 16)
18 NAME_REF@[10; 16) 18 PATH_SEGMENT@[15; 16)
19 WHITESPACE@[10; 15) 19 NAME_REF@[15; 16)
20 IDENT@[15; 16) "x" 20 IDENT@[15; 16) "x"
21 DOT@[16; 17) 21 DOT@[16; 17)
22 NAME_REF@[17; 20) 22 NAME_REF@[17; 20)
@@ -25,8 +25,8 @@ FILE@[0; 49)
25 L_PAREN@[20; 21) 25 L_PAREN@[20; 21)
26 R_PAREN@[21; 22) 26 R_PAREN@[21; 22)
27 SEMI@[22; 23) 27 SEMI@[22; 23)
28 WHITESPACE@[23; 28) 28 WHITESPACE@[23; 28)
29 EXPR_STMT@[28; 47) 29 EXPR_STMT@[28; 46)
30 METHOD_CALL_EXPR@[28; 45) 30 METHOD_CALL_EXPR@[28; 45)
31 PATH_EXPR@[28; 29) 31 PATH_EXPR@[28; 29)
32 PATH@[28; 29) 32 PATH@[28; 29)
@@ -51,12 +51,12 @@ FILE@[0; 49)
51 LITERAL@[39; 40) 51 LITERAL@[39; 40)
52 INT_NUMBER@[39; 40) "1" 52 INT_NUMBER@[39; 40) "1"
53 COMMA@[40; 41) 53 COMMA@[40; 41)
54 LITERAL@[41; 43) 54 WHITESPACE@[41; 42)
55 WHITESPACE@[41; 42) 55 LITERAL@[42; 43)
56 INT_NUMBER@[42; 43) "2" 56 INT_NUMBER@[42; 43) "2"
57 COMMA@[43; 44) 57 COMMA@[43; 44)
58 R_PAREN@[44; 45) 58 R_PAREN@[44; 45)
59 SEMI@[45; 46) 59 SEMI@[45; 46)
60 WHITESPACE@[46; 47) 60 WHITESPACE@[46; 47)
61 R_CURLY@[47; 48) 61 R_CURLY@[47; 48)
62 WHITESPACE@[48; 49) 62 WHITESPACE@[48; 49)
diff --git a/tests/data/parser/inline/0052_field_expr.txt b/tests/data/parser/inline/0052_field_expr.txt
index 79d2fbc19..b3e3bcde4 100644
--- a/tests/data/parser/inline/0052_field_expr.txt
+++ b/tests/data/parser/inline/0052_field_expr.txt
@@ -1,29 +1,29 @@
1FILE@[0; 37) 1FILE@[0; 37)
2 FN_ITEM@[0; 37) 2 FN_ITEM@[0; 36)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 36)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 26) 13 WHITESPACE@[10; 15)
14 FIELD_EXPR@[10; 20) 14 EXPR_STMT@[15; 21)
15 PATH_EXPR@[10; 16) 15 FIELD_EXPR@[15; 20)
16 PATH@[10; 16) 16 PATH_EXPR@[15; 16)
17 PATH_SEGMENT@[10; 16) 17 PATH@[15; 16)
18 NAME_REF@[10; 16) 18 PATH_SEGMENT@[15; 16)
19 WHITESPACE@[10; 15) 19 NAME_REF@[15; 16)
20 IDENT@[15; 16) "x" 20 IDENT@[15; 16) "x"
21 DOT@[16; 17) 21 DOT@[16; 17)
22 NAME_REF@[17; 20) 22 NAME_REF@[17; 20)
23 IDENT@[17; 20) "foo" 23 IDENT@[17; 20) "foo"
24 SEMI@[20; 21) 24 SEMI@[20; 21)
25 WHITESPACE@[21; 26) 25 WHITESPACE@[21; 26)
26 EXPR_STMT@[26; 35) 26 EXPR_STMT@[26; 34)
27 FIELD_EXPR@[26; 33) 27 FIELD_EXPR@[26; 33)
28 FIELD_EXPR@[26; 29) 28 FIELD_EXPR@[26; 29)
29 PATH_EXPR@[26; 27) 29 PATH_EXPR@[26; 27)
@@ -37,6 +37,6 @@ FILE@[0; 37)
37 NAME_REF@[30; 33) 37 NAME_REF@[30; 33)
38 IDENT@[30; 33) "bar" 38 IDENT@[30; 33) "bar"
39 SEMI@[33; 34) 39 SEMI@[33; 34)
40 WHITESPACE@[34; 35) 40 WHITESPACE@[34; 35)
41 R_CURLY@[35; 36) 41 R_CURLY@[35; 36)
42 WHITESPACE@[36; 37) 42 WHITESPACE@[36; 37)
diff --git a/tests/data/parser/inline/0053_block_items.txt b/tests/data/parser/inline/0053_block_items.txt
index 3d14144d8..3ba2e386c 100644
--- a/tests/data/parser/inline/0053_block_items.txt
+++ b/tests/data/parser/inline/0053_block_items.txt
@@ -1,28 +1,28 @@
1FILE@[0; 21) 1FILE@[0; 21)
2 FN_ITEM@[0; 21) 2 FN_ITEM@[0; 20)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 4) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 4)
6 IDENT@[3; 4) "a" 6 IDENT@[3; 4) "a"
7 PARAM_LIST@[4; 7) 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; 21) 11 BLOCK_EXPR@[7; 20)
12 L_CURLY@[7; 8) 12 L_CURLY@[7; 8)
13 FN_ITEM@[8; 19) 13 WHITESPACE@[8; 9)
14 WHITESPACE@[8; 9) 14 FN_ITEM@[9; 18)
15 FN_KW@[9; 11) 15 FN_KW@[9; 11)
16 NAME@[11; 13) 16 WHITESPACE@[11; 12)
17 WHITESPACE@[11; 12) 17 NAME@[12; 13)
18 IDENT@[12; 13) "b" 18 IDENT@[12; 13) "b"
19 PARAM_LIST@[13; 16) 19 PARAM_LIST@[13; 15)
20 L_PAREN@[13; 14) 20 L_PAREN@[13; 14)
21 R_PAREN@[14; 15) 21 R_PAREN@[14; 15)
22 WHITESPACE@[15; 16) 22 WHITESPACE@[15; 16)
23 BLOCK_EXPR@[16; 19) 23 BLOCK_EXPR@[16; 18)
24 L_CURLY@[16; 17) 24 L_CURLY@[16; 17)
25 R_CURLY@[17; 18) 25 R_CURLY@[17; 18)
26 WHITESPACE@[18; 19) 26 WHITESPACE@[18; 19)
27 R_CURLY@[19; 20) 27 R_CURLY@[19; 20)
28 WHITESPACE@[20; 21) 28 WHITESPACE@[20; 21)
diff --git a/tests/data/parser/inline/0054_impl_item_items.txt b/tests/data/parser/inline/0054_impl_item_items.txt
index f2aa2bd0e..89a3ae87f 100644
--- a/tests/data/parser/inline/0054_impl_item_items.txt
+++ b/tests/data/parser/inline/0054_impl_item_items.txt
@@ -1,77 +1,77 @@
1FILE@[0; 89) 1FILE@[0; 89)
2 IMPL_ITEM@[0; 89) 2 IMPL_ITEM@[0; 88)
3 IMPL_KW@[0; 4) 3 IMPL_KW@[0; 4)
4 PATH_TYPE@[4; 7) 4 WHITESPACE@[4; 5)
5 PATH@[4; 7) 5 PATH_TYPE@[5; 6)
6 PATH_SEGMENT@[4; 7) 6 PATH@[5; 6)
7 NAME_REF@[4; 7) 7 PATH_SEGMENT@[5; 6)
8 WHITESPACE@[4; 5) 8 NAME_REF@[5; 6)
9 IDENT@[5; 6) "F" 9 IDENT@[5; 6) "F"
10 WHITESPACE@[6; 7) 10 WHITESPACE@[6; 7)
11 L_CURLY@[7; 8) 11 L_CURLY@[7; 8)
12 TYPE_ITEM@[8; 31) 12 WHITESPACE@[8; 13)
13 WHITESPACE@[8; 13) 13 TYPE_ITEM@[13; 26)
14 TYPE_KW@[13; 17) 14 TYPE_KW@[13; 17)
15 NAME@[17; 20) 15 WHITESPACE@[17; 18)
16 WHITESPACE@[17; 18) 16 NAME@[18; 19)
17 IDENT@[18; 19) "A" 17 IDENT@[18; 19) "A"
18 WHITESPACE@[19; 20) 18 WHITESPACE@[19; 20)
19 EQ@[20; 21) 19 EQ@[20; 21)
20 PATH_TYPE@[21; 25) 20 WHITESPACE@[21; 22)
21 PATH@[21; 25) 21 PATH_TYPE@[22; 25)
22 PATH_SEGMENT@[21; 25) 22 PATH@[22; 25)
23 NAME_REF@[21; 25) 23 PATH_SEGMENT@[22; 25)
24 WHITESPACE@[21; 22) 24 NAME_REF@[22; 25)
25 IDENT@[22; 25) "i32" 25 IDENT@[22; 25) "i32"
26 SEMI@[25; 26) 26 SEMI@[25; 26)
27 WHITESPACE@[26; 31) 27 WHITESPACE@[26; 31)
28 CONST_ITEM@[31; 54) 28 CONST_ITEM@[31; 49)
29 CONST_KW@[31; 36) 29 CONST_KW@[31; 36)
30 NAME@[36; 38) 30 WHITESPACE@[36; 37)
31 WHITESPACE@[36; 37) 31 NAME@[37; 38)
32 IDENT@[37; 38) "B" 32 IDENT@[37; 38) "B"
33 COLON@[38; 39) 33 COLON@[38; 39)
34 PATH_TYPE@[39; 44) 34 WHITESPACE@[39; 40)
35 PATH@[39; 44) 35 PATH_TYPE@[40; 43)
36 PATH_SEGMENT@[39; 44) 36 PATH@[40; 43)
37 NAME_REF@[39; 44) 37 PATH_SEGMENT@[40; 43)
38 WHITESPACE@[39; 40) 38 NAME_REF@[40; 43)
39 IDENT@[40; 43) "i32" 39 IDENT@[40; 43) "i32"
40 WHITESPACE@[43; 44) 40 WHITESPACE@[43; 44)
41 EQ@[44; 45) 41 EQ@[44; 45)
42 LITERAL@[45; 48) 42 WHITESPACE@[45; 46)
43 WHITESPACE@[45; 46) 43 LITERAL@[46; 48)
44 INT_NUMBER@[46; 48) "92" 44 INT_NUMBER@[46; 48) "92"
45 SEMI@[48; 49) 45 SEMI@[48; 49)
46 WHITESPACE@[49; 54) 46 WHITESPACE@[49; 54)
47 FN_ITEM@[54; 70) 47 FN_ITEM@[54; 65)
48 FN_KW@[54; 56) 48 FN_KW@[54; 56)
49 NAME@[56; 60) 49 WHITESPACE@[56; 57)
50 WHITESPACE@[56; 57) 50 NAME@[57; 60)
51 IDENT@[57; 60) "foo" 51 IDENT@[57; 60) "foo"
52 PARAM_LIST@[60; 63) 52 PARAM_LIST@[60; 62)
53 L_PAREN@[60; 61) 53 L_PAREN@[60; 61)
54 R_PAREN@[61; 62) 54 R_PAREN@[61; 62)
55 WHITESPACE@[62; 63) 55 WHITESPACE@[62; 63)
56 BLOCK_EXPR@[63; 70) 56 BLOCK_EXPR@[63; 65)
57 L_CURLY@[63; 64) 57 L_CURLY@[63; 64)
58 R_CURLY@[64; 65) 58 R_CURLY@[64; 65)
59 WHITESPACE@[65; 70) 59 WHITESPACE@[65; 70)
60 FN_ITEM@[70; 87) 60 FN_ITEM@[70; 86)
61 FN_KW@[70; 72) 61 FN_KW@[70; 72)
62 NAME@[72; 76) 62 WHITESPACE@[72; 73)
63 WHITESPACE@[72; 73) 63 NAME@[73; 76)
64 IDENT@[73; 76) "bar" 64 IDENT@[73; 76) "bar"
65 PARAM_LIST@[76; 84) 65 PARAM_LIST@[76; 83)
66 L_PAREN@[76; 77) 66 L_PAREN@[76; 77)
67 SELF_PARAM@[77; 82) 67 SELF_PARAM@[77; 82)
68 AMP@[77; 78) 68 AMP@[77; 78)
69 SELF_KW@[78; 82) 69 SELF_KW@[78; 82)
70 R_PAREN@[82; 83) 70 R_PAREN@[82; 83)
71 WHITESPACE@[83; 84) 71 WHITESPACE@[83; 84)
72 BLOCK_EXPR@[84; 87) 72 BLOCK_EXPR@[84; 86)
73 L_CURLY@[84; 85) 73 L_CURLY@[84; 85)
74 R_CURLY@[85; 86) 74 R_CURLY@[85; 86)
75 WHITESPACE@[86; 87) 75 WHITESPACE@[86; 87)
76 R_CURLY@[87; 88) 76 R_CURLY@[87; 88)
77 WHITESPACE@[88; 89) 77 WHITESPACE@[88; 89)
diff --git a/tests/data/parser/inline/0055_self_param.txt b/tests/data/parser/inline/0055_self_param.txt
index 6cf3151ea..5c62b75cc 100644
--- a/tests/data/parser/inline/0055_self_param.txt
+++ b/tests/data/parser/inline/0055_self_param.txt
@@ -1,53 +1,53 @@
1FILE@[0; 106) 1FILE@[0; 106)
2 IMPL_ITEM@[0; 106) 2 IMPL_ITEM@[0; 105)
3 IMPL_KW@[0; 4) 3 IMPL_KW@[0; 4)
4 PATH_TYPE@[4; 7) 4 WHITESPACE@[4; 5)
5 PATH@[4; 7) 5 PATH_TYPE@[5; 6)
6 PATH_SEGMENT@[4; 7) 6 PATH@[5; 6)
7 NAME_REF@[4; 7) 7 PATH_SEGMENT@[5; 6)
8 WHITESPACE@[4; 5) 8 NAME_REF@[5; 6)
9 IDENT@[5; 6) "S" 9 IDENT@[5; 6) "S"
10 WHITESPACE@[6; 7) 10 WHITESPACE@[6; 7)
11 L_CURLY@[7; 8) 11 L_CURLY@[7; 8)
12 FN_ITEM@[8; 31) 12 WHITESPACE@[8; 13)
13 WHITESPACE@[8; 13) 13 FN_ITEM@[13; 26)
14 FN_KW@[13; 15) 14 FN_KW@[13; 15)
15 NAME@[15; 17) 15 WHITESPACE@[15; 16)
16 WHITESPACE@[15; 16) 16 NAME@[16; 17)
17 IDENT@[16; 17) "a" 17 IDENT@[16; 17) "a"
18 PARAM_LIST@[17; 24) 18 PARAM_LIST@[17; 23)
19 L_PAREN@[17; 18) 19 L_PAREN@[17; 18)
20 SELF_PARAM@[18; 22) 20 SELF_PARAM@[18; 22)
21 SELF_KW@[18; 22) 21 SELF_KW@[18; 22)
22 R_PAREN@[22; 23) 22 R_PAREN@[22; 23)
23 WHITESPACE@[23; 24) 23 WHITESPACE@[23; 24)
24 BLOCK_EXPR@[24; 31) 24 BLOCK_EXPR@[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) 27 WHITESPACE@[26; 31)
28 FN_ITEM@[31; 51) 28 FN_ITEM@[31; 46)
29 FN_KW@[31; 33) 29 FN_KW@[31; 33)
30 NAME@[33; 35) 30 WHITESPACE@[33; 34)
31 WHITESPACE@[33; 34) 31 NAME@[34; 35)
32 IDENT@[34; 35) "b" 32 IDENT@[34; 35) "b"
33 PARAM_LIST@[35; 44) 33 PARAM_LIST@[35; 43)
34 L_PAREN@[35; 36) 34 L_PAREN@[35; 36)
35 SELF_PARAM@[36; 41) 35 SELF_PARAM@[36; 41)
36 AMP@[36; 37) 36 AMP@[36; 37)
37 SELF_KW@[37; 41) 37 SELF_KW@[37; 41)
38 COMMA@[41; 42) 38 COMMA@[41; 42)
39 R_PAREN@[42; 43) 39 R_PAREN@[42; 43)
40 WHITESPACE@[43; 44) 40 WHITESPACE@[43; 44)
41 BLOCK_EXPR@[44; 51) 41 BLOCK_EXPR@[44; 46)
42 L_CURLY@[44; 45) 42 L_CURLY@[44; 45)
43 R_CURLY@[45; 46) 43 R_CURLY@[45; 46)
44 WHITESPACE@[46; 51) 44 WHITESPACE@[46; 51)
45 FN_ITEM@[51; 74) 45 FN_ITEM@[51; 69)
46 FN_KW@[51; 53) 46 FN_KW@[51; 53)
47 NAME@[53; 55) 47 WHITESPACE@[53; 54)
48 WHITESPACE@[53; 54) 48 NAME@[54; 55)
49 IDENT@[54; 55) "c" 49 IDENT@[54; 55) "c"
50 PARAM_LIST@[55; 67) 50 PARAM_LIST@[55; 66)
51 L_PAREN@[55; 56) 51 L_PAREN@[55; 56)
52 SELF_PARAM@[56; 64) 52 SELF_PARAM@[56; 64)
53 AMP@[56; 57) 53 AMP@[56; 57)
@@ -56,17 +56,17 @@ FILE@[0; 106)
56 SELF_KW@[60; 64) 56 SELF_KW@[60; 64)
57 COMMA@[64; 65) 57 COMMA@[64; 65)
58 R_PAREN@[65; 66) 58 R_PAREN@[65; 66)
59 WHITESPACE@[66; 67) 59 WHITESPACE@[66; 67)
60 BLOCK_EXPR@[67; 74) 60 BLOCK_EXPR@[67; 69)
61 L_CURLY@[67; 68) 61 L_CURLY@[67; 68)
62 R_CURLY@[68; 69) 62 R_CURLY@[68; 69)
63 WHITESPACE@[69; 74) 63 WHITESPACE@[69; 74)
64 FN_ITEM@[74; 104) 64 FN_ITEM@[74; 103)
65 FN_KW@[74; 76) 65 FN_KW@[74; 76)
66 NAME@[76; 78) 66 WHITESPACE@[76; 77)
67 WHITESPACE@[76; 77) 67 NAME@[77; 78)
68 IDENT@[77; 78) "d" 68 IDENT@[77; 78) "d"
69 PARAM_LIST@[78; 101) 69 PARAM_LIST@[78; 100)
70 L_PAREN@[78; 79) 70 L_PAREN@[78; 79)
71 SELF_PARAM@[79; 91) 71 SELF_PARAM@[79; 91)
72 AMP@[79; 80) 72 AMP@[79; 80)
@@ -76,23 +76,23 @@ FILE@[0; 106)
76 WHITESPACE@[86; 87) 76 WHITESPACE@[86; 87)
77 SELF_KW@[87; 91) 77 SELF_KW@[87; 91)
78 COMMA@[91; 92) 78 COMMA@[91; 92)
79 PARAM@[92; 99) 79 WHITESPACE@[92; 93)
80 BIND_PAT@[92; 94) 80 PARAM@[93; 99)
81 NAME@[92; 94) 81 BIND_PAT@[93; 94)
82 WHITESPACE@[92; 93) 82 NAME@[93; 94)
83 IDENT@[93; 94) "x" 83 IDENT@[93; 94) "x"
84 COLON@[94; 95) 84 COLON@[94; 95)
85 PATH_TYPE@[95; 99) 85 WHITESPACE@[95; 96)
86 PATH@[95; 99) 86 PATH_TYPE@[96; 99)
87 PATH_SEGMENT@[95; 99) 87 PATH@[96; 99)
88 NAME_REF@[95; 99) 88 PATH_SEGMENT@[96; 99)
89 WHITESPACE@[95; 96) 89 NAME_REF@[96; 99)
90 IDENT@[96; 99) "i32" 90 IDENT@[96; 99) "i32"
91 R_PAREN@[99; 100) 91 R_PAREN@[99; 100)
92 WHITESPACE@[100; 101) 92 WHITESPACE@[100; 101)
93 BLOCK_EXPR@[101; 104) 93 BLOCK_EXPR@[101; 103)
94 L_CURLY@[101; 102) 94 L_CURLY@[101; 102)
95 R_CURLY@[102; 103) 95 R_CURLY@[102; 103)
96 WHITESPACE@[103; 104) 96 WHITESPACE@[103; 104)
97 R_CURLY@[104; 105) 97 R_CURLY@[104; 105)
98 WHITESPACE@[105; 106) 98 WHITESPACE@[105; 106)
diff --git a/tests/data/parser/inline/0056_trait_item.txt b/tests/data/parser/inline/0056_trait_item.txt
index 7ed8d4a55..b2d36afe7 100644
--- a/tests/data/parser/inline/0056_trait_item.txt
+++ b/tests/data/parser/inline/0056_trait_item.txt
@@ -1,8 +1,8 @@
1FILE@[0; 42) 1FILE@[0; 42)
2 TRAIT_ITEM@[0; 42) 2 TRAIT_ITEM@[0; 41)
3 TRAIT_KW@[0; 5) 3 TRAIT_KW@[0; 5)
4 NAME@[5; 7) 4 WHITESPACE@[5; 6)
5 WHITESPACE@[5; 6) 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)
@@ -11,27 +11,27 @@ FILE@[0; 42)
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 PATH@[11; 17) 14 WHITESPACE@[11; 12)
15 PATH_SEGMENT@[11; 17) 15 PATH@[12; 16)
16 NAME_REF@[11; 17) 16 PATH_SEGMENT@[12; 16)
17 WHITESPACE@[11; 12) 17 NAME_REF@[12; 16)
18 IDENT@[12; 16) "Hash" 18 IDENT@[12; 16) "Hash"
19 WHITESPACE@[16; 17) 19 WHITESPACE@[16; 17)
20 PLUS@[17; 18) 20 PLUS@[17; 18)
21 PATH@[18; 25) 21 WHITESPACE@[18; 19)
22 PATH_SEGMENT@[18; 25) 22 PATH@[19; 24)
23 NAME_REF@[18; 25) 23 PATH_SEGMENT@[19; 24)
24 WHITESPACE@[18; 19) 24 NAME_REF@[19; 24)
25 IDENT@[19; 24) "Clone" 25 IDENT@[19; 24) "Clone"
26 WHITESPACE@[24; 25) 26 WHITESPACE@[24; 25)
27 WHERE_CLAUSE@[25; 39) 27 WHERE_CLAUSE@[25; 38)
28 WHERE_KW@[25; 30) 28 WHERE_KW@[25; 30)
29 WHITESPACE@[30; 31) 29 WHITESPACE@[30; 31)
30 IDENT@[31; 32) "U" 30 IDENT@[31; 32) "U"
31 COLON@[32; 33) 31 COLON@[32; 33)
32 WHITESPACE@[33; 34) 32 WHITESPACE@[33; 34)
33 IDENT@[34; 38) "Copy" 33 IDENT@[34; 38) "Copy"
34 WHITESPACE@[38; 39) 34 WHITESPACE@[38; 39)
35 L_CURLY@[39; 40) 35 L_CURLY@[39; 40)
36 R_CURLY@[40; 41) 36 R_CURLY@[40; 41)
37 WHITESPACE@[41; 42) 37 WHITESPACE@[41; 42)
diff --git a/tests/data/parser/inline/0057_auto_trait.txt b/tests/data/parser/inline/0057_auto_trait.txt
index 9d098f10b..6bb4ffdba 100644
--- a/tests/data/parser/inline/0057_auto_trait.txt
+++ b/tests/data/parser/inline/0057_auto_trait.txt
@@ -1,12 +1,12 @@
1FILE@[0; 16) 1FILE@[0; 16)
2 TRAIT_ITEM@[0; 16) 2 TRAIT_ITEM@[0; 15)
3 AUTO_KW@[0; 4) 3 AUTO_KW@[0; 4)
4 WHITESPACE@[4; 5) 4 WHITESPACE@[4; 5)
5 TRAIT_KW@[5; 10) 5 TRAIT_KW@[5; 10)
6 NAME@[10; 13) 6 WHITESPACE@[10; 11)
7 WHITESPACE@[10; 11) 7 NAME@[11; 12)
8 IDENT@[11; 12) "T" 8 IDENT@[11; 12) "T"
9 WHITESPACE@[12; 13) 9 WHITESPACE@[12; 13)
10 L_CURLY@[13; 14) 10 L_CURLY@[13; 14)
11 R_CURLY@[14; 15) 11 R_CURLY@[14; 15)
12 WHITESPACE@[15; 16) 12 WHITESPACE@[15; 16)
diff --git a/tests/data/parser/inline/0058_type_arg.txt b/tests/data/parser/inline/0058_type_arg.txt
index 7a3a2aa10..f69ce4738 100644
--- a/tests/data/parser/inline/0058_type_arg.txt
+++ b/tests/data/parser/inline/0058_type_arg.txt
@@ -1,33 +1,33 @@
1FILE@[0; 35) 1FILE@[0; 35)
2 TYPE_ITEM@[0; 35) 2 TYPE_ITEM@[0; 34)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 PATH_TYPE@[8; 35) 9 WHITESPACE@[8; 9)
10 PATH@[8; 35) 10 PATH_TYPE@[9; 34)
11 PATH_SEGMENT@[8; 35) 11 PATH@[9; 34)
12 NAME_REF@[8; 10) 12 PATH_SEGMENT@[9; 34)
13 WHITESPACE@[8; 9) 13 NAME_REF@[9; 10)
14 IDENT@[9; 10) "B" 14 IDENT@[9; 10) "B"
15 TYPE_ARG_LIST@[10; 35) 15 TYPE_ARG_LIST@[10; 34)
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 TYPE_ARG@[19; 23) 20 WHITESPACE@[19; 20)
21 PATH_TYPE@[19; 23) 21 TYPE_ARG@[20; 23)
22 PATH@[19; 23) 22 PATH_TYPE@[20; 23)
23 PATH_SEGMENT@[19; 23) 23 PATH@[20; 23)
24 NAME_REF@[19; 23) 24 PATH_SEGMENT@[20; 23)
25 WHITESPACE@[19; 20) 25 NAME_REF@[20; 23)
26 IDENT@[20; 23) "i32" 26 IDENT@[20; 23) "i32"
27 COMMA@[23; 24) 27 COMMA@[23; 24)
28 ASSOC_TYPE_ARG@[24; 33) 28 WHITESPACE@[24; 25)
29 NAME_REF@[24; 29) 29 ASSOC_TYPE_ARG@[25; 33)
30 WHITESPACE@[24; 25) 30 NAME_REF@[25; 29)
31 IDENT@[25; 29) "Item" 31 IDENT@[25; 29) "Item"
32 EQ@[29; 30) 32 EQ@[29; 30)
33 PATH_TYPE@[30; 33) 33 PATH_TYPE@[30; 33)
@@ -36,5 +36,5 @@ FILE@[0; 35)
36 NAME_REF@[30; 33) 36 NAME_REF@[30; 33)
37 IDENT@[30; 33) "u64" 37 IDENT@[30; 33) "u64"
38 R_ANGLE@[33; 34) 38 R_ANGLE@[33; 34)
39 WHITESPACE@[34; 35)
40 err: `expected SEMI` 39 err: `expected SEMI`
40 WHITESPACE@[34; 35)
diff --git a/tests/data/parser/inline/0059_fn_item_where_clause.txt b/tests/data/parser/inline/0059_fn_item_where_clause.txt
index f38e8ccea..8614d1597 100644
--- a/tests/data/parser/inline/0059_fn_item_where_clause.txt
+++ b/tests/data/parser/inline/0059_fn_item_where_clause.txt
@@ -1,8 +1,8 @@
1FILE@[0; 29) 1FILE@[0; 29)
2 FN_ITEM@[0; 29) 2 FN_ITEM@[0; 28)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 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)
@@ -10,19 +10,19 @@ FILE@[0; 29)
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; 12) 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; 26) 17 WHERE_CLAUSE@[12; 25)
18 WHERE_KW@[12; 17) 18 WHERE_KW@[12; 17)
19 WHITESPACE@[17; 18) 19 WHITESPACE@[17; 18)
20 IDENT@[18; 19) "T" 20 IDENT@[18; 19) "T"
21 COLON@[19; 20) 21 COLON@[19; 20)
22 WHITESPACE@[20; 21) 22 WHITESPACE@[20; 21)
23 IDENT@[21; 25) "Copy" 23 IDENT@[21; 25) "Copy"
24 WHITESPACE@[25; 26) 24 WHITESPACE@[25; 26)
25 BLOCK_EXPR@[26; 29) 25 BLOCK_EXPR@[26; 28)
26 L_CURLY@[26; 27) 26 L_CURLY@[26; 27)
27 R_CURLY@[27; 28) 27 R_CURLY@[27; 28)
28 WHITESPACE@[28; 29) 28 WHITESPACE@[28; 29)
diff --git a/tests/data/parser/inline/0060_fn_item_type_params.txt b/tests/data/parser/inline/0060_fn_item_type_params.txt
index 28a857ed3..492bafdf0 100644
--- a/tests/data/parser/inline/0060_fn_item_type_params.txt
+++ b/tests/data/parser/inline/0060_fn_item_type_params.txt
@@ -1,8 +1,8 @@
1FILE@[0; 28) 1FILE@[0; 28)
2 FN_ITEM@[0; 28) 2 FN_ITEM@[0; 27)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 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)
@@ -10,23 +10,23 @@ FILE@[0; 28)
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 PATH@[9; 16) 13 WHITESPACE@[9; 10)
14 PATH_SEGMENT@[9; 16) 14 PATH@[10; 15)
15 NAME_REF@[9; 16) 15 PATH_SEGMENT@[10; 15)
16 WHITESPACE@[9; 10) 16 NAME_REF@[10; 15)
17 IDENT@[10; 15) "Clone" 17 IDENT@[10; 15) "Clone"
18 WHITESPACE@[15; 16) 18 WHITESPACE@[15; 16)
19 PLUS@[16; 17) 19 PLUS@[16; 17)
20 PATH@[17; 22) 20 WHITESPACE@[17; 18)
21 PATH_SEGMENT@[17; 22) 21 PATH@[18; 22)
22 NAME_REF@[17; 22) 22 PATH_SEGMENT@[18; 22)
23 WHITESPACE@[17; 18) 23 NAME_REF@[18; 22)
24 IDENT@[18; 22) "Copy" 24 IDENT@[18; 22) "Copy"
25 R_ANGLE@[22; 23) 25 R_ANGLE@[22; 23)
26 PARAM_LIST@[23; 25) 26 PARAM_LIST@[23; 25)
27 L_PAREN@[23; 24) 27 L_PAREN@[23; 24)
28 R_PAREN@[24; 25) 28 R_PAREN@[24; 25)
29 BLOCK_EXPR@[25; 28) 29 BLOCK_EXPR@[25; 27)
30 L_CURLY@[25; 26) 30 L_CURLY@[25; 26)
31 R_CURLY@[26; 27) 31 R_CURLY@[26; 27)
32 WHITESPACE@[27; 28) 32 WHITESPACE@[27; 28)
diff --git a/tests/data/parser/inline/0061_struct_lit.txt b/tests/data/parser/inline/0061_struct_lit.txt
index 5a56fd739..f602f18f0 100644
--- a/tests/data/parser/inline/0061_struct_lit.txt
+++ b/tests/data/parser/inline/0061_struct_lit.txt
@@ -1,78 +1,78 @@
1FILE@[0; 86) 1FILE@[0; 86)
2 FN_ITEM@[0; 86) 2 FN_ITEM@[0; 85)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 86) 11 BLOCK_EXPR@[9; 85)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 25) 13 WHITESPACE@[10; 15)
14 STRUCT_LIT@[10; 19) 14 EXPR_STMT@[15; 20)
15 PATH@[10; 17) 15 STRUCT_LIT@[15; 19)
16 PATH_SEGMENT@[10; 17) 16 PATH@[15; 16)
17 NAME_REF@[10; 17) 17 PATH_SEGMENT@[15; 16)
18 WHITESPACE@[10; 15) 18 NAME_REF@[15; 16)
19 IDENT@[15; 16) "S" 19 IDENT@[15; 16) "S"
20 WHITESPACE@[16; 17) 20 WHITESPACE@[16; 17)
21 L_CURLY@[17; 18) 21 L_CURLY@[17; 18)
22 R_CURLY@[18; 19) 22 R_CURLY@[18; 19)
23 SEMI@[19; 20) 23 SEMI@[19; 20)
24 WHITESPACE@[20; 25) 24 WHITESPACE@[20; 25)
25 EXPR_STMT@[25; 46) 25 EXPR_STMT@[25; 41)
26 STRUCT_LIT@[25; 40) 26 STRUCT_LIT@[25; 40)
27 PATH@[25; 27) 27 PATH@[25; 26)
28 PATH_SEGMENT@[25; 27) 28 PATH_SEGMENT@[25; 26)
29 NAME_REF@[25; 27) 29 NAME_REF@[25; 26)
30 IDENT@[25; 26) "S" 30 IDENT@[25; 26) "S"
31 WHITESPACE@[26; 27) 31 WHITESPACE@[26; 27)
32 L_CURLY@[27; 28) 32 L_CURLY@[27; 28)
33 STRUCT_LIT_FIELD@[28; 30) 33 WHITESPACE@[28; 29)
34 NAME_REF@[28; 30) 34 STRUCT_LIT_FIELD@[29; 30)
35 WHITESPACE@[28; 29) 35 NAME_REF@[29; 30)
36 IDENT@[29; 30) "x" 36 IDENT@[29; 30) "x"
37 COMMA@[30; 31) 37 COMMA@[30; 31)
38 STRUCT_LIT_FIELD@[31; 37) 38 WHITESPACE@[31; 32)
39 NAME_REF@[31; 33) 39 STRUCT_LIT_FIELD@[32; 37)
40 WHITESPACE@[31; 32) 40 NAME_REF@[32; 33)
41 IDENT@[32; 33) "y" 41 IDENT@[32; 33) "y"
42 COLON@[33; 34) 42 COLON@[33; 34)
43 LITERAL@[34; 37) 43 WHITESPACE@[34; 35)
44 WHITESPACE@[34; 35) 44 LITERAL@[35; 37)
45 INT_NUMBER@[35; 37) "32" 45 INT_NUMBER@[35; 37) "32"
46 COMMA@[37; 38) 46 COMMA@[37; 38)
47 WHITESPACE@[38; 39) 47 WHITESPACE@[38; 39)
48 R_CURLY@[39; 40) 48 R_CURLY@[39; 40)
49 SEMI@[40; 41) 49 SEMI@[40; 41)
50 WHITESPACE@[41; 46) 50 WHITESPACE@[41; 46)
51 EXPR_STMT@[46; 84) 51 EXPR_STMT@[46; 83)
52 STRUCT_LIT@[46; 82) 52 STRUCT_LIT@[46; 82)
53 PATH@[46; 48) 53 PATH@[46; 47)
54 PATH_SEGMENT@[46; 48) 54 PATH_SEGMENT@[46; 47)
55 NAME_REF@[46; 48) 55 NAME_REF@[46; 47)
56 IDENT@[46; 47) "S" 56 IDENT@[46; 47) "S"
57 WHITESPACE@[47; 48) 57 WHITESPACE@[47; 48)
58 L_CURLY@[48; 49) 58 L_CURLY@[48; 49)
59 STRUCT_LIT_FIELD@[49; 51) 59 WHITESPACE@[49; 50)
60 NAME_REF@[49; 51) 60 STRUCT_LIT_FIELD@[50; 51)
61 WHITESPACE@[49; 50) 61 NAME_REF@[50; 51)
62 IDENT@[50; 51) "x" 62 IDENT@[50; 51) "x"
63 COMMA@[51; 52) 63 COMMA@[51; 52)
64 STRUCT_LIT_FIELD@[52; 58) 64 WHITESPACE@[52; 53)
65 NAME_REF@[52; 54) 65 STRUCT_LIT_FIELD@[53; 58)
66 WHITESPACE@[52; 53) 66 NAME_REF@[53; 54)
67 IDENT@[53; 54) "y" 67 IDENT@[53; 54) "y"
68 COLON@[54; 55) 68 COLON@[54; 55)
69 LITERAL@[55; 58) 69 WHITESPACE@[55; 56)
70 WHITESPACE@[55; 56) 70 LITERAL@[56; 58)
71 INT_NUMBER@[56; 58) "32" 71 INT_NUMBER@[56; 58) "32"
72 COMMA@[58; 59) 72 COMMA@[58; 59)
73 WHITESPACE@[59; 60) 73 WHITESPACE@[59; 60)
74 DOTDOT@[60; 62) 74 DOTDOT@[60; 62)
75 CALL_EXPR@[62; 81) 75 CALL_EXPR@[62; 80)
76 PATH_EXPR@[62; 78) 76 PATH_EXPR@[62; 78)
77 PATH@[62; 78) 77 PATH@[62; 78)
78 PATH@[62; 69) 78 PATH@[62; 69)
@@ -83,12 +83,12 @@ FILE@[0; 86)
83 PATH_SEGMENT@[71; 78) 83 PATH_SEGMENT@[71; 78)
84 NAME_REF@[71; 78) 84 NAME_REF@[71; 78)
85 IDENT@[71; 78) "default" 85 IDENT@[71; 78) "default"
86 ARG_LIST@[78; 81) 86 ARG_LIST@[78; 80)
87 L_PAREN@[78; 79) 87 L_PAREN@[78; 79)
88 R_PAREN@[79; 80) 88 R_PAREN@[79; 80)
89 WHITESPACE@[80; 81) 89 WHITESPACE@[80; 81)
90 R_CURLY@[81; 82) 90 R_CURLY@[81; 82)
91 SEMI@[82; 83) 91 SEMI@[82; 83)
92 WHITESPACE@[83; 84) 92 WHITESPACE@[83; 84)
93 R_CURLY@[84; 85) 93 R_CURLY@[84; 85)
94 WHITESPACE@[85; 86) 94 WHITESPACE@[85; 86)
diff --git a/tests/data/parser/inline/0062_deref_expr.txt b/tests/data/parser/inline/0062_deref_expr.txt
index 5c6fe8ea5..e67d2d96d 100644
--- a/tests/data/parser/inline/0062_deref_expr.txt
+++ b/tests/data/parser/inline/0062_deref_expr.txt
@@ -1,18 +1,18 @@
1FILE@[0; 23) 1FILE@[0; 23)
2 FN_ITEM@[0; 23) 2 FN_ITEM@[0; 22)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 23) 11 BLOCK_EXPR@[9; 22)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 21) 13 WHITESPACE@[10; 15)
14 DEREF_EXPR@[10; 19) 14 EXPR_STMT@[15; 20)
15 WHITESPACE@[10; 15) 15 DEREF_EXPR@[15; 19)
16 STAR@[15; 16) 16 STAR@[15; 16)
17 DEREF_EXPR@[16; 19) 17 DEREF_EXPR@[16; 19)
18 STAR@[16; 17) 18 STAR@[16; 17)
@@ -21,6 +21,6 @@ FILE@[0; 23)
21 LITERAL@[18; 19) 21 LITERAL@[18; 19)
22 INT_NUMBER@[18; 19) "1" 22 INT_NUMBER@[18; 19) "1"
23 SEMI@[19; 20) 23 SEMI@[19; 20)
24 WHITESPACE@[20; 21) 24 WHITESPACE@[20; 21)
25 R_CURLY@[21; 22) 25 R_CURLY@[21; 22)
26 WHITESPACE@[22; 23) 26 WHITESPACE@[22; 23)
diff --git a/tests/data/parser/inline/0063_impl_trait_type.txt b/tests/data/parser/inline/0063_impl_trait_type.txt
index 1a7d8618f..bbebf1086 100644
--- a/tests/data/parser/inline/0063_impl_trait_type.txt
+++ b/tests/data/parser/inline/0063_impl_trait_type.txt
@@ -1,20 +1,20 @@
1FILE@[0; 43) 1FILE@[0; 43)
2 TYPE_ITEM@[0; 43) 2 TYPE_ITEM@[0; 42)
3 TYPE_KW@[0; 4) 3 TYPE_KW@[0; 4)
4 NAME@[4; 7) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 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 IMPL_TRAIT_TYPE@[8; 41) 9 WHITESPACE@[8; 9)
10 WHITESPACE@[8; 9) 10 IMPL_TRAIT_TYPE@[9; 41)
11 IMPL_KW@[9; 13) 11 IMPL_KW@[9; 13)
12 PATH@[13; 37) 12 WHITESPACE@[13; 14)
13 PATH_SEGMENT@[13; 37) 13 PATH@[14; 36)
14 NAME_REF@[13; 22) 14 PATH_SEGMENT@[14; 36)
15 WHITESPACE@[13; 14) 15 NAME_REF@[14; 22)
16 IDENT@[14; 22) "Iterator" 16 IDENT@[14; 22) "Iterator"
17 TYPE_ARG_LIST@[22; 37) 17 TYPE_ARG_LIST@[22; 36)
18 L_ANGLE@[22; 23) 18 L_ANGLE@[22; 23)
19 ASSOC_TYPE_ARG@[23; 35) 19 ASSOC_TYPE_ARG@[23; 35)
20 NAME_REF@[23; 27) 20 NAME_REF@[23; 27)
@@ -31,9 +31,9 @@ FILE@[0; 43)
31 LIFETIME@[32; 34) "'a" 31 LIFETIME@[32; 34) "'a"
32 R_ANGLE@[34; 35) 32 R_ANGLE@[34; 35)
33 R_ANGLE@[35; 36) 33 R_ANGLE@[35; 36)
34 WHITESPACE@[36; 37) 34 WHITESPACE@[36; 37)
35 PLUS@[37; 38) 35 PLUS@[37; 38)
36 WHITESPACE@[38; 39) 36 WHITESPACE@[38; 39)
37 LIFETIME@[39; 41) "'a" 37 LIFETIME@[39; 41) "'a"
38 SEMI@[41; 42) 38 SEMI@[41; 42)
39 WHITESPACE@[42; 43) 39 WHITESPACE@[42; 43)
diff --git a/tests/data/parser/inline/0064_param_list.txt b/tests/data/parser/inline/0064_param_list.txt
index d88f8aa4e..f172851f0 100644
--- a/tests/data/parser/inline/0064_param_list.txt
+++ b/tests/data/parser/inline/0064_param_list.txt
@@ -1,99 +1,99 @@
1FILE@[0; 67) 1FILE@[0; 67)
2 FN_ITEM@[0; 10) 2 FN_ITEM@[0; 9)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 4) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 4)
6 IDENT@[3; 4) "a" 6 IDENT@[3; 4) "a"
7 PARAM_LIST@[4; 7) 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; 10) 11 BLOCK_EXPR@[7; 9)
12 L_CURLY@[7; 8) 12 L_CURLY@[7; 8)
13 R_CURLY@[8; 9) 13 R_CURLY@[8; 9)
14 WHITESPACE@[9; 10) 14 WHITESPACE@[9; 10)
15 FN_ITEM@[10; 26) 15 FN_ITEM@[10; 25)
16 FN_KW@[10; 12) 16 FN_KW@[10; 12)
17 NAME@[12; 14) 17 WHITESPACE@[12; 13)
18 WHITESPACE@[12; 13) 18 NAME@[13; 14)
19 IDENT@[13; 14) "b" 19 IDENT@[13; 14) "b"
20 PARAM_LIST@[14; 23) 20 PARAM_LIST@[14; 22)
21 L_PAREN@[14; 15) 21 L_PAREN@[14; 15)
22 PARAM@[15; 21) 22 PARAM@[15; 21)
23 BIND_PAT@[15; 16) 23 BIND_PAT@[15; 16)
24 NAME@[15; 16) 24 NAME@[15; 16)
25 IDENT@[15; 16) "x" 25 IDENT@[15; 16) "x"
26 COLON@[16; 17) 26 COLON@[16; 17)
27 PATH_TYPE@[17; 21) 27 WHITESPACE@[17; 18)
28 PATH@[17; 21) 28 PATH_TYPE@[18; 21)
29 PATH_SEGMENT@[17; 21) 29 PATH@[18; 21)
30 NAME_REF@[17; 21) 30 PATH_SEGMENT@[18; 21)
31 WHITESPACE@[17; 18) 31 NAME_REF@[18; 21)
32 IDENT@[18; 21) "i32" 32 IDENT@[18; 21) "i32"
33 R_PAREN@[21; 22) 33 R_PAREN@[21; 22)
34 WHITESPACE@[22; 23) 34 WHITESPACE@[22; 23)
35 BLOCK_EXPR@[23; 26) 35 BLOCK_EXPR@[23; 25)
36 L_CURLY@[23; 24) 36 L_CURLY@[23; 24)
37 R_CURLY@[24; 25) 37 R_CURLY@[24; 25)
38 WHITESPACE@[25; 26) 38 WHITESPACE@[25; 26)
39 FN_ITEM@[26; 44) 39 FN_ITEM@[26; 43)
40 FN_KW@[26; 28) 40 FN_KW@[26; 28)
41 NAME@[28; 30) 41 WHITESPACE@[28; 29)
42 WHITESPACE@[28; 29) 42 NAME@[29; 30)
43 IDENT@[29; 30) "c" 43 IDENT@[29; 30) "c"
44 PARAM_LIST@[30; 41) 44 PARAM_LIST@[30; 40)
45 L_PAREN@[30; 31) 45 L_PAREN@[30; 31)
46 PARAM@[31; 37) 46 PARAM@[31; 37)
47 BIND_PAT@[31; 32) 47 BIND_PAT@[31; 32)
48 NAME@[31; 32) 48 NAME@[31; 32)
49 IDENT@[31; 32) "x" 49 IDENT@[31; 32) "x"
50 COLON@[32; 33) 50 COLON@[32; 33)
51 PATH_TYPE@[33; 37) 51 WHITESPACE@[33; 34)
52 PATH@[33; 37) 52 PATH_TYPE@[34; 37)
53 PATH_SEGMENT@[33; 37) 53 PATH@[34; 37)
54 NAME_REF@[33; 37) 54 PATH_SEGMENT@[34; 37)
55 WHITESPACE@[33; 34) 55 NAME_REF@[34; 37)
56 IDENT@[34; 37) "i32" 56 IDENT@[34; 37) "i32"
57 COMMA@[37; 38) 57 COMMA@[37; 38)
58 WHITESPACE@[38; 39) 58 WHITESPACE@[38; 39)
59 R_PAREN@[39; 40) 59 R_PAREN@[39; 40)
60 WHITESPACE@[40; 41) 60 WHITESPACE@[40; 41)
61 BLOCK_EXPR@[41; 44) 61 BLOCK_EXPR@[41; 43)
62 L_CURLY@[41; 42) 62 L_CURLY@[41; 42)
63 R_CURLY@[42; 43) 63 R_CURLY@[42; 43)
64 WHITESPACE@[43; 44) 64 WHITESPACE@[43; 44)
65 FN_ITEM@[44; 67) 65 FN_ITEM@[44; 66)
66 FN_KW@[44; 46) 66 FN_KW@[44; 46)
67 NAME@[46; 48) 67 WHITESPACE@[46; 47)
68 WHITESPACE@[46; 47) 68 NAME@[47; 48)
69 IDENT@[47; 48) "d" 69 IDENT@[47; 48) "d"
70 PARAM_LIST@[48; 64) 70 PARAM_LIST@[48; 63)
71 L_PAREN@[48; 49) 71 L_PAREN@[48; 49)
72 PARAM@[49; 55) 72 PARAM@[49; 55)
73 BIND_PAT@[49; 50) 73 BIND_PAT@[49; 50)
74 NAME@[49; 50) 74 NAME@[49; 50)
75 IDENT@[49; 50) "x" 75 IDENT@[49; 50) "x"
76 COLON@[50; 51) 76 COLON@[50; 51)
77 PATH_TYPE@[51; 55) 77 WHITESPACE@[51; 52)
78 PATH@[51; 55) 78 PATH_TYPE@[52; 55)
79 PATH_SEGMENT@[51; 55) 79 PATH@[52; 55)
80 NAME_REF@[51; 55) 80 PATH_SEGMENT@[52; 55)
81 WHITESPACE@[51; 52) 81 NAME_REF@[52; 55)
82 IDENT@[52; 55) "i32" 82 IDENT@[52; 55) "i32"
83 COMMA@[55; 56) 83 COMMA@[55; 56)
84 PARAM@[56; 62) 84 WHITESPACE@[56; 57)
85 BIND_PAT@[56; 58) 85 PARAM@[57; 62)
86 NAME@[56; 58) 86 BIND_PAT@[57; 58)
87 WHITESPACE@[56; 57) 87 NAME@[57; 58)
88 IDENT@[57; 58) "y" 88 IDENT@[57; 58) "y"
89 COLON@[58; 59) 89 COLON@[58; 59)
90 TUPLE_TYPE@[59; 62) 90 WHITESPACE@[59; 60)
91 WHITESPACE@[59; 60) 91 TUPLE_TYPE@[60; 62)
92 L_PAREN@[60; 61) 92 L_PAREN@[60; 61)
93 R_PAREN@[61; 62) 93 R_PAREN@[61; 62)
94 R_PAREN@[62; 63) 94 R_PAREN@[62; 63)
95 WHITESPACE@[63; 64) 95 WHITESPACE@[63; 64)
96 BLOCK_EXPR@[64; 67) 96 BLOCK_EXPR@[64; 66)
97 L_CURLY@[64; 65) 97 L_CURLY@[64; 65)
98 R_CURLY@[65; 66) 98 R_CURLY@[65; 66)
99 WHITESPACE@[66; 67) 99 WHITESPACE@[66; 67)
diff --git a/tests/data/parser/inline/0065_if_expr.txt b/tests/data/parser/inline/0065_if_expr.txt
index 8bfbf7d17..ab32d6990 100644
--- a/tests/data/parser/inline/0065_if_expr.txt
+++ b/tests/data/parser/inline/0065_if_expr.txt
@@ -1,90 +1,90 @@
1FILE@[0; 107) 1FILE@[0; 107)
2 FN_ITEM@[0; 107) 2 FN_ITEM@[0; 106)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 107) 11 BLOCK_EXPR@[9; 106)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 31) 13 WHITESPACE@[10; 15)
14 IF_EXPR@[10; 25) 14 EXPR_STMT@[15; 26)
15 WHITESPACE@[10; 15) 15 IF_EXPR@[15; 25)
16 IF_KW@[15; 17) 16 IF_KW@[15; 17)
17 LITERAL@[17; 23) 17 WHITESPACE@[17; 18)
18 WHITESPACE@[17; 18) 18 LITERAL@[18; 22)
19 TRUE_KW@[18; 22) 19 TRUE_KW@[18; 22)
20 WHITESPACE@[22; 23) 20 WHITESPACE@[22; 23)
21 BLOCK_EXPR@[23; 25) 21 BLOCK_EXPR@[23; 25)
22 L_CURLY@[23; 24) 22 L_CURLY@[23; 24)
23 R_CURLY@[24; 25) 23 R_CURLY@[24; 25)
24 SEMI@[25; 26) 24 SEMI@[25; 26)
25 WHITESPACE@[26; 31) 25 WHITESPACE@[26; 31)
26 EXPR_STMT@[31; 55) 26 EXPR_STMT@[31; 50)
27 IF_EXPR@[31; 49) 27 IF_EXPR@[31; 49)
28 IF_KW@[31; 33) 28 IF_KW@[31; 33)
29 LITERAL@[33; 39) 29 WHITESPACE@[33; 34)
30 WHITESPACE@[33; 34) 30 LITERAL@[34; 38)
31 TRUE_KW@[34; 38) 31 TRUE_KW@[34; 38)
32 WHITESPACE@[38; 39) 32 WHITESPACE@[38; 39)
33 BLOCK_EXPR@[39; 42) 33 BLOCK_EXPR@[39; 41)
34 L_CURLY@[39; 40) 34 L_CURLY@[39; 40)
35 R_CURLY@[40; 41) 35 R_CURLY@[40; 41)
36 WHITESPACE@[41; 42) 36 WHITESPACE@[41; 42)
37 ELSE_KW@[42; 46) 37 ELSE_KW@[42; 46)
38 BLOCK_EXPR@[46; 49) 38 WHITESPACE@[46; 47)
39 WHITESPACE@[46; 47) 39 BLOCK_EXPR@[47; 49)
40 L_CURLY@[47; 48) 40 L_CURLY@[47; 48)
41 R_CURLY@[48; 49) 41 R_CURLY@[48; 49)
42 SEMI@[49; 50) 42 SEMI@[49; 50)
43 WHITESPACE@[50; 55) 43 WHITESPACE@[50; 55)
44 EXPR_STMT@[55; 96) 44 EXPR_STMT@[55; 91)
45 IF_EXPR@[55; 90) 45 IF_EXPR@[55; 90)
46 IF_KW@[55; 57) 46 IF_KW@[55; 57)
47 LITERAL@[57; 63) 47 WHITESPACE@[57; 58)
48 WHITESPACE@[57; 58) 48 LITERAL@[58; 62)
49 TRUE_KW@[58; 62) 49 TRUE_KW@[58; 62)
50 WHITESPACE@[62; 63) 50 WHITESPACE@[62; 63)
51 BLOCK_EXPR@[63; 66) 51 BLOCK_EXPR@[63; 65)
52 L_CURLY@[63; 64) 52 L_CURLY@[63; 64)
53 R_CURLY@[64; 65) 53 R_CURLY@[64; 65)
54 WHITESPACE@[65; 66) 54 WHITESPACE@[65; 66)
55 ELSE_KW@[66; 70) 55 ELSE_KW@[66; 70)
56 IF_EXPR@[70; 90) 56 WHITESPACE@[70; 71)
57 WHITESPACE@[70; 71) 57 IF_EXPR@[71; 90)
58 IF_KW@[71; 73) 58 IF_KW@[71; 73)
59 LITERAL@[73; 80) 59 WHITESPACE@[73; 74)
60 WHITESPACE@[73; 74) 60 LITERAL@[74; 79)
61 FALSE_KW@[74; 79) 61 FALSE_KW@[74; 79)
62 WHITESPACE@[79; 80) 62 WHITESPACE@[79; 80)
63 BLOCK_EXPR@[80; 83) 63 BLOCK_EXPR@[80; 82)
64 L_CURLY@[80; 81) 64 L_CURLY@[80; 81)
65 R_CURLY@[81; 82) 65 R_CURLY@[81; 82)
66 WHITESPACE@[82; 83) 66 WHITESPACE@[82; 83)
67 ELSE_KW@[83; 87) 67 ELSE_KW@[83; 87)
68 BLOCK_EXPR@[87; 90) 68 WHITESPACE@[87; 88)
69 WHITESPACE@[87; 88) 69 BLOCK_EXPR@[88; 90)
70 L_CURLY@[88; 89) 70 L_CURLY@[88; 89)
71 R_CURLY@[89; 90) 71 R_CURLY@[89; 90)
72 SEMI@[90; 91) 72 SEMI@[90; 91)
73 WHITESPACE@[91; 96) 73 WHITESPACE@[91; 96)
74 EXPR_STMT@[96; 105) 74 EXPR_STMT@[96; 104)
75 IF_EXPR@[96; 103) 75 IF_EXPR@[96; 103)
76 IF_KW@[96; 98) 76 IF_KW@[96; 98)
77 PATH_EXPR@[98; 101) 77 WHITESPACE@[98; 99)
78 PATH@[98; 101) 78 PATH_EXPR@[99; 100)
79 PATH_SEGMENT@[98; 101) 79 PATH@[99; 100)
80 NAME_REF@[98; 101) 80 PATH_SEGMENT@[99; 100)
81 WHITESPACE@[98; 99) 81 NAME_REF@[99; 100)
82 IDENT@[99; 100) "S" 82 IDENT@[99; 100) "S"
83 WHITESPACE@[100; 101) 83 WHITESPACE@[100; 101)
84 BLOCK_EXPR@[101; 103) 84 BLOCK_EXPR@[101; 103)
85 L_CURLY@[101; 102) 85 L_CURLY@[101; 102)
86 R_CURLY@[102; 103) 86 R_CURLY@[102; 103)
87 SEMI@[103; 104) 87 SEMI@[103; 104)
88 WHITESPACE@[104; 105) 88 WHITESPACE@[104; 105)
89 R_CURLY@[105; 106) 89 R_CURLY@[105; 106)
90 WHITESPACE@[106; 107) 90 WHITESPACE@[106; 107)
diff --git a/tests/data/parser/inline/0066_lambda_expr.txt b/tests/data/parser/inline/0066_lambda_expr.txt
index 83f4165df..388c61ad5 100644
--- a/tests/data/parser/inline/0066_lambda_expr.txt
+++ b/tests/data/parser/inline/0066_lambda_expr.txt
@@ -1,93 +1,93 @@
1FILE@[0; 79) 1FILE@[0; 79)
2 FN_ITEM@[0; 79) 2 FN_ITEM@[0; 78)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 79) 11 BLOCK_EXPR@[9; 78)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 26) 13 WHITESPACE@[10; 15)
14 LAMBDA_EXPR@[10; 20) 14 EXPR_STMT@[15; 21)
15 PARAM_LIST@[10; 18) 15 LAMBDA_EXPR@[15; 20)
16 WHITESPACE@[10; 15) 16 PARAM_LIST@[15; 17)
17 PIPE@[15; 16) 17 PIPE@[15; 16)
18 PIPE@[16; 17) 18 PIPE@[16; 17)
19 WHITESPACE@[17; 18) 19 WHITESPACE@[17; 18)
20 TUPLE_EXPR@[18; 20) 20 TUPLE_EXPR@[18; 20)
21 L_PAREN@[18; 19) 21 L_PAREN@[18; 19)
22 R_PAREN@[19; 20) 22 R_PAREN@[19; 20)
23 SEMI@[20; 21) 23 SEMI@[20; 21)
24 WHITESPACE@[21; 26) 24 WHITESPACE@[21; 26)
25 EXPR_STMT@[26; 48) 25 EXPR_STMT@[26; 43)
26 LAMBDA_EXPR@[26; 42) 26 LAMBDA_EXPR@[26; 42)
27 PARAM_LIST@[26; 29) 27 PARAM_LIST@[26; 28)
28 PIPE@[26; 27) 28 PIPE@[26; 27)
29 PIPE@[27; 28) 29 PIPE@[27; 28)
30 WHITESPACE@[28; 29) 30 WHITESPACE@[28; 29)
31 THIN_ARROW@[29; 31) 31 THIN_ARROW@[29; 31)
32 PATH_TYPE@[31; 36) 32 WHITESPACE@[31; 32)
33 PATH@[31; 36) 33 PATH_TYPE@[32; 35)
34 PATH_SEGMENT@[31; 36) 34 PATH@[32; 35)
35 NAME_REF@[31; 36) 35 PATH_SEGMENT@[32; 35)
36 WHITESPACE@[31; 32) 36 NAME_REF@[32; 35)
37 IDENT@[32; 35) "i32" 37 IDENT@[32; 35) "i32"
38 WHITESPACE@[35; 36) 38 WHITESPACE@[35; 36)
39 BLOCK_EXPR@[36; 42) 39 BLOCK_EXPR@[36; 42)
40 L_CURLY@[36; 37) 40 L_CURLY@[36; 37)
41 LITERAL@[37; 41) 41 WHITESPACE@[37; 38)
42 WHITESPACE@[37; 38) 42 LITERAL@[38; 40)
43 INT_NUMBER@[38; 40) "92" 43 INT_NUMBER@[38; 40) "92"
44 WHITESPACE@[40; 41) 44 WHITESPACE@[40; 41)
45 R_CURLY@[41; 42) 45 R_CURLY@[41; 42)
46 SEMI@[42; 43) 46 SEMI@[42; 43)
47 WHITESPACE@[43; 48) 47 WHITESPACE@[43; 48)
48 EXPR_STMT@[48; 59) 48 EXPR_STMT@[48; 54)
49 LAMBDA_EXPR@[48; 53) 49 LAMBDA_EXPR@[48; 53)
50 PARAM_LIST@[48; 52) 50 PARAM_LIST@[48; 51)
51 PIPE@[48; 49) 51 PIPE@[48; 49)
52 PARAM@[49; 50) 52 PARAM@[49; 50)
53 BIND_PAT@[49; 50) 53 BIND_PAT@[49; 50)
54 NAME@[49; 50) 54 NAME@[49; 50)
55 IDENT@[49; 50) "x" 55 IDENT@[49; 50) "x"
56 PIPE@[50; 51) 56 PIPE@[50; 51)
57 WHITESPACE@[51; 52) 57 WHITESPACE@[51; 52)
58 PATH_EXPR@[52; 53) 58 PATH_EXPR@[52; 53)
59 PATH@[52; 53) 59 PATH@[52; 53)
60 PATH_SEGMENT@[52; 53) 60 PATH_SEGMENT@[52; 53)
61 NAME_REF@[52; 53) 61 NAME_REF@[52; 53)
62 IDENT@[52; 53) "x" 62 IDENT@[52; 53) "x"
63 SEMI@[53; 54) 63 SEMI@[53; 54)
64 WHITESPACE@[54; 59) 64 WHITESPACE@[54; 59)
65 EXPR_STMT@[59; 77) 65 EXPR_STMT@[59; 76)
66 LAMBDA_EXPR@[59; 75) 66 LAMBDA_EXPR@[59; 75)
67 MOVE_KW@[59; 63) 67 MOVE_KW@[59; 63)
68 PARAM_LIST@[63; 74) 68 WHITESPACE@[63; 64)
69 WHITESPACE@[63; 64) 69 PARAM_LIST@[64; 73)
70 PIPE@[64; 65) 70 PIPE@[64; 65)
71 PARAM@[65; 71) 71 PARAM@[65; 71)
72 BIND_PAT@[65; 66) 72 BIND_PAT@[65; 66)
73 NAME@[65; 66) 73 NAME@[65; 66)
74 IDENT@[65; 66) "x" 74 IDENT@[65; 66) "x"
75 COLON@[66; 67) 75 COLON@[66; 67)
76 PATH_TYPE@[67; 71) 76 WHITESPACE@[67; 68)
77 PATH@[67; 71) 77 PATH_TYPE@[68; 71)
78 PATH_SEGMENT@[67; 71) 78 PATH@[68; 71)
79 NAME_REF@[67; 71) 79 PATH_SEGMENT@[68; 71)
80 WHITESPACE@[67; 68) 80 NAME_REF@[68; 71)
81 IDENT@[68; 71) "i32" 81 IDENT@[68; 71) "i32"
82 COMMA@[71; 72) 82 COMMA@[71; 72)
83 PIPE@[72; 73) 83 PIPE@[72; 73)
84 WHITESPACE@[73; 74) 84 WHITESPACE@[73; 74)
85 PATH_EXPR@[74; 75) 85 PATH_EXPR@[74; 75)
86 PATH@[74; 75) 86 PATH@[74; 75)
87 PATH_SEGMENT@[74; 75) 87 PATH_SEGMENT@[74; 75)
88 NAME_REF@[74; 75) 88 NAME_REF@[74; 75)
89 IDENT@[74; 75) "x" 89 IDENT@[74; 75) "x"
90 SEMI@[75; 76) 90 SEMI@[75; 76)
91 WHITESPACE@[76; 77) 91 WHITESPACE@[76; 77)
92 R_CURLY@[77; 78) 92 R_CURLY@[77; 78)
93 WHITESPACE@[78; 79) 93 WHITESPACE@[78; 79)
diff --git a/tests/data/parser/inline/0066_not_expr.txt b/tests/data/parser/inline/0066_not_expr.txt
index bd8d760f4..10ac23757 100644
--- a/tests/data/parser/inline/0066_not_expr.txt
+++ b/tests/data/parser/inline/0066_not_expr.txt
@@ -1,24 +1,24 @@
1FILE@[0; 25) 1FILE@[0; 25)
2 FN_ITEM@[0; 25) 2 FN_ITEM@[0; 24)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 24)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 23) 13 WHITESPACE@[10; 15)
14 NOT_EXPR@[10; 21) 14 EXPR_STMT@[15; 22)
15 WHITESPACE@[10; 15) 15 NOT_EXPR@[15; 21)
16 EXCL@[15; 16) 16 EXCL@[15; 16)
17 NOT_EXPR@[16; 21) 17 NOT_EXPR@[16; 21)
18 EXCL@[16; 17) 18 EXCL@[16; 17)
19 LITERAL@[17; 21) 19 LITERAL@[17; 21)
20 TRUE_KW@[17; 21) 20 TRUE_KW@[17; 21)
21 SEMI@[21; 22) 21 SEMI@[21; 22)
22 WHITESPACE@[22; 23) 22 WHITESPACE@[22; 23)
23 R_CURLY@[23; 24) 23 R_CURLY@[23; 24)
24 WHITESPACE@[24; 25) 24 WHITESPACE@[24; 25)
diff --git a/tests/data/parser/inline/0067_block_expr.txt b/tests/data/parser/inline/0067_block_expr.txt
index 2ba46ec56..41f714312 100644
--- a/tests/data/parser/inline/0067_block_expr.txt
+++ b/tests/data/parser/inline/0067_block_expr.txt
@@ -1,29 +1,29 @@
1FILE@[0; 36) 1FILE@[0; 36)
2 FN_ITEM@[0; 36) 2 FN_ITEM@[0; 35)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 36) 11 BLOCK_EXPR@[9; 35)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 23) 13 WHITESPACE@[10; 15)
14 BLOCK_EXPR@[10; 17) 14 EXPR_STMT@[15; 18)
15 WHITESPACE@[10; 15) 15 BLOCK_EXPR@[15; 17)
16 L_CURLY@[15; 16) 16 L_CURLY@[15; 16)
17 R_CURLY@[16; 17) 17 R_CURLY@[16; 17)
18 SEMI@[17; 18) 18 SEMI@[17; 18)
19 WHITESPACE@[18; 23) 19 WHITESPACE@[18; 23)
20 EXPR_STMT@[23; 34) 20 EXPR_STMT@[23; 33)
21 BLOCK_EXPR@[23; 32) 21 BLOCK_EXPR@[23; 32)
22 UNSAFE_KW@[23; 29) 22 UNSAFE_KW@[23; 29)
23 WHITESPACE@[29; 30) 23 WHITESPACE@[29; 30)
24 L_CURLY@[30; 31) 24 L_CURLY@[30; 31)
25 R_CURLY@[31; 32) 25 R_CURLY@[31; 32)
26 SEMI@[32; 33) 26 SEMI@[32; 33)
27 WHITESPACE@[33; 34) 27 WHITESPACE@[33; 34)
28 R_CURLY@[34; 35) 28 R_CURLY@[34; 35)
29 WHITESPACE@[35; 36) 29 WHITESPACE@[35; 36)
diff --git a/tests/data/parser/inline/0068_pub_expr.txt b/tests/data/parser/inline/0068_pub_expr.txt
index 09cf9b262..ee691f25e 100644
--- a/tests/data/parser/inline/0068_pub_expr.txt
+++ b/tests/data/parser/inline/0068_pub_expr.txt
@@ -1,25 +1,25 @@
1FILE@[0; 29) 1FILE@[0; 29)
2 FN_ITEM@[0; 29) 2 FN_ITEM@[0; 20)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 29) 11 BLOCK_EXPR@[9; 20)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 19) 13 WHITESPACE@[10; 11)
14 VISIBILITY@[10; 15) 14 EXPR_STMT@[11; 18)
15 WHITESPACE@[10; 11) 15 VISIBILITY@[11; 14)
16 PUB_KW@[11; 14) 16 PUB_KW@[11; 14)
17 WHITESPACE@[14; 15) 17 WHITESPACE@[14; 15)
18 LITERAL@[15; 17) 18 LITERAL@[15; 17)
19 INT_NUMBER@[15; 17) "92" 19 INT_NUMBER@[15; 17) "92"
20 SEMI@[17; 18) 20 SEMI@[17; 18)
21 WHITESPACE@[18; 19) 21 WHITESPACE@[18; 19)
22 R_CURLY@[19; 20) 22 R_CURLY@[19; 20)
23 WHITESPACE@[20; 21) 23 WHITESPACE@[20; 21)
24 COMMENT@[21; 28) 24 COMMENT@[21; 28)
25 WHITESPACE@[28; 29) 25 WHITESPACE@[28; 29)
diff --git a/tests/data/parser/inline/0068_return_expr.txt b/tests/data/parser/inline/0068_return_expr.txt
index 61a075fc1..683a3dc8f 100644
--- a/tests/data/parser/inline/0068_return_expr.txt
+++ b/tests/data/parser/inline/0068_return_expr.txt
@@ -1,28 +1,28 @@
1FILE@[0; 40) 1FILE@[0; 40)
2 FN_ITEM@[0; 40) 2 FN_ITEM@[0; 39)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 40) 11 BLOCK_EXPR@[9; 39)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 27) 13 WHITESPACE@[10; 15)
14 RETURN_EXPR@[10; 21) 14 EXPR_STMT@[15; 22)
15 WHITESPACE@[10; 15) 15 RETURN_EXPR@[15; 21)
16 RETURN_KW@[15; 21) 16 RETURN_KW@[15; 21)
17 SEMI@[21; 22) 17 SEMI@[21; 22)
18 WHITESPACE@[22; 27) 18 WHITESPACE@[22; 27)
19 EXPR_STMT@[27; 38) 19 EXPR_STMT@[27; 37)
20 RETURN_EXPR@[27; 36) 20 RETURN_EXPR@[27; 36)
21 RETURN_KW@[27; 33) 21 RETURN_KW@[27; 33)
22 LITERAL@[33; 36) 22 WHITESPACE@[33; 34)
23 WHITESPACE@[33; 34) 23 LITERAL@[34; 36)
24 INT_NUMBER@[34; 36) "92" 24 INT_NUMBER@[34; 36) "92"
25 SEMI@[36; 37) 25 SEMI@[36; 37)
26 WHITESPACE@[37; 38) 26 WHITESPACE@[37; 38)
27 R_CURLY@[38; 39) 27 R_CURLY@[38; 39)
28 WHITESPACE@[39; 40) 28 WHITESPACE@[39; 40)
diff --git a/tests/data/parser/inline/0069_match_arm.txt b/tests/data/parser/inline/0069_match_arm.txt
index efdee2568..3446dfa43 100644
--- a/tests/data/parser/inline/0069_match_arm.txt
+++ b/tests/data/parser/inline/0069_match_arm.txt
@@ -1,65 +1,65 @@
1FILE@[0; 78) 1FILE@[0; 78)
2 FN_ITEM@[0; 78) 2 FN_ITEM@[0; 77)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 78) 11 BLOCK_EXPR@[9; 77)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 76) 13 WHITESPACE@[10; 15)
14 MATCH_EXPR@[10; 74) 14 EXPR_STMT@[15; 75)
15 WHITESPACE@[10; 15) 15 MATCH_EXPR@[15; 74)
16 MATCH_KW@[15; 20) 16 MATCH_KW@[15; 20)
17 TUPLE_EXPR@[20; 24) 17 WHITESPACE@[20; 21)
18 WHITESPACE@[20; 21) 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 L_CURLY@[24; 25) 22 L_CURLY@[24; 25)
23 MATCH_ARM@[25; 41) 23 WHITESPACE@[25; 34)
24 PLACEHOLDER_PAT@[25; 36) 24 MATCH_ARM@[34; 41)
25 WHITESPACE@[25; 34) 25 PLACEHOLDER_PAT@[34; 35)
26 UNDERSCORE@[34; 35) 26 UNDERSCORE@[34; 35)
27 WHITESPACE@[35; 36) 27 WHITESPACE@[35; 36)
28 FAT_ARROW@[36; 38) 28 FAT_ARROW@[36; 38)
29 TUPLE_EXPR@[38; 41) 29 WHITESPACE@[38; 39)
30 WHITESPACE@[38; 39) 30 TUPLE_EXPR@[39; 41)
31 L_PAREN@[39; 40) 31 L_PAREN@[39; 40)
32 R_PAREN@[40; 41) 32 R_PAREN@[40; 41)
33 COMMA@[41; 42) 33 COMMA@[41; 42)
34 MATCH_ARM@[42; 67) 34 WHITESPACE@[42; 51)
35 BIND_PAT@[42; 53) 35 MATCH_ARM@[51; 67)
36 NAME@[42; 53) 36 BIND_PAT@[51; 52)
37 WHITESPACE@[42; 51) 37 NAME@[51; 52)
38 IDENT@[51; 52) "X" 38 IDENT@[51; 52) "X"
39 WHITESPACE@[52; 53) 39 WHITESPACE@[52; 53)
40 PIPE@[53; 54) 40 PIPE@[53; 54)
41 BIND_PAT@[54; 57) 41 WHITESPACE@[54; 55)
42 NAME@[54; 57) 42 BIND_PAT@[55; 56)
43 WHITESPACE@[54; 55) 43 NAME@[55; 56)
44 IDENT@[55; 56) "Y" 44 IDENT@[55; 56) "Y"
45 WHITESPACE@[56; 57) 45 WHITESPACE@[56; 57)
46 IF_KW@[57; 59) 46 IF_KW@[57; 59)
47 PATH_EXPR@[59; 62) 47 WHITESPACE@[59; 60)
48 PATH@[59; 62) 48 PATH_EXPR@[60; 61)
49 PATH_SEGMENT@[59; 62) 49 PATH@[60; 61)
50 NAME_REF@[59; 62) 50 PATH_SEGMENT@[60; 61)
51 WHITESPACE@[59; 60) 51 NAME_REF@[60; 61)
52 IDENT@[60; 61) "Z" 52 IDENT@[60; 61) "Z"
53 WHITESPACE@[61; 62) 53 WHITESPACE@[61; 62)
54 FAT_ARROW@[62; 64) 54 FAT_ARROW@[62; 64)
55 TUPLE_EXPR@[64; 67) 55 WHITESPACE@[64; 65)
56 WHITESPACE@[64; 65) 56 TUPLE_EXPR@[65; 67)
57 L_PAREN@[65; 66) 57 L_PAREN@[65; 66)
58 R_PAREN@[66; 67) 58 R_PAREN@[66; 67)
59 COMMA@[67; 68) 59 COMMA@[67; 68)
60 WHITESPACE@[68; 73) 60 WHITESPACE@[68; 73)
61 R_CURLY@[73; 74) 61 R_CURLY@[73; 74)
62 SEMI@[74; 75) 62 SEMI@[74; 75)
63 WHITESPACE@[75; 76) 63 WHITESPACE@[75; 76)
64 R_CURLY@[76; 77) 64 R_CURLY@[76; 77)
65 WHITESPACE@[77; 78) 65 WHITESPACE@[77; 78)
diff --git a/tests/data/parser/inline/0070_match_expr.txt b/tests/data/parser/inline/0070_match_expr.txt
index 6a3ac09a1..e003f0878 100644
--- a/tests/data/parser/inline/0070_match_expr.txt
+++ b/tests/data/parser/inline/0070_match_expr.txt
@@ -1,42 +1,42 @@
1FILE@[0; 47) 1FILE@[0; 47)
2 FN_ITEM@[0; 47) 2 FN_ITEM@[0; 46)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 46)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 33) 13 WHITESPACE@[10; 15)
14 MATCH_EXPR@[10; 27) 14 EXPR_STMT@[15; 28)
15 WHITESPACE@[10; 15) 15 MATCH_EXPR@[15; 27)
16 MATCH_KW@[15; 20) 16 MATCH_KW@[15; 20)
17 TUPLE_EXPR@[20; 24) 17 WHITESPACE@[20; 21)
18 WHITESPACE@[20; 21) 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 L_CURLY@[24; 25) 22 L_CURLY@[24; 25)
23 WHITESPACE@[25; 26) 23 WHITESPACE@[25; 26)
24 R_CURLY@[26; 27) 24 R_CURLY@[26; 27)
25 SEMI@[27; 28) 25 SEMI@[27; 28)
26 WHITESPACE@[28; 33) 26 WHITESPACE@[28; 33)
27 EXPR_STMT@[33; 45) 27 EXPR_STMT@[33; 44)
28 MATCH_EXPR@[33; 43) 28 MATCH_EXPR@[33; 43)
29 MATCH_KW@[33; 38) 29 MATCH_KW@[33; 38)
30 PATH_EXPR@[38; 41) 30 WHITESPACE@[38; 39)
31 PATH@[38; 41) 31 PATH_EXPR@[39; 40)
32 PATH_SEGMENT@[38; 41) 32 PATH@[39; 40)
33 NAME_REF@[38; 41) 33 PATH_SEGMENT@[39; 40)
34 WHITESPACE@[38; 39) 34 NAME_REF@[39; 40)
35 IDENT@[39; 40) "S" 35 IDENT@[39; 40) "S"
36 WHITESPACE@[40; 41) 36 WHITESPACE@[40; 41)
37 L_CURLY@[41; 42) 37 L_CURLY@[41; 42)
38 R_CURLY@[42; 43) 38 R_CURLY@[42; 43)
39 SEMI@[43; 44) 39 SEMI@[43; 44)
40 WHITESPACE@[44; 45) 40 WHITESPACE@[44; 45)
41 R_CURLY@[45; 46) 41 R_CURLY@[45; 46)
42 WHITESPACE@[46; 47) 42 WHITESPACE@[46; 47)
diff --git a/tests/data/parser/inline/0071_tuple_pat_fields.txt b/tests/data/parser/inline/0071_tuple_pat_fields.txt
index f0b3198f5..a6bfd3256 100644
--- a/tests/data/parser/inline/0071_tuple_pat_fields.txt
+++ b/tests/data/parser/inline/0071_tuple_pat_fields.txt
@@ -1,82 +1,82 @@
1FILE@[0; 97) 1FILE@[0; 97)
2 FN_ITEM@[0; 97) 2 FN_ITEM@[0; 96)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 97) 11 BLOCK_EXPR@[9; 96)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 LET_STMT@[10; 33) 13 WHITESPACE@[10; 15)
14 WHITESPACE@[10; 15) 14 LET_STMT@[15; 28)
15 LET_KW@[15; 18) 15 LET_KW@[15; 18)
16 TUPLE_PAT@[18; 23) 16 WHITESPACE@[18; 19)
17 PATH@[18; 20) 17 TUPLE_PAT@[19; 22)
18 PATH_SEGMENT@[18; 20) 18 PATH@[19; 20)
19 NAME_REF@[18; 20) 19 PATH_SEGMENT@[19; 20)
20 WHITESPACE@[18; 19) 20 NAME_REF@[19; 20)
21 IDENT@[19; 20) "S" 21 IDENT@[19; 20) "S"
22 L_PAREN@[20; 21) 22 L_PAREN@[20; 21)
23 R_PAREN@[21; 22) 23 R_PAREN@[21; 22)
24 WHITESPACE@[22; 23) 24 WHITESPACE@[22; 23)
25 EQ@[23; 24) 25 EQ@[23; 24)
26 TUPLE_EXPR@[24; 27) 26 WHITESPACE@[24; 25)
27 WHITESPACE@[24; 25) 27 TUPLE_EXPR@[25; 27)
28 L_PAREN@[25; 26) 28 L_PAREN@[25; 26)
29 R_PAREN@[26; 27) 29 R_PAREN@[26; 27)
30 SEMI@[27; 28) 30 SEMI@[27; 28)
31 WHITESPACE@[28; 33) 31 WHITESPACE@[28; 33)
32 LET_STMT@[33; 52) 32 LET_STMT@[33; 47)
33 LET_KW@[33; 36) 33 LET_KW@[33; 36)
34 TUPLE_PAT@[36; 42) 34 WHITESPACE@[36; 37)
35 PATH@[36; 38) 35 TUPLE_PAT@[37; 41)
36 PATH_SEGMENT@[36; 38) 36 PATH@[37; 38)
37 NAME_REF@[36; 38) 37 PATH_SEGMENT@[37; 38)
38 WHITESPACE@[36; 37) 38 NAME_REF@[37; 38)
39 IDENT@[37; 38) "S" 39 IDENT@[37; 38) "S"
40 L_PAREN@[38; 39) 40 L_PAREN@[38; 39)
41 PLACEHOLDER_PAT@[39; 40) 41 PLACEHOLDER_PAT@[39; 40)
42 UNDERSCORE@[39; 40) 42 UNDERSCORE@[39; 40)
43 R_PAREN@[40; 41) 43 R_PAREN@[40; 41)
44 WHITESPACE@[41; 42) 44 WHITESPACE@[41; 42)
45 EQ@[42; 43) 45 EQ@[42; 43)
46 TUPLE_EXPR@[43; 46) 46 WHITESPACE@[43; 44)
47 WHITESPACE@[43; 44) 47 TUPLE_EXPR@[44; 46)
48 L_PAREN@[44; 45) 48 L_PAREN@[44; 45)
49 R_PAREN@[45; 46) 49 R_PAREN@[45; 46)
50 SEMI@[46; 47) 50 SEMI@[46; 47)
51 WHITESPACE@[47; 52) 51 WHITESPACE@[47; 52)
52 LET_STMT@[52; 72) 52 LET_STMT@[52; 67)
53 LET_KW@[52; 55) 53 LET_KW@[52; 55)
54 TUPLE_PAT@[55; 62) 54 WHITESPACE@[55; 56)
55 PATH@[55; 57) 55 TUPLE_PAT@[56; 61)
56 PATH_SEGMENT@[55; 57) 56 PATH@[56; 57)
57 NAME_REF@[55; 57) 57 PATH_SEGMENT@[56; 57)
58 WHITESPACE@[55; 56) 58 NAME_REF@[56; 57)
59 IDENT@[56; 57) "S" 59 IDENT@[56; 57) "S"
60 L_PAREN@[57; 58) 60 L_PAREN@[57; 58)
61 PLACEHOLDER_PAT@[58; 59) 61 PLACEHOLDER_PAT@[58; 59)
62 UNDERSCORE@[58; 59) 62 UNDERSCORE@[58; 59)
63 COMMA@[59; 60) 63 COMMA@[59; 60)
64 R_PAREN@[60; 61) 64 R_PAREN@[60; 61)
65 WHITESPACE@[61; 62) 65 WHITESPACE@[61; 62)
66 EQ@[62; 63) 66 EQ@[62; 63)
67 TUPLE_EXPR@[63; 66) 67 WHITESPACE@[63; 64)
68 WHITESPACE@[63; 64) 68 TUPLE_EXPR@[64; 66)
69 L_PAREN@[64; 65) 69 L_PAREN@[64; 65)
70 R_PAREN@[65; 66) 70 R_PAREN@[65; 66)
71 SEMI@[66; 67) 71 SEMI@[66; 67)
72 WHITESPACE@[67; 72) 72 WHITESPACE@[67; 72)
73 LET_STMT@[72; 95) 73 LET_STMT@[72; 94)
74 LET_KW@[72; 75) 74 LET_KW@[72; 75)
75 TUPLE_PAT@[75; 89) 75 WHITESPACE@[75; 76)
76 PATH@[75; 77) 76 TUPLE_PAT@[76; 88)
77 PATH_SEGMENT@[75; 77) 77 PATH@[76; 77)
78 NAME_REF@[75; 77) 78 PATH_SEGMENT@[76; 77)
79 WHITESPACE@[75; 76) 79 NAME_REF@[76; 77)
80 IDENT@[76; 77) "S" 80 IDENT@[76; 77) "S"
81 L_PAREN@[77; 78) 81 L_PAREN@[77; 78)
82 PLACEHOLDER_PAT@[78; 79) 82 PLACEHOLDER_PAT@[78; 79)
@@ -86,18 +86,18 @@ FILE@[0; 97)
86 DOTDOT@[81; 83) 86 DOTDOT@[81; 83)
87 WHITESPACE@[83; 84) 87 WHITESPACE@[83; 84)
88 COMMA@[84; 85) 88 COMMA@[84; 85)
89 BIND_PAT@[85; 87) 89 WHITESPACE@[85; 86)
90 NAME@[85; 87) 90 BIND_PAT@[86; 87)
91 WHITESPACE@[85; 86) 91 NAME@[86; 87)
92 IDENT@[86; 87) "x" 92 IDENT@[86; 87) "x"
93 R_PAREN@[87; 88) 93 R_PAREN@[87; 88)
94 WHITESPACE@[88; 89) 94 WHITESPACE@[88; 89)
95 EQ@[89; 90) 95 EQ@[89; 90)
96 TUPLE_EXPR@[90; 93) 96 WHITESPACE@[90; 91)
97 WHITESPACE@[90; 91) 97 TUPLE_EXPR@[91; 93)
98 L_PAREN@[91; 92) 98 L_PAREN@[91; 92)
99 R_PAREN@[92; 93) 99 R_PAREN@[92; 93)
100 SEMI@[93; 94) 100 SEMI@[93; 94)
101 WHITESPACE@[94; 95) 101 WHITESPACE@[94; 95)
102 R_CURLY@[95; 96) 102 R_CURLY@[95; 96)
103 WHITESPACE@[96; 97) 103 WHITESPACE@[96; 97)
diff --git a/tests/data/parser/inline/0072_path_part.txt b/tests/data/parser/inline/0072_path_part.txt
index 227046fcc..696de200e 100644
--- a/tests/data/parser/inline/0072_path_part.txt
+++ b/tests/data/parser/inline/0072_path_part.txt
@@ -1,94 +1,94 @@
1FILE@[0; 103) 1FILE@[0; 103)
2 FN_ITEM@[0; 103) 2 FN_ITEM@[0; 102)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 103) 11 BLOCK_EXPR@[9; 102)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 LET_STMT@[10; 38) 13 WHITESPACE@[10; 15)
14 WHITESPACE@[10; 15) 14 LET_STMT@[15; 33)
15 LET_KW@[15; 18) 15 LET_KW@[15; 18)
16 PATH_PAT@[18; 28) 16 WHITESPACE@[18; 19)
17 PATH@[18; 28) 17 PATH_PAT@[19; 27)
18 PATH@[18; 22) 18 PATH@[19; 27)
19 PATH_SEGMENT@[18; 22) 19 PATH@[19; 22)
20 NAME_REF@[18; 22) 20 PATH_SEGMENT@[19; 22)
21 WHITESPACE@[18; 19) 21 NAME_REF@[19; 22)
22 IDENT@[19; 22) "foo" 22 IDENT@[19; 22) "foo"
23 COLONCOLON@[22; 24) 23 COLONCOLON@[22; 24)
24 PATH_SEGMENT@[24; 28) 24 PATH_SEGMENT@[24; 27)
25 NAME_REF@[24; 28) 25 NAME_REF@[24; 27)
26 IDENT@[24; 27) "Bar" 26 IDENT@[24; 27) "Bar"
27 WHITESPACE@[27; 28) 27 WHITESPACE@[27; 28)
28 EQ@[28; 29) 28 EQ@[28; 29)
29 TUPLE_EXPR@[29; 32) 29 WHITESPACE@[29; 30)
30 WHITESPACE@[29; 30) 30 TUPLE_EXPR@[30; 32)
31 L_PAREN@[30; 31) 31 L_PAREN@[30; 31)
32 R_PAREN@[31; 32) 32 R_PAREN@[31; 32)
33 SEMI@[32; 33) 33 SEMI@[32; 33)
34 WHITESPACE@[33; 38) 34 WHITESPACE@[33; 38)
35 LET_STMT@[38; 58) 35 LET_STMT@[38; 53)
36 LET_KW@[38; 41) 36 LET_KW@[38; 41)
37 PATH_PAT@[41; 48) 37 WHITESPACE@[41; 42)
38 PATH@[41; 48) 38 PATH_PAT@[42; 47)
39 PATH_SEGMENT@[41; 48) 39 PATH@[42; 47)
40 WHITESPACE@[41; 42) 40 PATH_SEGMENT@[42; 47)
41 COLONCOLON@[42; 44) 41 COLONCOLON@[42; 44)
42 NAME_REF@[44; 48) 42 NAME_REF@[44; 47)
43 IDENT@[44; 47) "Bar" 43 IDENT@[44; 47) "Bar"
44 WHITESPACE@[47; 48) 44 WHITESPACE@[47; 48)
45 EQ@[48; 49) 45 EQ@[48; 49)
46 TUPLE_EXPR@[49; 52) 46 WHITESPACE@[49; 50)
47 WHITESPACE@[49; 50) 47 TUPLE_EXPR@[50; 52)
48 L_PAREN@[50; 51) 48 L_PAREN@[50; 51)
49 R_PAREN@[51; 52) 49 R_PAREN@[51; 52)
50 SEMI@[52; 53) 50 SEMI@[52; 53)
51 WHITESPACE@[53; 58) 51 WHITESPACE@[53; 58)
52 LET_STMT@[58; 83) 52 LET_STMT@[58; 78)
53 LET_KW@[58; 61) 53 LET_KW@[58; 61)
54 STRUCT_PAT@[61; 73) 54 WHITESPACE@[61; 62)
55 PATH@[61; 66) 55 STRUCT_PAT@[62; 72)
56 PATH_SEGMENT@[61; 66) 56 PATH@[62; 65)
57 NAME_REF@[61; 66) 57 PATH_SEGMENT@[62; 65)
58 WHITESPACE@[61; 62) 58 NAME_REF@[62; 65)
59 IDENT@[62; 65) "Bar" 59 IDENT@[62; 65) "Bar"
60 WHITESPACE@[65; 66) 60 WHITESPACE@[65; 66)
61 L_CURLY@[66; 67) 61 L_CURLY@[66; 67)
62 WHITESPACE@[67; 68) 62 WHITESPACE@[67; 68)
63 DOTDOT@[68; 70) 63 DOTDOT@[68; 70)
64 WHITESPACE@[70; 71) 64 WHITESPACE@[70; 71)
65 R_CURLY@[71; 72) 65 R_CURLY@[71; 72)
66 WHITESPACE@[72; 73) 66 WHITESPACE@[72; 73)
67 EQ@[73; 74) 67 EQ@[73; 74)
68 TUPLE_EXPR@[74; 77) 68 WHITESPACE@[74; 75)
69 WHITESPACE@[74; 75) 69 TUPLE_EXPR@[75; 77)
70 L_PAREN@[75; 76) 70 L_PAREN@[75; 76)
71 R_PAREN@[76; 77) 71 R_PAREN@[76; 77)
72 SEMI@[77; 78) 72 SEMI@[77; 78)
73 WHITESPACE@[78; 83) 73 WHITESPACE@[78; 83)
74 LET_STMT@[83; 101) 74 LET_STMT@[83; 100)
75 LET_KW@[83; 86) 75 LET_KW@[83; 86)
76 TUPLE_PAT@[86; 95) 76 WHITESPACE@[86; 87)
77 PATH@[86; 90) 77 TUPLE_PAT@[87; 94)
78 PATH_SEGMENT@[86; 90) 78 PATH@[87; 90)
79 NAME_REF@[86; 90) 79 PATH_SEGMENT@[87; 90)
80 WHITESPACE@[86; 87) 80 NAME_REF@[87; 90)
81 IDENT@[87; 90) "Bar" 81 IDENT@[87; 90) "Bar"
82 L_PAREN@[90; 91) 82 L_PAREN@[90; 91)
83 DOTDOT@[91; 93) 83 DOTDOT@[91; 93)
84 R_PAREN@[93; 94) 84 R_PAREN@[93; 94)
85 WHITESPACE@[94; 95) 85 WHITESPACE@[94; 95)
86 EQ@[95; 96) 86 EQ@[95; 96)
87 TUPLE_EXPR@[96; 99) 87 WHITESPACE@[96; 97)
88 WHITESPACE@[96; 97) 88 TUPLE_EXPR@[97; 99)
89 L_PAREN@[97; 98) 89 L_PAREN@[97; 98)
90 R_PAREN@[98; 99) 90 R_PAREN@[98; 99)
91 SEMI@[99; 100) 91 SEMI@[99; 100)
92 WHITESPACE@[100; 101) 92 WHITESPACE@[100; 101)
93 R_CURLY@[101; 102) 93 R_CURLY@[101; 102)
94 WHITESPACE@[102; 103) 94 WHITESPACE@[102; 103)
diff --git a/tests/data/parser/inline/0073_struct_pat_fields.txt b/tests/data/parser/inline/0073_struct_pat_fields.txt
index 639c34dcb..8482edd3c 100644
--- a/tests/data/parser/inline/0073_struct_pat_fields.txt
+++ b/tests/data/parser/inline/0073_struct_pat_fields.txt
@@ -1,122 +1,122 @@
1FILE@[0; 119) 1FILE@[0; 119)
2 FN_ITEM@[0; 119) 2 FN_ITEM@[0; 118)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 119) 11 BLOCK_EXPR@[9; 118)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 LET_STMT@[10; 34) 13 WHITESPACE@[10; 15)
14 WHITESPACE@[10; 15) 14 LET_STMT@[15; 29)
15 LET_KW@[15; 18) 15 LET_KW@[15; 18)
16 STRUCT_PAT@[18; 24) 16 WHITESPACE@[18; 19)
17 PATH@[18; 21) 17 STRUCT_PAT@[19; 23)
18 PATH_SEGMENT@[18; 21) 18 PATH@[19; 20)
19 NAME_REF@[18; 21) 19 PATH_SEGMENT@[19; 20)
20 WHITESPACE@[18; 19) 20 NAME_REF@[19; 20)
21 IDENT@[19; 20) "S" 21 IDENT@[19; 20) "S"
22 WHITESPACE@[20; 21) 22 WHITESPACE@[20; 21)
23 L_CURLY@[21; 22) 23 L_CURLY@[21; 22)
24 R_CURLY@[22; 23) 24 R_CURLY@[22; 23)
25 WHITESPACE@[23; 24) 25 WHITESPACE@[23; 24)
26 EQ@[24; 25) 26 EQ@[24; 25)
27 TUPLE_EXPR@[25; 28) 27 WHITESPACE@[25; 26)
28 WHITESPACE@[25; 26) 28 TUPLE_EXPR@[26; 28)
29 L_PAREN@[26; 27) 29 L_PAREN@[26; 27)
30 R_PAREN@[27; 28) 30 R_PAREN@[27; 28)
31 SEMI@[28; 29) 31 SEMI@[28; 29)
32 WHITESPACE@[29; 34) 32 WHITESPACE@[29; 34)
33 LET_STMT@[34; 67) 33 LET_STMT@[34; 62)
34 LET_KW@[34; 37) 34 LET_KW@[34; 37)
35 STRUCT_PAT@[37; 57) 35 WHITESPACE@[37; 38)
36 PATH@[37; 40) 36 STRUCT_PAT@[38; 56)
37 PATH_SEGMENT@[37; 40) 37 PATH@[38; 39)
38 NAME_REF@[37; 40) 38 PATH_SEGMENT@[38; 39)
39 WHITESPACE@[37; 38) 39 NAME_REF@[38; 39)
40 IDENT@[38; 39) "S" 40 IDENT@[38; 39) "S"
41 WHITESPACE@[39; 40) 41 WHITESPACE@[39; 40)
42 L_CURLY@[40; 41) 42 L_CURLY@[40; 41)
43 BIND_PAT@[41; 43) 43 WHITESPACE@[41; 42)
44 NAME@[41; 43) 44 BIND_PAT@[42; 43)
45 WHITESPACE@[41; 42) 45 NAME@[42; 43)
46 IDENT@[42; 43) "f" 46 IDENT@[42; 43) "f"
47 COMMA@[43; 44) 47 COMMA@[43; 44)
48 BIND_PAT@[44; 55) 48 WHITESPACE@[44; 45)
49 WHITESPACE@[44; 45) 49 BIND_PAT@[45; 54)
50 REF_KW@[45; 48) 50 REF_KW@[45; 48)
51 WHITESPACE@[48; 49) 51 WHITESPACE@[48; 49)
52 MUT_KW@[49; 52) 52 MUT_KW@[49; 52)
53 NAME@[52; 55) 53 WHITESPACE@[52; 53)
54 WHITESPACE@[52; 53) 54 NAME@[53; 54)
55 IDENT@[53; 54) "g" 55 IDENT@[53; 54) "g"
56 WHITESPACE@[54; 55) 56 WHITESPACE@[54; 55)
57 R_CURLY@[55; 56) 57 R_CURLY@[55; 56)
58 WHITESPACE@[56; 57) 58 WHITESPACE@[56; 57)
59 EQ@[57; 58) 59 EQ@[57; 58)
60 TUPLE_EXPR@[58; 61) 60 WHITESPACE@[58; 59)
61 WHITESPACE@[58; 59) 61 TUPLE_EXPR@[59; 61)
62 L_PAREN@[59; 60) 62 L_PAREN@[59; 60)
63 R_PAREN@[60; 61) 63 R_PAREN@[60; 61)
64 SEMI@[61; 62) 64 SEMI@[61; 62)
65 WHITESPACE@[62; 67) 65 WHITESPACE@[62; 67)
66 LET_STMT@[67; 95) 66 LET_STMT@[67; 90)
67 LET_KW@[67; 70) 67 LET_KW@[67; 70)
68 STRUCT_PAT@[70; 85) 68 WHITESPACE@[70; 71)
69 PATH@[70; 73) 69 STRUCT_PAT@[71; 84)
70 PATH_SEGMENT@[70; 73) 70 PATH@[71; 72)
71 NAME_REF@[70; 73) 71 PATH_SEGMENT@[71; 72)
72 WHITESPACE@[70; 71) 72 NAME_REF@[71; 72)
73 IDENT@[71; 72) "S" 73 IDENT@[71; 72) "S"
74 WHITESPACE@[72; 73) 74 WHITESPACE@[72; 73)
75 L_CURLY@[73; 74) 75 L_CURLY@[73; 74)
76 WHITESPACE@[74; 75) 76 WHITESPACE@[74; 75)
77 IDENT@[75; 76) "h" 77 IDENT@[75; 76) "h"
78 COLON@[76; 77) 78 COLON@[76; 77)
79 PLACEHOLDER_PAT@[77; 79) 79 WHITESPACE@[77; 78)
80 WHITESPACE@[77; 78) 80 PLACEHOLDER_PAT@[78; 79)
81 UNDERSCORE@[78; 79) 81 UNDERSCORE@[78; 79)
82 COMMA@[79; 80) 82 COMMA@[79; 80)
83 WHITESPACE@[80; 81) 83 WHITESPACE@[80; 81)
84 DOTDOT@[81; 83) 84 DOTDOT@[81; 83)
85 R_CURLY@[83; 84) 85 R_CURLY@[83; 84)
86 WHITESPACE@[84; 85) 86 WHITESPACE@[84; 85)
87 EQ@[85; 86) 87 EQ@[85; 86)
88 TUPLE_EXPR@[86; 89) 88 WHITESPACE@[86; 87)
89 WHITESPACE@[86; 87) 89 TUPLE_EXPR@[87; 89)
90 L_PAREN@[87; 88) 90 L_PAREN@[87; 88)
91 R_PAREN@[88; 89) 91 R_PAREN@[88; 89)
92 SEMI@[89; 90) 92 SEMI@[89; 90)
93 WHITESPACE@[90; 95) 93 WHITESPACE@[90; 95)
94 LET_STMT@[95; 117) 94 LET_STMT@[95; 116)
95 LET_KW@[95; 98) 95 LET_KW@[95; 98)
96 STRUCT_PAT@[98; 111) 96 WHITESPACE@[98; 99)
97 PATH@[98; 101) 97 STRUCT_PAT@[99; 110)
98 PATH_SEGMENT@[98; 101) 98 PATH@[99; 100)
99 NAME_REF@[98; 101) 99 PATH_SEGMENT@[99; 100)
100 WHITESPACE@[98; 99) 100 NAME_REF@[99; 100)
101 IDENT@[99; 100) "S" 101 IDENT@[99; 100) "S"
102 WHITESPACE@[100; 101) 102 WHITESPACE@[100; 101)
103 L_CURLY@[101; 102) 103 L_CURLY@[101; 102)
104 WHITESPACE@[102; 103) 104 WHITESPACE@[102; 103)
105 IDENT@[103; 104) "h" 105 IDENT@[103; 104) "h"
106 COLON@[104; 105) 106 COLON@[104; 105)
107 PLACEHOLDER_PAT@[105; 107) 107 WHITESPACE@[105; 106)
108 WHITESPACE@[105; 106) 108 PLACEHOLDER_PAT@[106; 107)
109 UNDERSCORE@[106; 107) 109 UNDERSCORE@[106; 107)
110 COMMA@[107; 108) 110 COMMA@[107; 108)
111 WHITESPACE@[108; 109) 111 WHITESPACE@[108; 109)
112 R_CURLY@[109; 110) 112 R_CURLY@[109; 110)
113 WHITESPACE@[110; 111) 113 WHITESPACE@[110; 111)
114 EQ@[111; 112) 114 EQ@[111; 112)
115 TUPLE_EXPR@[112; 115) 115 WHITESPACE@[112; 113)
116 WHITESPACE@[112; 113) 116 TUPLE_EXPR@[113; 115)
117 L_PAREN@[113; 114) 117 L_PAREN@[113; 114)
118 R_PAREN@[114; 115) 118 R_PAREN@[114; 115)
119 SEMI@[115; 116) 119 SEMI@[115; 116)
120 WHITESPACE@[116; 117) 120 WHITESPACE@[116; 117)
121 R_CURLY@[117; 118) 121 R_CURLY@[117; 118)
122 WHITESPACE@[118; 119) 122 WHITESPACE@[118; 119)
diff --git a/tests/data/parser/inline/0074_expr_binding_power.txt b/tests/data/parser/inline/0074_expr_binding_power.txt
index 384fd4354..fc0831d18 100644
--- a/tests/data/parser/inline/0074_expr_binding_power.txt
+++ b/tests/data/parser/inline/0074_expr_binding_power.txt
@@ -1,72 +1,72 @@
1FILE@[0; 57) 1FILE@[0; 57)
2 FN_ITEM@[0; 57) 2 FN_ITEM@[0; 56)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 56)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 43) 13 WHITESPACE@[10; 15)
14 BIN_EXPR@[10; 37) 14 EXPR_STMT@[15; 38)
15 BIN_EXPR@[10; 25) 15 BIN_EXPR@[15; 37)
16 LITERAL@[10; 17) 16 BIN_EXPR@[15; 24)
17 WHITESPACE@[10; 15) 17 LITERAL@[15; 16)
18 INT_NUMBER@[15; 16) "1" 18 INT_NUMBER@[15; 16) "1"
19 WHITESPACE@[16; 17) 19 WHITESPACE@[16; 17)
20 PLUS@[17; 18) 20 PLUS@[17; 18)
21 BIN_EXPR@[18; 25) 21 WHITESPACE@[18; 19)
22 LITERAL@[18; 21) 22 BIN_EXPR@[19; 24)
23 WHITESPACE@[18; 19) 23 LITERAL@[19; 20)
24 INT_NUMBER@[19; 20) "2" 24 INT_NUMBER@[19; 20) "2"
25 WHITESPACE@[20; 21) 25 WHITESPACE@[20; 21)
26 STAR@[21; 22) 26 STAR@[21; 22)
27 LITERAL@[22; 25) 27 WHITESPACE@[22; 23)
28 WHITESPACE@[22; 23) 28 LITERAL@[23; 24)
29 INT_NUMBER@[23; 24) "3" 29 INT_NUMBER@[23; 24) "3"
30 WHITESPACE@[24; 25) 30 WHITESPACE@[24; 25)
31 EQEQ@[25; 27) 31 EQEQ@[25; 27)
32 BIN_EXPR@[27; 37) 32 WHITESPACE@[27; 28)
33 BIN_EXPR@[27; 34) 33 BIN_EXPR@[28; 37)
34 LITERAL@[27; 30) 34 BIN_EXPR@[28; 33)
35 WHITESPACE@[27; 28) 35 LITERAL@[28; 29)
36 INT_NUMBER@[28; 29) "1" 36 INT_NUMBER@[28; 29) "1"
37 WHITESPACE@[29; 30) 37 WHITESPACE@[29; 30)
38 STAR@[30; 31) 38 STAR@[30; 31)
39 LITERAL@[31; 34) 39 WHITESPACE@[31; 32)
40 WHITESPACE@[31; 32) 40 LITERAL@[32; 33)
41 INT_NUMBER@[32; 33) "2" 41 INT_NUMBER@[32; 33) "2"
42 WHITESPACE@[33; 34) 42 WHITESPACE@[33; 34)
43 PLUS@[34; 35) 43 PLUS@[34; 35)
44 LITERAL@[35; 37) 44 WHITESPACE@[35; 36)
45 WHITESPACE@[35; 36) 45 LITERAL@[36; 37)
46 INT_NUMBER@[36; 37) "3" 46 INT_NUMBER@[36; 37) "3"
47 SEMI@[37; 38) 47 SEMI@[37; 38)
48 WHITESPACE@[38; 43) 48 WHITESPACE@[38; 43)
49 EXPR_STMT@[43; 55) 49 EXPR_STMT@[43; 54)
50 BIN_EXPR@[43; 53) 50 BIN_EXPR@[43; 53)
51 DEREF_EXPR@[43; 46) 51 DEREF_EXPR@[43; 45)
52 STAR@[43; 44) 52 STAR@[43; 44)
53 PATH_EXPR@[44; 46) 53 PATH_EXPR@[44; 45)
54 PATH@[44; 46) 54 PATH@[44; 45)
55 PATH_SEGMENT@[44; 46) 55 PATH_SEGMENT@[44; 45)
56 NAME_REF@[44; 46) 56 NAME_REF@[44; 45)
57 IDENT@[44; 45) "x" 57 IDENT@[44; 45) "x"
58 WHITESPACE@[45; 46) 58 WHITESPACE@[45; 46)
59 EQ@[46; 47) 59 EQ@[46; 47)
60 BIN_EXPR@[47; 53) 60 WHITESPACE@[47; 48)
61 LITERAL@[47; 50) 61 BIN_EXPR@[48; 53)
62 WHITESPACE@[47; 48) 62 LITERAL@[48; 49)
63 INT_NUMBER@[48; 49) "1" 63 INT_NUMBER@[48; 49) "1"
64 WHITESPACE@[49; 50) 64 WHITESPACE@[49; 50)
65 PLUS@[50; 51) 65 PLUS@[50; 51)
66 LITERAL@[51; 53) 66 WHITESPACE@[51; 52)
67 WHITESPACE@[51; 52) 67 LITERAL@[52; 53)
68 INT_NUMBER@[52; 53) "1" 68 INT_NUMBER@[52; 53) "1"
69 SEMI@[53; 54) 69 SEMI@[53; 54)
70 WHITESPACE@[54; 55) 70 WHITESPACE@[54; 55)
71 R_CURLY@[55; 56) 71 R_CURLY@[55; 56)
72 WHITESPACE@[56; 57) 72 WHITESPACE@[56; 57)
diff --git a/tests/data/parser/inline/0075_try_expr.txt b/tests/data/parser/inline/0075_try_expr.txt
index 49edce956..2cfd0e368 100644
--- a/tests/data/parser/inline/0075_try_expr.txt
+++ b/tests/data/parser/inline/0075_try_expr.txt
@@ -1,25 +1,25 @@
1FILE@[0; 21) 1FILE@[0; 21)
2 FN_ITEM@[0; 21) 2 FN_ITEM@[0; 20)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 21) 11 BLOCK_EXPR@[9; 20)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 19) 13 WHITESPACE@[10; 15)
14 TRY_EXPR@[10; 17) 14 EXPR_STMT@[15; 18)
15 PATH_EXPR@[10; 16) 15 TRY_EXPR@[15; 17)
16 PATH@[10; 16) 16 PATH_EXPR@[15; 16)
17 PATH_SEGMENT@[10; 16) 17 PATH@[15; 16)
18 NAME_REF@[10; 16) 18 PATH_SEGMENT@[15; 16)
19 WHITESPACE@[10; 15) 19 NAME_REF@[15; 16)
20 IDENT@[15; 16) "x" 20 IDENT@[15; 16) "x"
21 QUESTION@[16; 17) 21 QUESTION@[16; 17)
22 SEMI@[17; 18) 22 SEMI@[17; 18)
23 WHITESPACE@[18; 19) 23 WHITESPACE@[18; 19)
24 R_CURLY@[19; 20) 24 R_CURLY@[19; 20)
25 WHITESPACE@[20; 21) 25 WHITESPACE@[20; 21)
diff --git a/tests/data/parser/inline/0076_cond.txt b/tests/data/parser/inline/0076_cond.txt
index 22eed8458..c4924574f 100644
--- a/tests/data/parser/inline/0076_cond.txt
+++ b/tests/data/parser/inline/0076_cond.txt
@@ -1,42 +1,42 @@
1FILE@[0; 38) 1FILE@[0; 38)
2 FN_ITEM@[0; 38) 2 FN_ITEM@[0; 37)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 38) 11 BLOCK_EXPR@[9; 37)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 IF_EXPR@[10; 36) 13 WHITESPACE@[10; 11)
14 WHITESPACE@[10; 11) 14 IF_EXPR@[11; 35)
15 IF_KW@[11; 13) 15 IF_KW@[11; 13)
16 WHITESPACE@[13; 14) 16 WHITESPACE@[13; 14)
17 LET_KW@[14; 17) 17 LET_KW@[14; 17)
18 TUPLE_PAT@[17; 26) 18 WHITESPACE@[17; 18)
19 PATH@[17; 22) 19 TUPLE_PAT@[18; 25)
20 PATH_SEGMENT@[17; 22) 20 PATH@[18; 22)
21 NAME_REF@[17; 22) 21 PATH_SEGMENT@[18; 22)
22 WHITESPACE@[17; 18) 22 NAME_REF@[18; 22)
23 IDENT@[18; 22) "Some" 23 IDENT@[18; 22) "Some"
24 L_PAREN@[22; 23) 24 L_PAREN@[22; 23)
25 PLACEHOLDER_PAT@[23; 24) 25 PLACEHOLDER_PAT@[23; 24)
26 UNDERSCORE@[23; 24) 26 UNDERSCORE@[23; 24)
27 R_PAREN@[24; 25) 27 R_PAREN@[24; 25)
28 WHITESPACE@[25; 26) 28 WHITESPACE@[25; 26)
29 EQ@[26; 27) 29 EQ@[26; 27)
30 PATH_EXPR@[27; 33) 30 WHITESPACE@[27; 28)
31 PATH@[27; 33) 31 PATH_EXPR@[28; 32)
32 PATH_SEGMENT@[27; 33) 32 PATH@[28; 32)
33 NAME_REF@[27; 33) 33 PATH_SEGMENT@[28; 32)
34 WHITESPACE@[27; 28) 34 NAME_REF@[28; 32)
35 IDENT@[28; 32) "None" 35 IDENT@[28; 32) "None"
36 WHITESPACE@[32; 33) 36 WHITESPACE@[32; 33)
37 BLOCK_EXPR@[33; 36) 37 BLOCK_EXPR@[33; 35)
38 L_CURLY@[33; 34) 38 L_CURLY@[33; 34)
39 R_CURLY@[34; 35) 39 R_CURLY@[34; 35)
40 WHITESPACE@[35; 36) 40 WHITESPACE@[35; 36)
41 R_CURLY@[36; 37) 41 R_CURLY@[36; 37)
42 WHITESPACE@[37; 38) 42 WHITESPACE@[37; 38)
diff --git a/tests/data/parser/inline/0077_while_expr.txt b/tests/data/parser/inline/0077_while_expr.txt
index 447b4b880..fffbb37de 100644
--- a/tests/data/parser/inline/0077_while_expr.txt
+++ b/tests/data/parser/inline/0077_while_expr.txt
@@ -1,64 +1,64 @@
1FILE@[0; 70) 1FILE@[0; 70)
2 FN_ITEM@[0; 70) 2 FN_ITEM@[0; 69)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 70) 11 BLOCK_EXPR@[9; 69)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 34) 13 WHITESPACE@[10; 15)
14 WHILE_EXPR@[10; 28) 14 EXPR_STMT@[15; 29)
15 WHITESPACE@[10; 15) 15 WHILE_EXPR@[15; 28)
16 WHILE_KW@[15; 20) 16 WHILE_KW@[15; 20)
17 LITERAL@[20; 26) 17 WHITESPACE@[20; 21)
18 WHITESPACE@[20; 21) 18 LITERAL@[21; 25)
19 TRUE_KW@[21; 25) 19 TRUE_KW@[21; 25)
20 WHITESPACE@[25; 26) 20 WHITESPACE@[25; 26)
21 BLOCK_EXPR@[26; 28) 21 BLOCK_EXPR@[26; 28)
22 L_CURLY@[26; 27) 22 L_CURLY@[26; 27)
23 R_CURLY@[27; 28) 23 R_CURLY@[27; 28)
24 SEMI@[28; 29) 24 SEMI@[28; 29)
25 WHITESPACE@[29; 34) 25 WHITESPACE@[29; 34)
26 EXPR_STMT@[34; 68) 26 EXPR_STMT@[34; 67)
27 WHILE_EXPR@[34; 66) 27 WHILE_EXPR@[34; 66)
28 WHILE_KW@[34; 39) 28 WHILE_KW@[34; 39)
29 WHITESPACE@[39; 40) 29 WHITESPACE@[39; 40)
30 LET_KW@[40; 43) 30 LET_KW@[40; 43)
31 TUPLE_PAT@[43; 52) 31 WHITESPACE@[43; 44)
32 PATH@[43; 48) 32 TUPLE_PAT@[44; 51)
33 PATH_SEGMENT@[43; 48) 33 PATH@[44; 48)
34 NAME_REF@[43; 48) 34 PATH_SEGMENT@[44; 48)
35 WHITESPACE@[43; 44) 35 NAME_REF@[44; 48)
36 IDENT@[44; 48) "Some" 36 IDENT@[44; 48) "Some"
37 L_PAREN@[48; 49) 37 L_PAREN@[48; 49)
38 BIND_PAT@[49; 50) 38 BIND_PAT@[49; 50)
39 NAME@[49; 50) 39 NAME@[49; 50)
40 IDENT@[49; 50) "x" 40 IDENT@[49; 50) "x"
41 R_PAREN@[50; 51) 41 R_PAREN@[50; 51)
42 WHITESPACE@[51; 52) 42 WHITESPACE@[51; 52)
43 EQ@[52; 53) 43 EQ@[52; 53)
44 METHOD_CALL_EXPR@[53; 64) 44 WHITESPACE@[53; 54)
45 PATH_EXPR@[53; 56) 45 METHOD_CALL_EXPR@[54; 63)
46 PATH@[53; 56) 46 PATH_EXPR@[54; 56)
47 PATH_SEGMENT@[53; 56) 47 PATH@[54; 56)
48 NAME_REF@[53; 56) 48 PATH_SEGMENT@[54; 56)
49 WHITESPACE@[53; 54) 49 NAME_REF@[54; 56)
50 IDENT@[54; 56) "it" 50 IDENT@[54; 56) "it"
51 DOT@[56; 57) 51 DOT@[56; 57)
52 NAME_REF@[57; 61) 52 NAME_REF@[57; 61)
53 IDENT@[57; 61) "next" 53 IDENT@[57; 61) "next"
54 ARG_LIST@[61; 64) 54 ARG_LIST@[61; 63)
55 L_PAREN@[61; 62) 55 L_PAREN@[61; 62)
56 R_PAREN@[62; 63) 56 R_PAREN@[62; 63)
57 WHITESPACE@[63; 64) 57 WHITESPACE@[63; 64)
58 BLOCK_EXPR@[64; 66) 58 BLOCK_EXPR@[64; 66)
59 L_CURLY@[64; 65) 59 L_CURLY@[64; 65)
60 R_CURLY@[65; 66) 60 R_CURLY@[65; 66)
61 SEMI@[66; 67) 61 SEMI@[66; 67)
62 WHITESPACE@[67; 68) 62 WHITESPACE@[67; 68)
63 R_CURLY@[68; 69) 63 R_CURLY@[68; 69)
64 WHITESPACE@[69; 70) 64 WHITESPACE@[69; 70)
diff --git a/tests/data/parser/inline/0078_mod_contents.txt b/tests/data/parser/inline/0078_mod_contents.txt
index 4f97c3ee3..482e36534 100644
--- a/tests/data/parser/inline/0078_mod_contents.txt
+++ b/tests/data/parser/inline/0078_mod_contents.txt
@@ -1,18 +1,18 @@
1FILE@[0; 70) 1FILE@[0; 70)
2 FN_ITEM@[0; 12) 2 FN_ITEM@[0; 11)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 12) 11 BLOCK_EXPR@[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) 14 WHITESPACE@[11; 12)
15 MACRO_CALL@[12; 32) 15 MACRO_CALL@[12; 31)
16 PATH@[12; 23) 16 PATH@[12; 23)
17 PATH_SEGMENT@[12; 23) 17 PATH_SEGMENT@[12; 23)
18 NAME_REF@[12; 23) 18 NAME_REF@[12; 23)
@@ -23,8 +23,8 @@ FILE@[0; 70)
23 WHITESPACE@[28; 29) 23 WHITESPACE@[28; 29)
24 L_CURLY@[29; 30) 24 L_CURLY@[29; 30)
25 R_CURLY@[30; 31) 25 R_CURLY@[30; 31)
26 WHITESPACE@[31; 32) 26 WHITESPACE@[31; 32)
27 MACRO_CALL@[32; 45) 27 MACRO_CALL@[32; 44)
28 PATH@[32; 40) 28 PATH@[32; 40)
29 PATH@[32; 35) 29 PATH@[32; 35)
30 PATH_SEGMENT@[32; 35) 30 PATH_SEGMENT@[32; 35)
@@ -38,8 +38,8 @@ FILE@[0; 70)
38 L_PAREN@[41; 42) 38 L_PAREN@[41; 42)
39 R_PAREN@[42; 43) 39 R_PAREN@[42; 43)
40 SEMI@[43; 44) 40 SEMI@[43; 44)
41 WHITESPACE@[44; 45) 41 WHITESPACE@[44; 45)
42 MACRO_CALL@[45; 60) 42 MACRO_CALL@[45; 59)
43 PATH@[45; 55) 43 PATH@[45; 55)
44 PATH@[45; 50) 44 PATH@[45; 50)
45 PATH_SEGMENT@[45; 50) 45 PATH_SEGMENT@[45; 50)
@@ -52,11 +52,11 @@ FILE@[0; 70)
52 WHITESPACE@[56; 57) 52 WHITESPACE@[56; 57)
53 L_CURLY@[57; 58) 53 L_CURLY@[57; 58)
54 R_CURLY@[58; 59) 54 R_CURLY@[58; 59)
55 WHITESPACE@[59; 60) 55 WHITESPACE@[59; 60)
56 STRUCT_ITEM@[60; 70) 56 STRUCT_ITEM@[60; 69)
57 STRUCT_KW@[60; 66) 57 STRUCT_KW@[60; 66)
58 NAME@[66; 68) 58 WHITESPACE@[66; 67)
59 WHITESPACE@[66; 67) 59 NAME@[67; 68)
60 IDENT@[67; 68) "S" 60 IDENT@[67; 68) "S"
61 SEMI@[68; 69) 61 SEMI@[68; 69)
62 WHITESPACE@[69; 70) 62 WHITESPACE@[69; 70)
diff --git a/tests/data/parser/inline/0080_tuple_expr.txt b/tests/data/parser/inline/0080_tuple_expr.txt
index bf0223c1c..949faf30c 100644
--- a/tests/data/parser/inline/0080_tuple_expr.txt
+++ b/tests/data/parser/inline/0080_tuple_expr.txt
@@ -1,31 +1,31 @@
1FILE@[0; 40) 1FILE@[0; 40)
2 FN_ITEM@[0; 40) 2 FN_ITEM@[0; 39)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 40) 11 BLOCK_EXPR@[9; 39)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 23) 13 WHITESPACE@[10; 15)
14 TUPLE_EXPR@[10; 17) 14 EXPR_STMT@[15; 18)
15 WHITESPACE@[10; 15) 15 TUPLE_EXPR@[15; 17)
16 L_PAREN@[15; 16) 16 L_PAREN@[15; 16)
17 R_PAREN@[16; 17) 17 R_PAREN@[16; 17)
18 SEMI@[17; 18) 18 SEMI@[17; 18)
19 WHITESPACE@[18; 23) 19 WHITESPACE@[18; 23)
20 EXPR_STMT@[23; 32) 20 EXPR_STMT@[23; 27)
21 PAREN_EXPR@[23; 26) 21 PAREN_EXPR@[23; 26)
22 L_PAREN@[23; 24) 22 L_PAREN@[23; 24)
23 LITERAL@[24; 25) 23 LITERAL@[24; 25)
24 INT_NUMBER@[24; 25) "1" 24 INT_NUMBER@[24; 25) "1"
25 R_PAREN@[25; 26) 25 R_PAREN@[25; 26)
26 SEMI@[26; 27) 26 SEMI@[26; 27)
27 WHITESPACE@[27; 32) 27 WHITESPACE@[27; 32)
28 EXPR_STMT@[32; 38) 28 EXPR_STMT@[32; 37)
29 TUPLE_EXPR@[32; 36) 29 TUPLE_EXPR@[32; 36)
30 L_PAREN@[32; 33) 30 L_PAREN@[32; 33)
31 LITERAL@[33; 34) 31 LITERAL@[33; 34)
@@ -33,6 +33,6 @@ FILE@[0; 40)
33 COMMA@[34; 35) 33 COMMA@[34; 35)
34 R_PAREN@[35; 36) 34 R_PAREN@[35; 36)
35 SEMI@[36; 37) 35 SEMI@[36; 37)
36 WHITESPACE@[37; 38) 36 WHITESPACE@[37; 38)
37 R_CURLY@[38; 39) 37 R_CURLY@[38; 39)
38 WHITESPACE@[39; 40) 38 WHITESPACE@[39; 40)
diff --git a/tests/data/parser/inline/0081_index_expr.txt b/tests/data/parser/inline/0081_index_expr.txt
index b77f54fb6..cde5735a2 100644
--- a/tests/data/parser/inline/0081_index_expr.txt
+++ b/tests/data/parser/inline/0081_index_expr.txt
@@ -1,23 +1,23 @@
1FILE@[0; 26) 1FILE@[0; 26)
2 FN_ITEM@[0; 26) 2 FN_ITEM@[0; 25)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 25)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 24) 13 WHITESPACE@[10; 15)
14 INDEX_EXPR@[10; 22) 14 EXPR_STMT@[15; 23)
15 INDEX_EXPR@[10; 19) 15 INDEX_EXPR@[15; 22)
16 PATH_EXPR@[10; 16) 16 INDEX_EXPR@[15; 19)
17 PATH@[10; 16) 17 PATH_EXPR@[15; 16)
18 PATH_SEGMENT@[10; 16) 18 PATH@[15; 16)
19 NAME_REF@[10; 16) 19 PATH_SEGMENT@[15; 16)
20 WHITESPACE@[10; 15) 20 NAME_REF@[15; 16)
21 IDENT@[15; 16) "x" 21 IDENT@[15; 16) "x"
22 L_BRACK@[16; 17) 22 L_BRACK@[16; 17)
23 LITERAL@[17; 18) 23 LITERAL@[17; 18)
@@ -28,6 +28,6 @@ FILE@[0; 26)
28 INT_NUMBER@[20; 21) "2" 28 INT_NUMBER@[20; 21) "2"
29 R_BRACK@[21; 22) 29 R_BRACK@[21; 22)
30 SEMI@[22; 23) 30 SEMI@[22; 23)
31 WHITESPACE@[23; 24) 31 WHITESPACE@[23; 24)
32 R_CURLY@[24; 25) 32 R_CURLY@[24; 25)
33 WHITESPACE@[25; 26) 33 WHITESPACE@[25; 26)
diff --git a/tests/data/parser/inline/0082_range_binding_power.txt b/tests/data/parser/inline/0082_range_binding_power.txt
index 0b7bfd56a..72666d8f8 100644
--- a/tests/data/parser/inline/0082_range_binding_power.txt
+++ b/tests/data/parser/inline/0082_range_binding_power.txt
@@ -1,72 +1,72 @@
1FILE@[0; 66) 1FILE@[0; 66)
2 FN_ITEM@[0; 66) 2 FN_ITEM@[0; 65)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 65)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 29) 13 WHITESPACE@[10; 15)
14 RANGE_EXPR@[10; 23) 14 EXPR_STMT@[15; 24)
15 WHITESPACE@[10; 15) 15 RANGE_EXPR@[15; 23)
16 DOTDOT@[15; 17) 16 DOTDOT@[15; 17)
17 BIN_EXPR@[17; 23) 17 WHITESPACE@[17; 18)
18 LITERAL@[17; 20) 18 BIN_EXPR@[18; 23)
19 WHITESPACE@[17; 18) 19 LITERAL@[18; 19)
20 INT_NUMBER@[18; 19) "1" 20 INT_NUMBER@[18; 19) "1"
21 WHITESPACE@[19; 20) 21 WHITESPACE@[19; 20)
22 PLUS@[20; 21) 22 PLUS@[20; 21)
23 LITERAL@[21; 23) 23 WHITESPACE@[21; 22)
24 WHITESPACE@[21; 22) 24 LITERAL@[22; 23)
25 INT_NUMBER@[22; 23) "1" 25 INT_NUMBER@[22; 23) "1"
26 SEMI@[23; 24) 26 SEMI@[23; 24)
27 WHITESPACE@[24; 29) 27 WHITESPACE@[24; 29)
28 EXPR_STMT@[29; 43) 28 EXPR_STMT@[29; 38)
29 BIN_EXPR@[29; 37) 29 BIN_EXPR@[29; 37)
30 RANGE_EXPR@[29; 34) 30 RANGE_EXPR@[29; 33)
31 DOTDOT@[29; 31) 31 DOTDOT@[29; 31)
32 PATH_EXPR@[31; 34) 32 WHITESPACE@[31; 32)
33 PATH@[31; 34) 33 PATH_EXPR@[32; 33)
34 PATH_SEGMENT@[31; 34) 34 PATH@[32; 33)
35 NAME_REF@[31; 34) 35 PATH_SEGMENT@[32; 33)
36 WHITESPACE@[31; 32) 36 NAME_REF@[32; 33)
37 IDENT@[32; 33) "z" 37 IDENT@[32; 33) "z"
38 WHITESPACE@[33; 34) 38 WHITESPACE@[33; 34)
39 EQ@[34; 35) 39 EQ@[34; 35)
40 LITERAL@[35; 37) 40 WHITESPACE@[35; 36)
41 WHITESPACE@[35; 36) 41 LITERAL@[36; 37)
42 INT_NUMBER@[36; 37) "2" 42 INT_NUMBER@[36; 37) "2"
43 SEMI@[37; 38) 43 SEMI@[37; 38)
44 WHITESPACE@[38; 43) 44 WHITESPACE@[38; 43)
45 EXPR_STMT@[43; 64) 45 EXPR_STMT@[43; 63)
46 BIN_EXPR@[43; 62) 46 BIN_EXPR@[43; 62)
47 PATH_EXPR@[43; 45) 47 PATH_EXPR@[43; 44)
48 PATH@[43; 45) 48 PATH@[43; 44)
49 PATH_SEGMENT@[43; 45) 49 PATH_SEGMENT@[43; 44)
50 NAME_REF@[43; 45) 50 NAME_REF@[43; 44)
51 IDENT@[43; 44) "x" 51 IDENT@[43; 44) "x"
52 WHITESPACE@[44; 45) 52 WHITESPACE@[44; 45)
53 EQ@[45; 46) 53 EQ@[45; 46)
54 BIN_EXPR@[46; 62) 54 WHITESPACE@[46; 47)
55 LITERAL@[46; 53) 55 BIN_EXPR@[47; 62)
56 WHITESPACE@[46; 47) 56 LITERAL@[47; 52)
57 FALSE_KW@[47; 52) 57 FALSE_KW@[47; 52)
58 WHITESPACE@[52; 53) 58 WHITESPACE@[52; 53)
59 DOTDOT@[53; 55) 59 DOTDOT@[53; 55)
60 BIN_EXPR@[55; 62) 60 WHITESPACE@[55; 56)
61 LITERAL@[55; 58) 61 BIN_EXPR@[56; 62)
62 WHITESPACE@[55; 56) 62 LITERAL@[56; 57)
63 INT_NUMBER@[56; 57) "1" 63 INT_NUMBER@[56; 57) "1"
64 WHITESPACE@[57; 58) 64 WHITESPACE@[57; 58)
65 EQEQ@[58; 60) 65 EQEQ@[58; 60)
66 LITERAL@[60; 62) 66 WHITESPACE@[60; 61)
67 WHITESPACE@[60; 61) 67 LITERAL@[61; 62)
68 INT_NUMBER@[61; 62) "1" 68 INT_NUMBER@[61; 62) "1"
69 SEMI@[62; 63) 69 SEMI@[62; 63)
70 WHITESPACE@[63; 64) 70 WHITESPACE@[63; 64)
71 R_CURLY@[64; 65) 71 R_CURLY@[64; 65)
72 WHITESPACE@[65; 66) 72 WHITESPACE@[65; 66)
diff --git a/tests/data/parser/inline/0083_postfix_range.txt b/tests/data/parser/inline/0083_postfix_range.txt
index 6a77e3a71..ff2ed056e 100644
--- a/tests/data/parser/inline/0083_postfix_range.txt
+++ b/tests/data/parser/inline/0083_postfix_range.txt
@@ -1,30 +1,30 @@
1FILE@[0; 26) 1FILE@[0; 26)
2 FN_ITEM@[0; 26) 2 FN_ITEM@[0; 25)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 25)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 LET_STMT@[10; 24) 13 WHITESPACE@[10; 11)
14 WHITESPACE@[10; 11) 14 LET_STMT@[11; 23)
15 LET_KW@[11; 14) 15 LET_KW@[11; 14)
16 BIND_PAT@[14; 17) 16 WHITESPACE@[14; 15)
17 NAME@[14; 17) 17 BIND_PAT@[15; 16)
18 WHITESPACE@[14; 15) 18 NAME@[15; 16)
19 IDENT@[15; 16) "x" 19 IDENT@[15; 16) "x"
20 WHITESPACE@[16; 17) 20 WHITESPACE@[16; 17)
21 EQ@[17; 18) 21 EQ@[17; 18)
22 RANGE_EXPR@[18; 22) 22 WHITESPACE@[18; 19)
23 LITERAL@[18; 20) 23 RANGE_EXPR@[19; 22)
24 WHITESPACE@[18; 19) 24 LITERAL@[19; 20)
25 INT_NUMBER@[19; 20) "1" 25 INT_NUMBER@[19; 20) "1"
26 DOTDOT@[20; 22) 26 DOTDOT@[20; 22)
27 SEMI@[22; 23) 27 SEMI@[22; 23)
28 WHITESPACE@[23; 24) 28 WHITESPACE@[23; 24)
29 R_CURLY@[24; 25) 29 R_CURLY@[24; 25)
30 WHITESPACE@[25; 26) 30 WHITESPACE@[25; 26)
diff --git a/tests/data/parser/inline/0084_compound_ops.txt b/tests/data/parser/inline/0084_compound_ops.txt
index 87492fe92..d51f638a2 100644
--- a/tests/data/parser/inline/0084_compound_ops.txt
+++ b/tests/data/parser/inline/0084_compound_ops.txt
@@ -1,89 +1,89 @@
1FILE@[0; 89) 1FILE@[0; 89)
2 FN_ITEM@[0; 89) 2 FN_ITEM@[0; 88)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 89) 11 BLOCK_EXPR@[9; 88)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 27) 13 WHITESPACE@[10; 15)
14 BIN_EXPR@[10; 21) 14 EXPR_STMT@[15; 22)
15 PATH_EXPR@[10; 17) 15 BIN_EXPR@[15; 21)
16 PATH@[10; 17) 16 PATH_EXPR@[15; 16)
17 PATH_SEGMENT@[10; 17) 17 PATH@[15; 16)
18 NAME_REF@[10; 17) 18 PATH_SEGMENT@[15; 16)
19 WHITESPACE@[10; 15) 19 NAME_REF@[15; 16)
20 IDENT@[15; 16) "x" 20 IDENT@[15; 16) "x"
21 WHITESPACE@[16; 17) 21 WHITESPACE@[16; 17)
22 PLUSEQ@[17; 19) 22 PLUSEQ@[17; 19)
23 LITERAL@[19; 21) 23 WHITESPACE@[19; 20)
24 WHITESPACE@[19; 20) 24 LITERAL@[20; 21)
25 INT_NUMBER@[20; 21) "1" 25 INT_NUMBER@[20; 21) "1"
26 SEMI@[21; 22) 26 SEMI@[21; 22)
27 WHITESPACE@[22; 27) 27 WHITESPACE@[22; 27)
28 EXPR_STMT@[27; 47) 28 EXPR_STMT@[27; 42)
29 BIN_EXPR@[27; 41) 29 BIN_EXPR@[27; 41)
30 BIN_EXPR@[27; 33) 30 BIN_EXPR@[27; 32)
31 LITERAL@[27; 29) 31 LITERAL@[27; 28)
32 INT_NUMBER@[27; 28) "1" 32 INT_NUMBER@[27; 28) "1"
33 WHITESPACE@[28; 29) 33 WHITESPACE@[28; 29)
34 PLUS@[29; 30) 34 PLUS@[29; 30)
35 LITERAL@[30; 33) 35 WHITESPACE@[30; 31)
36 WHITESPACE@[30; 31) 36 LITERAL@[31; 32)
37 INT_NUMBER@[31; 32) "1" 37 INT_NUMBER@[31; 32) "1"
38 WHITESPACE@[32; 33) 38 WHITESPACE@[32; 33)
39 LTEQ@[33; 35) 39 LTEQ@[33; 35)
40 BIN_EXPR@[35; 41) 40 WHITESPACE@[35; 36)
41 LITERAL@[35; 38) 41 BIN_EXPR@[36; 41)
42 WHITESPACE@[35; 36) 42 LITERAL@[36; 37)
43 INT_NUMBER@[36; 37) "2" 43 INT_NUMBER@[36; 37) "2"
44 WHITESPACE@[37; 38) 44 WHITESPACE@[37; 38)
45 STAR@[38; 39) 45 STAR@[38; 39)
46 LITERAL@[39; 41) 46 WHITESPACE@[39; 40)
47 WHITESPACE@[39; 40) 47 LITERAL@[40; 41)
48 INT_NUMBER@[40; 41) "3" 48 INT_NUMBER@[40; 41) "3"
49 SEMI@[41; 42) 49 SEMI@[41; 42)
50 WHITESPACE@[42; 47) 50 WHITESPACE@[42; 47)
51 EXPR_STMT@[47; 64) 51 EXPR_STMT@[47; 59)
52 BIN_EXPR@[47; 58) 52 BIN_EXPR@[47; 58)
53 PATH_EXPR@[47; 49) 53 PATH_EXPR@[47; 48)
54 PATH@[47; 49) 54 PATH@[47; 48)
55 PATH_SEGMENT@[47; 49) 55 PATH_SEGMENT@[47; 48)
56 NAME_REF@[47; 49) 56 NAME_REF@[47; 48)
57 IDENT@[47; 48) "z" 57 IDENT@[47; 48) "z"
58 WHITESPACE@[48; 49) 58 WHITESPACE@[48; 49)
59 MINUSEQ@[49; 51) 59 MINUSEQ@[49; 51)
60 BIN_EXPR@[51; 58) 60 WHITESPACE@[51; 52)
61 LITERAL@[51; 54) 61 BIN_EXPR@[52; 58)
62 WHITESPACE@[51; 52) 62 LITERAL@[52; 53)
63 INT_NUMBER@[52; 53) "3" 63 INT_NUMBER@[52; 53) "3"
64 WHITESPACE@[53; 54) 64 WHITESPACE@[53; 54)
65 GTEQ@[54; 56) 65 GTEQ@[54; 56)
66 LITERAL@[56; 58) 66 WHITESPACE@[56; 57)
67 WHITESPACE@[56; 57) 67 LITERAL@[57; 58)
68 INT_NUMBER@[57; 58) "0" 68 INT_NUMBER@[57; 58) "0"
69 SEMI@[58; 59) 69 SEMI@[58; 59)
70 WHITESPACE@[59; 64) 70 WHITESPACE@[59; 64)
71 EXPR_STMT@[64; 87) 71 EXPR_STMT@[64; 86)
72 BIN_EXPR@[64; 85) 72 BIN_EXPR@[64; 85)
73 LITERAL@[64; 69) 73 LITERAL@[64; 68)
74 TRUE_KW@[64; 68) 74 TRUE_KW@[64; 68)
75 WHITESPACE@[68; 69) 75 WHITESPACE@[68; 69)
76 PIPEPIPE@[69; 71) 76 PIPEPIPE@[69; 71)
77 BIN_EXPR@[71; 85) 77 WHITESPACE@[71; 72)
78 LITERAL@[71; 77) 78 BIN_EXPR@[72; 85)
79 WHITESPACE@[71; 72) 79 LITERAL@[72; 76)
80 TRUE_KW@[72; 76) 80 TRUE_KW@[72; 76)
81 WHITESPACE@[76; 77) 81 WHITESPACE@[76; 77)
82 AMPAMP@[77; 79) 82 AMPAMP@[77; 79)
83 LITERAL@[79; 85) 83 WHITESPACE@[79; 80)
84 WHITESPACE@[79; 80) 84 LITERAL@[80; 85)
85 FALSE_KW@[80; 85) 85 FALSE_KW@[80; 85)
86 SEMI@[85; 86) 86 SEMI@[85; 86)
87 WHITESPACE@[86; 87) 87 WHITESPACE@[86; 87)
88 R_CURLY@[87; 88) 88 R_CURLY@[87; 88)
89 WHITESPACE@[88; 89) 89 WHITESPACE@[88; 89)
diff --git a/tests/data/parser/inline/0084_loop_expr.txt b/tests/data/parser/inline/0084_loop_expr.txt
index 858254380..967c283c5 100644
--- a/tests/data/parser/inline/0084_loop_expr.txt
+++ b/tests/data/parser/inline/0084_loop_expr.txt
@@ -1,24 +1,24 @@
1FILE@[0; 26) 1FILE@[0; 26)
2 FN_ITEM@[0; 26) 2 FN_ITEM@[0; 25)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 25)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 24) 13 WHITESPACE@[10; 15)
14 LOOP_EXPR@[10; 22) 14 EXPR_STMT@[15; 23)
15 WHITESPACE@[10; 15) 15 LOOP_EXPR@[15; 22)
16 LOOP_KW@[15; 19) 16 LOOP_KW@[15; 19)
17 BLOCK_EXPR@[19; 22) 17 WHITESPACE@[19; 20)
18 WHITESPACE@[19; 20) 18 BLOCK_EXPR@[20; 22)
19 L_CURLY@[20; 21) 19 L_CURLY@[20; 21)
20 R_CURLY@[21; 22) 20 R_CURLY@[21; 22)
21 SEMI@[22; 23) 21 SEMI@[22; 23)
22 WHITESPACE@[23; 24) 22 WHITESPACE@[23; 24)
23 R_CURLY@[24; 25) 23 R_CURLY@[24; 25)
24 WHITESPACE@[25; 26) 24 WHITESPACE@[25; 26)
diff --git a/tests/data/parser/inline/0085_for_expr.txt b/tests/data/parser/inline/0085_for_expr.txt
index 33dc86ca0..f96139314 100644
--- a/tests/data/parser/inline/0085_for_expr.txt
+++ b/tests/data/parser/inline/0085_for_expr.txt
@@ -1,34 +1,34 @@
1FILE@[0; 33) 1FILE@[0; 33)
2 FN_ITEM@[0; 33) 2 FN_ITEM@[0; 32)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 33) 11 BLOCK_EXPR@[9; 32)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 31) 13 WHITESPACE@[10; 15)
14 FOR_EXPR@[10; 29) 14 EXPR_STMT@[15; 30)
15 WHITESPACE@[10; 15) 15 FOR_EXPR@[15; 29)
16 FOR_KW@[15; 18) 16 FOR_KW@[15; 18)
17 BIND_PAT@[18; 21) 17 WHITESPACE@[18; 19)
18 NAME@[18; 21) 18 BIND_PAT@[19; 20)
19 WHITESPACE@[18; 19) 19 NAME@[19; 20)
20 IDENT@[19; 20) "x" 20 IDENT@[19; 20) "x"
21 WHITESPACE@[20; 21) 21 WHITESPACE@[20; 21)
22 IN_KW@[21; 23) 22 IN_KW@[21; 23)
23 ARRAY_EXPR@[23; 27) 23 WHITESPACE@[23; 24)
24 WHITESPACE@[23; 24) 24 ARRAY_EXPR@[24; 26)
25 L_BRACK@[24; 25) 25 L_BRACK@[24; 25)
26 R_BRACK@[25; 26) 26 R_BRACK@[25; 26)
27 WHITESPACE@[26; 27) 27 WHITESPACE@[26; 27)
28 BLOCK_EXPR@[27; 29) 28 BLOCK_EXPR@[27; 29)
29 L_CURLY@[27; 28) 29 L_CURLY@[27; 28)
30 R_CURLY@[28; 29) 30 R_CURLY@[28; 29)
31 SEMI@[29; 30) 31 SEMI@[29; 30)
32 WHITESPACE@[30; 31) 32 WHITESPACE@[30; 31)
33 R_CURLY@[31; 32) 33 R_CURLY@[31; 32)
34 WHITESPACE@[32; 33) 34 WHITESPACE@[32; 33)
diff --git a/tests/data/parser/inline/0086_array_expr.txt b/tests/data/parser/inline/0086_array_expr.txt
index 40a9b018c..f72b11617 100644
--- a/tests/data/parser/inline/0086_array_expr.txt
+++ b/tests/data/parser/inline/0086_array_expr.txt
@@ -1,54 +1,54 @@
1FILE@[0; 55) 1FILE@[0; 55)
2 FN_ITEM@[0; 55) 2 FN_ITEM@[0; 54)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 55) 11 BLOCK_EXPR@[9; 54)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 EXPR_STMT@[10; 23) 13 WHITESPACE@[10; 15)
14 ARRAY_EXPR@[10; 17) 14 EXPR_STMT@[15; 18)
15 WHITESPACE@[10; 15) 15 ARRAY_EXPR@[15; 17)
16 L_BRACK@[15; 16) 16 L_BRACK@[15; 16)
17 R_BRACK@[16; 17) 17 R_BRACK@[16; 17)
18 SEMI@[17; 18) 18 SEMI@[17; 18)
19 WHITESPACE@[18; 23) 19 WHITESPACE@[18; 23)
20 EXPR_STMT@[23; 32) 20 EXPR_STMT@[23; 27)
21 ARRAY_EXPR@[23; 26) 21 ARRAY_EXPR@[23; 26)
22 L_BRACK@[23; 24) 22 L_BRACK@[23; 24)
23 LITERAL@[24; 25) 23 LITERAL@[24; 25)
24 INT_NUMBER@[24; 25) "1" 24 INT_NUMBER@[24; 25) "1"
25 R_BRACK@[25; 26) 25 R_BRACK@[25; 26)
26 SEMI@[26; 27) 26 SEMI@[26; 27)
27 WHITESPACE@[27; 32) 27 WHITESPACE@[27; 32)
28 EXPR_STMT@[32; 45) 28 EXPR_STMT@[32; 40)
29 ARRAY_EXPR@[32; 39) 29 ARRAY_EXPR@[32; 39)
30 L_BRACK@[32; 33) 30 L_BRACK@[32; 33)
31 LITERAL@[33; 34) 31 LITERAL@[33; 34)
32 INT_NUMBER@[33; 34) "1" 32 INT_NUMBER@[33; 34) "1"
33 COMMA@[34; 35) 33 COMMA@[34; 35)
34 LITERAL@[35; 37) 34 WHITESPACE@[35; 36)
35 WHITESPACE@[35; 36) 35 LITERAL@[36; 37)
36 INT_NUMBER@[36; 37) "2" 36 INT_NUMBER@[36; 37) "2"
37 COMMA@[37; 38) 37 COMMA@[37; 38)
38 R_BRACK@[38; 39) 38 R_BRACK@[38; 39)
39 SEMI@[39; 40) 39 SEMI@[39; 40)
40 WHITESPACE@[40; 45) 40 WHITESPACE@[40; 45)
41 EXPR_STMT@[45; 53) 41 EXPR_STMT@[45; 52)
42 ARRAY_EXPR@[45; 51) 42 ARRAY_EXPR@[45; 51)
43 L_BRACK@[45; 46) 43 L_BRACK@[45; 46)
44 LITERAL@[46; 47) 44 LITERAL@[46; 47)
45 INT_NUMBER@[46; 47) "1" 45 INT_NUMBER@[46; 47) "1"
46 SEMI@[47; 48) 46 SEMI@[47; 48)
47 LITERAL@[48; 50) 47 WHITESPACE@[48; 49)
48 WHITESPACE@[48; 49) 48 LITERAL@[49; 50)
49 INT_NUMBER@[49; 50) "2" 49 INT_NUMBER@[49; 50) "2"
50 R_BRACK@[50; 51) 50 R_BRACK@[50; 51)
51 SEMI@[51; 52) 51 SEMI@[51; 52)
52 WHITESPACE@[52; 53) 52 WHITESPACE@[52; 53)
53 R_CURLY@[53; 54) 53 R_CURLY@[53; 54)
54 WHITESPACE@[54; 55) 54 WHITESPACE@[54; 55)
diff --git a/tests/data/parser/ok/0001_struct_item.txt b/tests/data/parser/ok/0001_struct_item.txt
index b0195c316..3d5b5cb7f 100644
--- a/tests/data/parser/ok/0001_struct_item.txt
+++ b/tests/data/parser/ok/0001_struct_item.txt
@@ -1,10 +1,10 @@
1FILE@[0; 13) 1FILE@[0; 13)
2 STRUCT_ITEM@[0; 13) 2 STRUCT_ITEM@[0; 13)
3 STRUCT_KW@[0; 6) 3 STRUCT_KW@[0; 6)
4 NAME@[6; 9) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 5 NAME@[7; 8)
6 IDENT@[7; 8) "S" 6 IDENT@[7; 8) "S"
7 WHITESPACE@[8; 9) 7 WHITESPACE@[8; 9)
8 L_CURLY@[9; 10) 8 L_CURLY@[9; 10)
9 WHITESPACE@[10; 12) 9 WHITESPACE@[10; 12)
10 R_CURLY@[12; 13) 10 R_CURLY@[12; 13)
diff --git a/tests/data/parser/ok/0002_struct_item_field.txt b/tests/data/parser/ok/0002_struct_item_field.txt
index 7a395e14f..1129ce39e 100644
--- a/tests/data/parser/ok/0002_struct_item_field.txt
+++ b/tests/data/parser/ok/0002_struct_item_field.txt
@@ -1,21 +1,21 @@
1FILE@[0; 25) 1FILE@[0; 25)
2 STRUCT_ITEM@[0; 25) 2 STRUCT_ITEM@[0; 25)
3 STRUCT_KW@[0; 6) 3 STRUCT_KW@[0; 6)
4 NAME@[6; 9) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 5 NAME@[7; 8)
6 IDENT@[7; 8) "S" 6 IDENT@[7; 8) "S"
7 WHITESPACE@[8; 9) 7 WHITESPACE@[8; 9)
8 L_CURLY@[9; 10) 8 L_CURLY@[9; 10)
9 NAMED_FIELD@[10; 24) 9 WHITESPACE@[10; 15)
10 NAME@[10; 18) 10 NAMED_FIELD@[15; 23)
11 WHITESPACE@[10; 15) 11 NAME@[15; 18)
12 IDENT@[15; 18) "foo" 12 IDENT@[15; 18) "foo"
13 COLON@[18; 19) 13 COLON@[18; 19)
14 PATH_TYPE@[19; 24) 14 WHITESPACE@[19; 20)
15 PATH@[19; 24) 15 PATH_TYPE@[20; 23)
16 PATH_SEGMENT@[19; 24) 16 PATH@[20; 23)
17 NAME_REF@[19; 24) 17 PATH_SEGMENT@[20; 23)
18 WHITESPACE@[19; 20) 18 NAME_REF@[20; 23)
19 IDENT@[20; 23) "u32" 19 IDENT@[20; 23) "u32"
20 WHITESPACE@[23; 24) 20 WHITESPACE@[23; 24)
21 R_CURLY@[24; 25) 21 R_CURLY@[24; 25)
diff --git a/tests/data/parser/ok/0005_fn_item.txt b/tests/data/parser/ok/0005_fn_item.txt
index d4ecc61b6..78ed3dffe 100644
--- a/tests/data/parser/ok/0005_fn_item.txt
+++ b/tests/data/parser/ok/0005_fn_item.txt
@@ -1,15 +1,15 @@
1FILE@[0; 13) 1FILE@[0; 13)
2 FN_ITEM@[0; 13) 2 FN_ITEM@[0; 12)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 6) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 6)
6 IDENT@[3; 6) "foo" 6 IDENT@[3; 6) "foo"
7 PARAM_LIST@[6; 9) 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; 13) 11 BLOCK_EXPR@[9; 12)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 WHITESPACE@[10; 11) 13 WHITESPACE@[10; 11)
14 R_CURLY@[11; 12) 14 R_CURLY@[11; 12)
15 WHITESPACE@[12; 13) 15 WHITESPACE@[12; 13)
diff --git a/tests/data/parser/ok/0006_inner_attributes.txt b/tests/data/parser/ok/0006_inner_attributes.txt
index e2e74f471..562c8d917 100644
--- a/tests/data/parser/ok/0006_inner_attributes.txt
+++ b/tests/data/parser/ok/0006_inner_attributes.txt
@@ -1,13 +1,13 @@
1FILE@[0; 236) 1FILE@[0; 236)
2 ATTR@[0; 9) 2 ATTR@[0; 8)
3 POUND@[0; 1) 3 POUND@[0; 1)
4 EXCL@[1; 2) 4 EXCL@[1; 2)
5 L_BRACK@[2; 3) 5 L_BRACK@[2; 3)
6 META_ITEM@[3; 7) 6 META_ITEM@[3; 7)
7 IDENT@[3; 7) "attr" 7 IDENT@[3; 7) "attr"
8 R_BRACK@[7; 8) 8 R_BRACK@[7; 8)
9 WHITESPACE@[8; 9) 9 WHITESPACE@[8; 9)
10 ATTR@[9; 24) 10 ATTR@[9; 23)
11 POUND@[9; 10) 11 POUND@[9; 10)
12 EXCL@[10; 11) 12 EXCL@[10; 11)
13 L_BRACK@[11; 12) 13 L_BRACK@[11; 12)
@@ -18,8 +18,8 @@ FILE@[0; 236)
18 TRUE_KW@[17; 21) 18 TRUE_KW@[17; 21)
19 R_PAREN@[21; 22) 19 R_PAREN@[21; 22)
20 R_BRACK@[22; 23) 20 R_BRACK@[22; 23)
21 WHITESPACE@[23; 24) 21 WHITESPACE@[23; 24)
22 ATTR@[24; 40) 22 ATTR@[24; 39)
23 POUND@[24; 25) 23 POUND@[24; 25)
24 EXCL@[25; 26) 24 EXCL@[25; 26)
25 L_BRACK@[26; 27) 25 L_BRACK@[26; 27)
@@ -30,8 +30,8 @@ FILE@[0; 236)
30 IDENT@[32; 37) "ident" 30 IDENT@[32; 37) "ident"
31 R_PAREN@[37; 38) 31 R_PAREN@[37; 38)
32 R_BRACK@[38; 39) 32 R_BRACK@[38; 39)
33 WHITESPACE@[39; 40) 33 WHITESPACE@[39; 40)
34 ATTR@[40; 117) 34 ATTR@[40; 116)
35 POUND@[40; 41) 35 POUND@[40; 41)
36 EXCL@[41; 42) 36 EXCL@[41; 42)
37 L_BRACK@[42; 43) 37 L_BRACK@[42; 43)
@@ -41,38 +41,38 @@ FILE@[0; 236)
41 META_ITEM@[48; 53) 41 META_ITEM@[48; 53)
42 IDENT@[48; 53) "ident" 42 IDENT@[48; 53) "ident"
43 COMMA@[53; 54) 43 COMMA@[53; 54)
44 LITERAL@[54; 58) 44 WHITESPACE@[54; 55)
45 WHITESPACE@[54; 55) 45 LITERAL@[55; 58)
46 INT_NUMBER@[55; 58) "100" 46 INT_NUMBER@[55; 58) "100"
47 COMMA@[58; 59) 47 COMMA@[58; 59)
48 LITERAL@[59; 64) 48 WHITESPACE@[59; 60)
49 WHITESPACE@[59; 60) 49 LITERAL@[60; 64)
50 TRUE_KW@[60; 64) 50 TRUE_KW@[60; 64)
51 COMMA@[64; 65) 51 COMMA@[64; 65)
52 LITERAL@[65; 72) 52 WHITESPACE@[65; 66)
53 WHITESPACE@[65; 66) 53 LITERAL@[66; 72)
54 STRING@[66; 72) 54 STRING@[66; 72)
55 COMMA@[72; 73) 55 COMMA@[72; 73)
56 META_ITEM@[73; 85) 56 WHITESPACE@[73; 74)
57 WHITESPACE@[73; 74) 57 META_ITEM@[74; 85)
58 IDENT@[74; 79) "ident" 58 IDENT@[74; 79) "ident"
59 WHITESPACE@[79; 80) 59 WHITESPACE@[79; 80)
60 EQ@[80; 81) 60 EQ@[80; 81)
61 LITERAL@[81; 85) 61 WHITESPACE@[81; 82)
62 WHITESPACE@[81; 82) 62 LITERAL@[82; 85)
63 INT_NUMBER@[82; 85) "100" 63 INT_NUMBER@[82; 85) "100"
64 COMMA@[85; 86) 64 COMMA@[85; 86)
65 META_ITEM@[86; 102) 65 WHITESPACE@[86; 87)
66 WHITESPACE@[86; 87) 66 META_ITEM@[87; 102)
67 IDENT@[87; 92) "ident" 67 IDENT@[87; 92) "ident"
68 WHITESPACE@[92; 93) 68 WHITESPACE@[92; 93)
69 EQ@[93; 94) 69 EQ@[93; 94)
70 LITERAL@[94; 102) 70 WHITESPACE@[94; 95)
71 WHITESPACE@[94; 95) 71 LITERAL@[95; 102)
72 STRING@[95; 102) 72 STRING@[95; 102)
73 COMMA@[102; 103) 73 COMMA@[102; 103)
74 META_ITEM@[103; 114) 74 WHITESPACE@[103; 104)
75 WHITESPACE@[103; 104) 75 META_ITEM@[104; 114)
76 IDENT@[104; 109) "ident" 76 IDENT@[104; 109) "ident"
77 L_PAREN@[109; 110) 77 L_PAREN@[109; 110)
78 LITERAL@[110; 113) 78 LITERAL@[110; 113)
@@ -80,8 +80,8 @@ FILE@[0; 236)
80 R_PAREN@[113; 114) 80 R_PAREN@[113; 114)
81 R_PAREN@[114; 115) 81 R_PAREN@[114; 115)
82 R_BRACK@[115; 116) 82 R_BRACK@[115; 116)
83 WHITESPACE@[116; 117) 83 WHITESPACE@[116; 117)
84 ATTR@[117; 131) 84 ATTR@[117; 130)
85 POUND@[117; 118) 85 POUND@[117; 118)
86 EXCL@[118; 119) 86 EXCL@[118; 119)
87 L_BRACK@[119; 120) 87 L_BRACK@[119; 120)
@@ -92,8 +92,8 @@ FILE@[0; 236)
92 INT_NUMBER@[125; 128) "100" 92 INT_NUMBER@[125; 128) "100"
93 R_PAREN@[128; 129) 93 R_PAREN@[128; 129)
94 R_BRACK@[129; 130) 94 R_BRACK@[129; 130)
95 WHITESPACE@[130; 131) 95 WHITESPACE@[130; 131)
96 ATTR@[131; 156) 96 ATTR@[131; 155)
97 POUND@[131; 132) 97 POUND@[131; 132)
98 EXCL@[132; 133) 98 EXCL@[132; 133)
99 L_BRACK@[133; 134) 99 L_BRACK@[133; 134)
@@ -104,13 +104,13 @@ FILE@[0; 236)
104 IDENT@[139; 146) "enabled" 104 IDENT@[139; 146) "enabled"
105 WHITESPACE@[146; 147) 105 WHITESPACE@[146; 147)
106 EQ@[147; 148) 106 EQ@[147; 148)
107 LITERAL@[148; 153) 107 WHITESPACE@[148; 149)
108 WHITESPACE@[148; 149) 108 LITERAL@[149; 153)
109 TRUE_KW@[149; 153) 109 TRUE_KW@[149; 153)
110 R_PAREN@[153; 154) 110 R_PAREN@[153; 154)
111 R_BRACK@[154; 155) 111 R_BRACK@[154; 155)
112 WHITESPACE@[155; 156) 112 WHITESPACE@[155; 156)
113 ATTR@[156; 174) 113 ATTR@[156; 173)
114 POUND@[156; 157) 114 POUND@[156; 157)
115 EXCL@[157; 158) 115 EXCL@[157; 158)
116 L_BRACK@[158; 159) 116 L_BRACK@[158; 159)
@@ -121,8 +121,8 @@ FILE@[0; 236)
121 TRUE_KW@[167; 171) 121 TRUE_KW@[167; 171)
122 R_PAREN@[171; 172) 122 R_PAREN@[171; 172)
123 R_BRACK@[172; 173) 123 R_BRACK@[172; 173)
124 WHITESPACE@[173; 174) 124 WHITESPACE@[173; 174)
125 ATTR@[174; 192) 125 ATTR@[174; 191)
126 POUND@[174; 175) 126 POUND@[174; 175)
127 EXCL@[175; 176) 127 EXCL@[175; 176)
128 L_BRACK@[176; 177) 128 L_BRACK@[176; 177)
@@ -133,8 +133,8 @@ FILE@[0; 236)
133 STRING@[182; 189) 133 STRING@[182; 189)
134 R_PAREN@[189; 190) 134 R_PAREN@[189; 190)
135 R_BRACK@[190; 191) 135 R_BRACK@[190; 191)
136 WHITESPACE@[191; 192) 136 WHITESPACE@[191; 192)
137 ATTR@[192; 215) 137 ATTR@[192; 214)
138 POUND@[192; 193) 138 POUND@[192; 193)
139 EXCL@[193; 194) 139 EXCL@[193; 194)
140 L_BRACK@[194; 195) 140 L_BRACK@[194; 195)
@@ -144,17 +144,17 @@ FILE@[0; 236)
144 META_ITEM@[200; 201) 144 META_ITEM@[200; 201)
145 IDENT@[200; 201) "C" 145 IDENT@[200; 201) "C"
146 COMMA@[201; 202) 146 COMMA@[201; 202)
147 META_ITEM@[202; 212) 147 WHITESPACE@[202; 203)
148 WHITESPACE@[202; 203) 148 META_ITEM@[203; 212)
149 IDENT@[203; 208) "align" 149 IDENT@[203; 208) "align"
150 WHITESPACE@[208; 209) 150 WHITESPACE@[208; 209)
151 EQ@[209; 210) 151 EQ@[209; 210)
152 LITERAL@[210; 212) 152 WHITESPACE@[210; 211)
153 WHITESPACE@[210; 211) 153 LITERAL@[211; 212)
154 INT_NUMBER@[211; 212) "4" 154 INT_NUMBER@[211; 212) "4"
155 R_PAREN@[212; 213) 155 R_PAREN@[212; 213)
156 R_BRACK@[213; 214) 156 R_BRACK@[213; 214)
157 WHITESPACE@[214; 215) 157 WHITESPACE@[214; 215)
158 ATTR@[215; 236) 158 ATTR@[215; 236)
159 POUND@[215; 216) 159 POUND@[215; 216)
160 EXCL@[216; 217) 160 EXCL@[216; 217)
@@ -165,8 +165,8 @@ FILE@[0; 236)
165 META_ITEM@[223; 224) 165 META_ITEM@[223; 224)
166 IDENT@[223; 224) "C" 166 IDENT@[223; 224) "C"
167 COMMA@[224; 225) 167 COMMA@[224; 225)
168 META_ITEM@[225; 234) 168 WHITESPACE@[225; 226)
169 WHITESPACE@[225; 226) 169 META_ITEM@[226; 234)
170 IDENT@[226; 231) "align" 170 IDENT@[226; 231) "align"
171 L_PAREN@[231; 232) 171 L_PAREN@[231; 232)
172 LITERAL@[232; 233) 172 LITERAL@[232; 233)
diff --git a/tests/data/parser/ok/0007_extern_crate.txt b/tests/data/parser/ok/0007_extern_crate.txt
index 33ce2ae65..533af33c4 100644
--- a/tests/data/parser/ok/0007_extern_crate.txt
+++ b/tests/data/parser/ok/0007_extern_crate.txt
@@ -1,25 +1,25 @@
1FILE@[0; 43) 1FILE@[0; 43)
2 EXTERN_CRATE_ITEM@[0; 18) 2 EXTERN_CRATE_ITEM@[0; 17)
3 EXTERN_KW@[0; 6) 3 EXTERN_KW@[0; 6)
4 WHITESPACE@[6; 7) 4 WHITESPACE@[6; 7)
5 CRATE_KW@[7; 12) 5 CRATE_KW@[7; 12)
6 NAME@[12; 16) 6 WHITESPACE@[12; 13)
7 WHITESPACE@[12; 13) 7 NAME@[13; 16)
8 IDENT@[13; 16) "foo" 8 IDENT@[13; 16) "foo"
9 SEMI@[16; 17) 9 SEMI@[16; 17)
10 WHITESPACE@[17; 18) 10 WHITESPACE@[17; 18)
11 EXTERN_CRATE_ITEM@[18; 43) 11 EXTERN_CRATE_ITEM@[18; 42)
12 EXTERN_KW@[18; 24) 12 EXTERN_KW@[18; 24)
13 WHITESPACE@[24; 25) 13 WHITESPACE@[24; 25)
14 CRATE_KW@[25; 30) 14 CRATE_KW@[25; 30)
15 NAME@[30; 35) 15 WHITESPACE@[30; 31)
16 WHITESPACE@[30; 31) 16 NAME@[31; 34)
17 IDENT@[31; 34) "foo" 17 IDENT@[31; 34) "foo"
18 WHITESPACE@[34; 35) 18 WHITESPACE@[34; 35)
19 ALIAS@[35; 41) 19 ALIAS@[35; 41)
20 AS_KW@[35; 37) 20 AS_KW@[35; 37)
21 NAME@[37; 41) 21 WHITESPACE@[37; 38)
22 WHITESPACE@[37; 38) 22 NAME@[38; 41)
23 IDENT@[38; 41) "bar" 23 IDENT@[38; 41) "bar"
24 SEMI@[41; 42) 24 SEMI@[41; 42)
25 WHITESPACE@[42; 43) 25 WHITESPACE@[42; 43)
diff --git a/tests/data/parser/ok/0008_mod_item.txt b/tests/data/parser/ok/0008_mod_item.txt
index 8d07a2f9a..4af763ec9 100644
--- a/tests/data/parser/ok/0008_mod_item.txt
+++ b/tests/data/parser/ok/0008_mod_item.txt
@@ -1,85 +1,85 @@
1FILE@[0; 118) 1FILE@[0; 118)
2 MOD_ITEM@[0; 8) 2 MOD_ITEM@[0; 6)
3 MOD_KW@[0; 3) 3 MOD_KW@[0; 3)
4 NAME@[3; 5) 4 WHITESPACE@[3; 4)
5 WHITESPACE@[3; 4) 5 NAME@[4; 5)
6 IDENT@[4; 5) "a" 6 IDENT@[4; 5) "a"
7 SEMI@[5; 6) 7 SEMI@[5; 6)
8 WHITESPACE@[6; 8) 8 WHITESPACE@[6; 8)
9 MOD_ITEM@[8; 19) 9 MOD_ITEM@[8; 17)
10 MOD_KW@[8; 11) 10 MOD_KW@[8; 11)
11 NAME@[11; 14) 11 WHITESPACE@[11; 12)
12 WHITESPACE@[11; 12) 12 NAME@[12; 13)
13 IDENT@[12; 13) "b" 13 IDENT@[12; 13) "b"
14 WHITESPACE@[13; 14) 14 WHITESPACE@[13; 14)
15 L_CURLY@[14; 15) 15 L_CURLY@[14; 15)
16 WHITESPACE@[15; 16) 16 WHITESPACE@[15; 16)
17 R_CURLY@[16; 17) 17 R_CURLY@[16; 17)
18 WHITESPACE@[17; 19) 18 WHITESPACE@[17; 19)
19 MOD_ITEM@[19; 67) 19 MOD_ITEM@[19; 65)
20 MOD_KW@[19; 22) 20 MOD_KW@[19; 22)
21 NAME@[22; 25) 21 WHITESPACE@[22; 23)
22 WHITESPACE@[22; 23) 22 NAME@[23; 24)
23 IDENT@[23; 24) "c" 23 IDENT@[23; 24) "c"
24 WHITESPACE@[24; 25) 24 WHITESPACE@[24; 25)
25 L_CURLY@[25; 26) 25 L_CURLY@[25; 26)
26 FN_ITEM@[26; 52) 26 WHITESPACE@[26; 31)
27 WHITESPACE@[26; 31) 27 FN_ITEM@[31; 47)
28 FN_KW@[31; 33) 28 FN_KW@[31; 33)
29 NAME@[33; 37) 29 WHITESPACE@[33; 34)
30 WHITESPACE@[33; 34) 30 NAME@[34; 37)
31 IDENT@[34; 37) "foo" 31 IDENT@[34; 37) "foo"
32 PARAM_LIST@[37; 40) 32 PARAM_LIST@[37; 39)
33 L_PAREN@[37; 38) 33 L_PAREN@[37; 38)
34 R_PAREN@[38; 39) 34 R_PAREN@[38; 39)
35 WHITESPACE@[39; 40) 35 WHITESPACE@[39; 40)
36 BLOCK_EXPR@[40; 52) 36 BLOCK_EXPR@[40; 47)
37 L_CURLY@[40; 41) 37 L_CURLY@[40; 41)
38 WHITESPACE@[41; 46) 38 WHITESPACE@[41; 46)
39 R_CURLY@[46; 47) 39 R_CURLY@[46; 47)
40 WHITESPACE@[47; 52) 40 WHITESPACE@[47; 52)
41 STRUCT_ITEM@[52; 64) 41 STRUCT_ITEM@[52; 63)
42 STRUCT_KW@[52; 58) 42 STRUCT_KW@[52; 58)
43 NAME@[58; 61) 43 WHITESPACE@[58; 59)
44 WHITESPACE@[58; 59) 44 NAME@[59; 60)
45 IDENT@[59; 60) "S" 45 IDENT@[59; 60) "S"
46 WHITESPACE@[60; 61) 46 WHITESPACE@[60; 61)
47 L_CURLY@[61; 62) 47 L_CURLY@[61; 62)
48 R_CURLY@[62; 63) 48 R_CURLY@[62; 63)
49 WHITESPACE@[63; 64) 49 WHITESPACE@[63; 64)
50 R_CURLY@[64; 65) 50 R_CURLY@[64; 65)
51 WHITESPACE@[65; 67) 51 WHITESPACE@[65; 67)
52 MOD_ITEM@[67; 118) 52 MOD_ITEM@[67; 118)
53 MOD_KW@[67; 70) 53 MOD_KW@[67; 70)
54 NAME@[70; 73) 54 WHITESPACE@[70; 71)
55 WHITESPACE@[70; 71) 55 NAME@[71; 72)
56 IDENT@[71; 72) "d" 56 IDENT@[71; 72) "d"
57 WHITESPACE@[72; 73) 57 WHITESPACE@[72; 73)
58 L_CURLY@[73; 74) 58 L_CURLY@[73; 74)
59 ATTR@[74; 92) 59 WHITESPACE@[74; 79)
60 WHITESPACE@[74; 79) 60 ATTR@[79; 87)
61 POUND@[79; 80) 61 POUND@[79; 80)
62 EXCL@[80; 81) 62 EXCL@[80; 81)
63 L_BRACK@[81; 82) 63 L_BRACK@[81; 82)
64 META_ITEM@[82; 86) 64 META_ITEM@[82; 86)
65 IDENT@[82; 86) "attr" 65 IDENT@[82; 86) "attr"
66 R_BRACK@[86; 87) 66 R_BRACK@[86; 87)
67 WHITESPACE@[87; 92) 67 WHITESPACE@[87; 92)
68 MOD_ITEM@[92; 103) 68 MOD_ITEM@[92; 98)
69 MOD_KW@[92; 95) 69 MOD_KW@[92; 95)
70 NAME@[95; 97) 70 WHITESPACE@[95; 96)
71 WHITESPACE@[95; 96) 71 NAME@[96; 97)
72 IDENT@[96; 97) "e" 72 IDENT@[96; 97) "e"
73 SEMI@[97; 98) 73 SEMI@[97; 98)
74 WHITESPACE@[98; 103) 74 WHITESPACE@[98; 103)
75 MOD_ITEM@[103; 117) 75 MOD_ITEM@[103; 116)
76 MOD_KW@[103; 106) 76 MOD_KW@[103; 106)
77 NAME@[106; 109) 77 WHITESPACE@[106; 107)
78 WHITESPACE@[106; 107) 78 NAME@[107; 108)
79 IDENT@[107; 108) "f" 79 IDENT@[107; 108) "f"
80 WHITESPACE@[108; 109) 80 WHITESPACE@[108; 109)
81 L_CURLY@[109; 110) 81 L_CURLY@[109; 110)
82 WHITESPACE@[110; 115) 82 WHITESPACE@[110; 115)
83 R_CURLY@[115; 116) 83 R_CURLY@[115; 116)
84 WHITESPACE@[116; 117) 84 WHITESPACE@[116; 117)
85 R_CURLY@[117; 118) 85 R_CURLY@[117; 118)
diff --git a/tests/data/parser/ok/0009_use_item.txt b/tests/data/parser/ok/0009_use_item.txt
index 8daf4be0d..8f850cd1c 100644
--- a/tests/data/parser/ok/0009_use_item.txt
+++ b/tests/data/parser/ok/0009_use_item.txt
@@ -1,20 +1,20 @@
1FILE@[0; 19) 1FILE@[0; 19)
2 USE_ITEM@[0; 9) 2 USE_ITEM@[0; 8)
3 USE_KW@[0; 3) 3 USE_KW@[0; 3)
4 USE_TREE@[3; 7) 4 WHITESPACE@[3; 4)
5 PATH@[3; 7) 5 USE_TREE@[4; 7)
6 PATH_SEGMENT@[3; 7) 6 PATH@[4; 7)
7 NAME_REF@[3; 7) 7 PATH_SEGMENT@[4; 7)
8 WHITESPACE@[3; 4) 8 NAME_REF@[4; 7)
9 IDENT@[4; 7) "foo" 9 IDENT@[4; 7) "foo"
10 SEMI@[7; 8) 10 SEMI@[7; 8)
11 WHITESPACE@[8; 9) 11 WHITESPACE@[8; 9)
12 USE_ITEM@[9; 19) 12 USE_ITEM@[9; 19)
13 USE_KW@[9; 12) 13 USE_KW@[9; 12)
14 USE_TREE@[12; 18) 14 WHITESPACE@[12; 13)
15 PATH@[12; 18) 15 USE_TREE@[13; 18)
16 PATH_SEGMENT@[12; 18) 16 PATH@[13; 18)
17 WHITESPACE@[12; 13) 17 PATH_SEGMENT@[13; 18)
18 COLONCOLON@[13; 15) 18 COLONCOLON@[13; 15)
19 NAME_REF@[15; 18) 19 NAME_REF@[15; 18)
20 IDENT@[15; 18) "bar" 20 IDENT@[15; 18) "bar"
diff --git a/tests/data/parser/ok/0010_use_path_segments.txt b/tests/data/parser/ok/0010_use_path_segments.txt
index 96d10d741..03ec342c2 100644
--- a/tests/data/parser/ok/0010_use_path_segments.txt
+++ b/tests/data/parser/ok/0010_use_path_segments.txt
@@ -1,12 +1,12 @@
1FILE@[0; 40) 1FILE@[0; 40)
2 USE_ITEM@[0; 21) 2 USE_ITEM@[0; 20)
3 USE_KW@[0; 3) 3 USE_KW@[0; 3)
4 USE_TREE@[3; 19) 4 WHITESPACE@[3; 4)
5 PATH@[3; 19) 5 USE_TREE@[4; 19)
6 PATH@[3; 14) 6 PATH@[4; 19)
7 PATH@[3; 9) 7 PATH@[4; 14)
8 PATH_SEGMENT@[3; 9) 8 PATH@[4; 9)
9 WHITESPACE@[3; 4) 9 PATH_SEGMENT@[4; 9)
10 COLONCOLON@[4; 6) 10 COLONCOLON@[4; 6)
11 NAME_REF@[6; 9) 11 NAME_REF@[6; 9)
12 IDENT@[6; 9) "foo" 12 IDENT@[6; 9) "foo"
@@ -19,16 +19,16 @@ FILE@[0; 40)
19 NAME_REF@[16; 19) 19 NAME_REF@[16; 19)
20 IDENT@[16; 19) "baz" 20 IDENT@[16; 19) "baz"
21 SEMI@[19; 20) 21 SEMI@[19; 20)
22 WHITESPACE@[20; 21) 22 WHITESPACE@[20; 21)
23 USE_ITEM@[21; 40) 23 USE_ITEM@[21; 39)
24 USE_KW@[21; 24) 24 USE_KW@[21; 24)
25 USE_TREE@[24; 38) 25 WHITESPACE@[24; 25)
26 PATH@[24; 38) 26 USE_TREE@[25; 38)
27 PATH@[24; 33) 27 PATH@[25; 38)
28 PATH@[24; 28) 28 PATH@[25; 33)
29 PATH_SEGMENT@[24; 28) 29 PATH@[25; 28)
30 NAME_REF@[24; 28) 30 PATH_SEGMENT@[25; 28)
31 WHITESPACE@[24; 25) 31 NAME_REF@[25; 28)
32 IDENT@[25; 28) "foo" 32 IDENT@[25; 28) "foo"
33 COLONCOLON@[28; 30) 33 COLONCOLON@[28; 30)
34 PATH_SEGMENT@[30; 33) 34 PATH_SEGMENT@[30; 33)
@@ -39,4 +39,4 @@ FILE@[0; 40)
39 NAME_REF@[35; 38) 39 NAME_REF@[35; 38)
40 IDENT@[35; 38) "baz" 40 IDENT@[35; 38) "baz"
41 SEMI@[38; 39) 41 SEMI@[38; 39)
42 WHITESPACE@[39; 40) 42 WHITESPACE@[39; 40)
diff --git a/tests/data/parser/ok/0011_outer_attribute.txt b/tests/data/parser/ok/0011_outer_attribute.txt
index b94ba758a..f5c21ee10 100644
--- a/tests/data/parser/ok/0011_outer_attribute.txt
+++ b/tests/data/parser/ok/0011_outer_attribute.txt
@@ -1,6 +1,6 @@
1FILE@[0; 35) 1FILE@[0; 35)
2 FN_ITEM@[0; 35) 2 FN_ITEM@[0; 34)
3 ATTR@[0; 13) 3 ATTR@[0; 12)
4 POUND@[0; 1) 4 POUND@[0; 1)
5 L_BRACK@[1; 2) 5 L_BRACK@[1; 2)
6 META_ITEM@[2; 11) 6 META_ITEM@[2; 11)
@@ -10,23 +10,23 @@ FILE@[0; 35)
10 IDENT@[6; 10) "test" 10 IDENT@[6; 10) "test"
11 R_PAREN@[10; 11) 11 R_PAREN@[10; 11)
12 R_BRACK@[11; 12) 12 R_BRACK@[11; 12)
13 WHITESPACE@[12; 13) 13 WHITESPACE@[12; 13)
14 ATTR@[13; 23) 14 ATTR@[13; 22)
15 POUND@[13; 14) 15 POUND@[13; 14)
16 L_BRACK@[14; 15) 16 L_BRACK@[14; 15)
17 META_ITEM@[15; 21) 17 META_ITEM@[15; 21)
18 IDENT@[15; 21) "ignore" 18 IDENT@[15; 21) "ignore"
19 R_BRACK@[21; 22) 19 R_BRACK@[21; 22)
20 WHITESPACE@[22; 23) 20 WHITESPACE@[22; 23)
21 FN_KW@[23; 25) 21 FN_KW@[23; 25)
22 NAME@[25; 29) 22 WHITESPACE@[25; 26)
23 WHITESPACE@[25; 26) 23 NAME@[26; 29)
24 IDENT@[26; 29) "foo" 24 IDENT@[26; 29) "foo"
25 PARAM_LIST@[29; 32) 25 PARAM_LIST@[29; 31)
26 L_PAREN@[29; 30) 26 L_PAREN@[29; 30)
27 R_PAREN@[30; 31) 27 R_PAREN@[30; 31)
28 WHITESPACE@[31; 32) 28 WHITESPACE@[31; 32)
29 BLOCK_EXPR@[32; 35) 29 BLOCK_EXPR@[32; 34)
30 L_CURLY@[32; 33) 30 L_CURLY@[32; 33)
31 R_CURLY@[33; 34) 31 R_CURLY@[33; 34)
32 WHITESPACE@[34; 35) 32 WHITESPACE@[34; 35)
diff --git a/tests/data/parser/ok/0012_visibility.txt b/tests/data/parser/ok/0012_visibility.txt
index 141f03c60..01edc871a 100644
--- a/tests/data/parser/ok/0012_visibility.txt
+++ b/tests/data/parser/ok/0012_visibility.txt
@@ -1,82 +1,82 @@
1FILE@[0; 98) 1FILE@[0; 98)
2 FN_ITEM@[0; 10) 2 FN_ITEM@[0; 9)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 4) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 4)
6 IDENT@[3; 4) "a" 6 IDENT@[3; 4) "a"
7 PARAM_LIST@[4; 7) 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; 10) 11 BLOCK_EXPR@[7; 9)
12 L_CURLY@[7; 8) 12 L_CURLY@[7; 8)
13 R_CURLY@[8; 9) 13 R_CURLY@[8; 9)
14 WHITESPACE@[9; 10) 14 WHITESPACE@[9; 10)
15 FN_ITEM@[10; 24) 15 FN_ITEM@[10; 23)
16 VISIBILITY@[10; 14) 16 VISIBILITY@[10; 13)
17 PUB_KW@[10; 13) 17 PUB_KW@[10; 13)
18 WHITESPACE@[13; 14) 18 WHITESPACE@[13; 14)
19 FN_KW@[14; 16) 19 FN_KW@[14; 16)
20 NAME@[16; 18) 20 WHITESPACE@[16; 17)
21 WHITESPACE@[16; 17) 21 NAME@[17; 18)
22 IDENT@[17; 18) "b" 22 IDENT@[17; 18) "b"
23 PARAM_LIST@[18; 21) 23 PARAM_LIST@[18; 20)
24 L_PAREN@[18; 19) 24 L_PAREN@[18; 19)
25 R_PAREN@[19; 20) 25 R_PAREN@[19; 20)
26 WHITESPACE@[20; 21) 26 WHITESPACE@[20; 21)
27 BLOCK_EXPR@[21; 24) 27 BLOCK_EXPR@[21; 23)
28 L_CURLY@[21; 22) 28 L_CURLY@[21; 22)
29 R_CURLY@[22; 23) 29 R_CURLY@[22; 23)
30 WHITESPACE@[23; 24) 30 WHITESPACE@[23; 24)
31 FN_ITEM@[24; 45) 31 FN_ITEM@[24; 44)
32 VISIBILITY@[24; 35) 32 VISIBILITY@[24; 34)
33 PUB_KW@[24; 27) 33 PUB_KW@[24; 27)
34 L_PAREN@[27; 28) 34 L_PAREN@[27; 28)
35 CRATE_KW@[28; 33) 35 CRATE_KW@[28; 33)
36 R_PAREN@[33; 34) 36 R_PAREN@[33; 34)
37 WHITESPACE@[34; 35) 37 WHITESPACE@[34; 35)
38 FN_KW@[35; 37) 38 FN_KW@[35; 37)
39 NAME@[37; 39) 39 WHITESPACE@[37; 38)
40 WHITESPACE@[37; 38) 40 NAME@[38; 39)
41 IDENT@[38; 39) "c" 41 IDENT@[38; 39) "c"
42 PARAM_LIST@[39; 42) 42 PARAM_LIST@[39; 41)
43 L_PAREN@[39; 40) 43 L_PAREN@[39; 40)
44 R_PAREN@[40; 41) 44 R_PAREN@[40; 41)
45 WHITESPACE@[41; 42) 45 WHITESPACE@[41; 42)
46 BLOCK_EXPR@[42; 45) 46 BLOCK_EXPR@[42; 44)
47 L_CURLY@[42; 43) 47 L_CURLY@[42; 43)
48 R_CURLY@[43; 44) 48 R_CURLY@[43; 44)
49 WHITESPACE@[44; 45) 49 WHITESPACE@[44; 45)
50 FN_ITEM@[45; 66) 50 FN_ITEM@[45; 65)
51 VISIBILITY@[45; 56) 51 VISIBILITY@[45; 55)
52 PUB_KW@[45; 48) 52 PUB_KW@[45; 48)
53 L_PAREN@[48; 49) 53 L_PAREN@[48; 49)
54 SUPER_KW@[49; 54) 54 SUPER_KW@[49; 54)
55 R_PAREN@[54; 55) 55 R_PAREN@[54; 55)
56 WHITESPACE@[55; 56) 56 WHITESPACE@[55; 56)
57 FN_KW@[56; 58) 57 FN_KW@[56; 58)
58 NAME@[58; 60) 58 WHITESPACE@[58; 59)
59 WHITESPACE@[58; 59) 59 NAME@[59; 60)
60 IDENT@[59; 60) "d" 60 IDENT@[59; 60) "d"
61 PARAM_LIST@[60; 63) 61 PARAM_LIST@[60; 62)
62 L_PAREN@[60; 61) 62 L_PAREN@[60; 61)
63 R_PAREN@[61; 62) 63 R_PAREN@[61; 62)
64 WHITESPACE@[62; 63) 64 WHITESPACE@[62; 63)
65 BLOCK_EXPR@[63; 66) 65 BLOCK_EXPR@[63; 65)
66 L_CURLY@[63; 64) 66 L_CURLY@[63; 64)
67 R_CURLY@[64; 65) 67 R_CURLY@[64; 65)
68 WHITESPACE@[65; 66) 68 WHITESPACE@[65; 66)
69 FN_ITEM@[66; 98) 69 FN_ITEM@[66; 97)
70 VISIBILITY@[66; 88) 70 VISIBILITY@[66; 87)
71 PUB_KW@[66; 69) 71 PUB_KW@[66; 69)
72 L_PAREN@[69; 70) 72 L_PAREN@[69; 70)
73 IN_KW@[70; 72) 73 IN_KW@[70; 72)
74 PATH@[72; 86) 74 WHITESPACE@[72; 73)
75 PATH@[72; 81) 75 PATH@[73; 86)
76 PATH@[72; 76) 76 PATH@[73; 81)
77 PATH_SEGMENT@[72; 76) 77 PATH@[73; 76)
78 NAME_REF@[72; 76) 78 PATH_SEGMENT@[73; 76)
79 WHITESPACE@[72; 73) 79 NAME_REF@[73; 76)
80 IDENT@[73; 76) "foo" 80 IDENT@[73; 76) "foo"
81 COLONCOLON@[76; 78) 81 COLONCOLON@[76; 78)
82 PATH_SEGMENT@[78; 81) 82 PATH_SEGMENT@[78; 81)
@@ -87,16 +87,16 @@ FILE@[0; 98)
87 NAME_REF@[83; 86) 87 NAME_REF@[83; 86)
88 IDENT@[83; 86) "baz" 88 IDENT@[83; 86) "baz"
89 R_PAREN@[86; 87) 89 R_PAREN@[86; 87)
90 WHITESPACE@[87; 88) 90 WHITESPACE@[87; 88)
91 FN_KW@[88; 90) 91 FN_KW@[88; 90)
92 NAME@[90; 92) 92 WHITESPACE@[90; 91)
93 WHITESPACE@[90; 91) 93 NAME@[91; 92)
94 IDENT@[91; 92) "e" 94 IDENT@[91; 92) "e"
95 PARAM_LIST@[92; 95) 95 PARAM_LIST@[92; 94)
96 L_PAREN@[92; 93) 96 L_PAREN@[92; 93)
97 R_PAREN@[93; 94) 97 R_PAREN@[93; 94)
98 WHITESPACE@[94; 95) 98 WHITESPACE@[94; 95)
99 BLOCK_EXPR@[95; 98) 99 BLOCK_EXPR@[95; 97)
100 L_CURLY@[95; 96) 100 L_CURLY@[95; 96)
101 R_CURLY@[96; 97) 101 R_CURLY@[96; 97)
102 WHITESPACE@[97; 98) 102 WHITESPACE@[97; 98)
diff --git a/tests/data/parser/ok/0013_use_path_self_super.txt b/tests/data/parser/ok/0013_use_path_self_super.txt
index 3542b2164..5ed27ca37 100644
--- a/tests/data/parser/ok/0013_use_path_self_super.txt
+++ b/tests/data/parser/ok/0013_use_path_self_super.txt
@@ -1,26 +1,26 @@
1FILE@[0; 65) 1FILE@[0; 65)
2 USE_ITEM@[0; 15) 2 USE_ITEM@[0; 14)
3 USE_KW@[0; 3) 3 USE_KW@[0; 3)
4 USE_TREE@[3; 13) 4 WHITESPACE@[3; 4)
5 PATH@[3; 13) 5 USE_TREE@[4; 13)
6 PATH@[3; 8) 6 PATH@[4; 13)
7 PATH_SEGMENT@[3; 8) 7 PATH@[4; 8)
8 WHITESPACE@[3; 4) 8 PATH_SEGMENT@[4; 8)
9 SELF_KW@[4; 8) 9 SELF_KW@[4; 8)
10 COLONCOLON@[8; 10) 10 COLONCOLON@[8; 10)
11 PATH_SEGMENT@[10; 13) 11 PATH_SEGMENT@[10; 13)
12 NAME_REF@[10; 13) 12 NAME_REF@[10; 13)
13 IDENT@[10; 13) "foo" 13 IDENT@[10; 13) "foo"
14 SEMI@[13; 14) 14 SEMI@[13; 14)
15 WHITESPACE@[14; 15) 15 WHITESPACE@[14; 15)
16 USE_ITEM@[15; 38) 16 USE_ITEM@[15; 37)
17 USE_KW@[15; 18) 17 USE_KW@[15; 18)
18 USE_TREE@[18; 36) 18 WHITESPACE@[18; 19)
19 PATH@[18; 36) 19 USE_TREE@[19; 36)
20 PATH@[18; 31) 20 PATH@[19; 36)
21 PATH@[18; 24) 21 PATH@[19; 31)
22 PATH_SEGMENT@[18; 24) 22 PATH@[19; 24)
23 WHITESPACE@[18; 19) 23 PATH_SEGMENT@[19; 24)
24 SUPER_KW@[19; 24) 24 SUPER_KW@[19; 24)
25 COLONCOLON@[24; 26) 25 COLONCOLON@[24; 26)
26 PATH_SEGMENT@[26; 31) 26 PATH_SEGMENT@[26; 31)
@@ -30,16 +30,16 @@ FILE@[0; 65)
30 NAME_REF@[33; 36) 30 NAME_REF@[33; 36)
31 IDENT@[33; 36) "bar" 31 IDENT@[33; 36) "bar"
32 SEMI@[36; 37) 32 SEMI@[36; 37)
33 WHITESPACE@[37; 38) 33 WHITESPACE@[37; 38)
34 USE_ITEM@[38; 65) 34 USE_ITEM@[38; 64)
35 USE_KW@[38; 41) 35 USE_KW@[38; 41)
36 USE_TREE@[41; 63) 36 WHITESPACE@[41; 42)
37 PATH@[41; 63) 37 USE_TREE@[42; 63)
38 PATH@[41; 58) 38 PATH@[42; 63)
39 PATH@[41; 51) 39 PATH@[42; 58)
40 PATH@[41; 48) 40 PATH@[42; 51)
41 PATH_SEGMENT@[41; 48) 41 PATH@[42; 48)
42 WHITESPACE@[41; 42) 42 PATH_SEGMENT@[42; 48)
43 COLONCOLON@[42; 44) 43 COLONCOLON@[42; 44)
44 SELF_KW@[44; 48) 44 SELF_KW@[44; 48)
45 COLONCOLON@[48; 50) 45 COLONCOLON@[48; 50)
@@ -54,4 +54,4 @@ FILE@[0; 65)
54 NAME_REF@[60; 63) 54 NAME_REF@[60; 63)
55 IDENT@[60; 63) "bar" 55 IDENT@[60; 63) "bar"
56 SEMI@[63; 64) 56 SEMI@[63; 64)
57 WHITESPACE@[64; 65) 57 WHITESPACE@[64; 65)
diff --git a/tests/data/parser/ok/0014_use_tree.txt b/tests/data/parser/ok/0014_use_tree.txt
index a7326214d..730d5539b 100644
--- a/tests/data/parser/ok/0014_use_tree.txt
+++ b/tests/data/parser/ok/0014_use_tree.txt
@@ -1,67 +1,67 @@
1FILE@[0; 81) 1FILE@[0; 81)
2 USE_ITEM@[0; 7) 2 USE_ITEM@[0; 6)
3 USE_KW@[0; 3) 3 USE_KW@[0; 3)
4 USE_TREE@[3; 5) 4 WHITESPACE@[3; 4)
5 WHITESPACE@[3; 4) 5 USE_TREE@[4; 5)
6 STAR@[4; 5) 6 STAR@[4; 5)
7 SEMI@[5; 6) 7 SEMI@[5; 6)
8 WHITESPACE@[6; 7) 8 WHITESPACE@[6; 7)
9 USE_ITEM@[7; 16) 9 USE_ITEM@[7; 15)
10 USE_KW@[7; 10) 10 USE_KW@[7; 10)
11 USE_TREE@[10; 14) 11 WHITESPACE@[10; 11)
12 WHITESPACE@[10; 11) 12 USE_TREE@[11; 14)
13 COLONCOLON@[11; 13) 13 COLONCOLON@[11; 13)
14 STAR@[13; 14) 14 STAR@[13; 14)
15 SEMI@[14; 15) 15 SEMI@[14; 15)
16 WHITESPACE@[15; 16) 16 WHITESPACE@[15; 16)
17 USE_ITEM@[16; 26) 17 USE_ITEM@[16; 25)
18 USE_KW@[16; 19) 18 USE_KW@[16; 19)
19 USE_TREE@[19; 24) 19 WHITESPACE@[19; 20)
20 WHITESPACE@[19; 20) 20 USE_TREE@[20; 24)
21 COLONCOLON@[20; 22) 21 COLONCOLON@[20; 22)
22 L_CURLY@[22; 23) 22 L_CURLY@[22; 23)
23 R_CURLY@[23; 24) 23 R_CURLY@[23; 24)
24 SEMI@[24; 25) 24 SEMI@[24; 25)
25 WHITESPACE@[25; 26) 25 WHITESPACE@[25; 26)
26 USE_ITEM@[26; 34) 26 USE_ITEM@[26; 33)
27 USE_KW@[26; 29) 27 USE_KW@[26; 29)
28 USE_TREE@[29; 32) 28 WHITESPACE@[29; 30)
29 WHITESPACE@[29; 30) 29 USE_TREE@[30; 32)
30 L_CURLY@[30; 31) 30 L_CURLY@[30; 31)
31 R_CURLY@[31; 32) 31 R_CURLY@[31; 32)
32 SEMI@[32; 33) 32 SEMI@[32; 33)
33 WHITESPACE@[33; 34) 33 WHITESPACE@[33; 34)
34 USE_ITEM@[34; 46) 34 USE_ITEM@[34; 45)
35 USE_KW@[34; 37) 35 USE_KW@[34; 37)
36 USE_TREE@[37; 44) 36 WHITESPACE@[37; 38)
37 PATH@[37; 41) 37 USE_TREE@[38; 44)
38 PATH_SEGMENT@[37; 41) 38 PATH@[38; 41)
39 NAME_REF@[37; 41) 39 PATH_SEGMENT@[38; 41)
40 WHITESPACE@[37; 38) 40 NAME_REF@[38; 41)
41 IDENT@[38; 41) "foo" 41 IDENT@[38; 41) "foo"
42 COLONCOLON@[41; 43) 42 COLONCOLON@[41; 43)
43 STAR@[43; 44) 43 STAR@[43; 44)
44 SEMI@[44; 45) 44 SEMI@[44; 45)
45 WHITESPACE@[45; 46) 45 WHITESPACE@[45; 46)
46 USE_ITEM@[46; 59) 46 USE_ITEM@[46; 58)
47 USE_KW@[46; 49) 47 USE_KW@[46; 49)
48 USE_TREE@[49; 57) 48 WHITESPACE@[49; 50)
49 PATH@[49; 53) 49 USE_TREE@[50; 57)
50 PATH_SEGMENT@[49; 53) 50 PATH@[50; 53)
51 NAME_REF@[49; 53) 51 PATH_SEGMENT@[50; 53)
52 WHITESPACE@[49; 50) 52 NAME_REF@[50; 53)
53 IDENT@[50; 53) "foo" 53 IDENT@[50; 53) "foo"
54 COLONCOLON@[53; 55) 54 COLONCOLON@[53; 55)
55 L_CURLY@[55; 56) 55 L_CURLY@[55; 56)
56 R_CURLY@[56; 57) 56 R_CURLY@[56; 57)
57 SEMI@[57; 58) 57 SEMI@[57; 58)
58 WHITESPACE@[58; 59) 58 WHITESPACE@[58; 59)
59 USE_ITEM@[59; 81) 59 USE_ITEM@[59; 80)
60 USE_KW@[59; 62) 60 USE_KW@[59; 62)
61 USE_TREE@[62; 79) 61 WHITESPACE@[62; 63)
62 PATH@[62; 68) 62 USE_TREE@[63; 79)
63 PATH_SEGMENT@[62; 68) 63 PATH@[63; 68)
64 WHITESPACE@[62; 63) 64 PATH_SEGMENT@[63; 68)
65 COLONCOLON@[63; 65) 65 COLONCOLON@[63; 65)
66 NAME_REF@[65; 68) 66 NAME_REF@[65; 68)
67 IDENT@[65; 68) "foo" 67 IDENT@[65; 68) "foo"
@@ -73,19 +73,19 @@ FILE@[0; 81)
73 NAME_REF@[71; 72) 73 NAME_REF@[71; 72)
74 IDENT@[71; 72) "a" 74 IDENT@[71; 72) "a"
75 COMMA@[72; 73) 75 COMMA@[72; 73)
76 USE_TREE@[73; 75) 76 WHITESPACE@[73; 74)
77 PATH@[73; 75) 77 USE_TREE@[74; 75)
78 PATH_SEGMENT@[73; 75) 78 PATH@[74; 75)
79 NAME_REF@[73; 75) 79 PATH_SEGMENT@[74; 75)
80 WHITESPACE@[73; 74) 80 NAME_REF@[74; 75)
81 IDENT@[74; 75) "b" 81 IDENT@[74; 75) "b"
82 COMMA@[75; 76) 82 COMMA@[75; 76)
83 USE_TREE@[76; 78) 83 WHITESPACE@[76; 77)
84 PATH@[76; 78) 84 USE_TREE@[77; 78)
85 PATH_SEGMENT@[76; 78) 85 PATH@[77; 78)
86 NAME_REF@[76; 78) 86 PATH_SEGMENT@[77; 78)
87 WHITESPACE@[76; 77) 87 NAME_REF@[77; 78)
88 IDENT@[77; 78) "c" 88 IDENT@[77; 78) "c"
89 R_CURLY@[78; 79) 89 R_CURLY@[78; 79)
90 SEMI@[79; 80) 90 SEMI@[79; 80)
91 WHITESPACE@[80; 81) 91 WHITESPACE@[80; 81)
diff --git a/tests/data/parser/ok/0015_use_tree.txt b/tests/data/parser/ok/0015_use_tree.txt
index 2ba15bbee..4438e417b 100644
--- a/tests/data/parser/ok/0015_use_tree.txt
+++ b/tests/data/parser/ok/0015_use_tree.txt
@@ -1,64 +1,64 @@
1FILE@[0; 55) 1FILE@[0; 55)
2 USE_ITEM@[0; 16) 2 USE_ITEM@[0; 15)
3 USE_KW@[0; 3) 3 USE_KW@[0; 3)
4 USE_TREE@[3; 14) 4 WHITESPACE@[3; 4)
5 PATH@[3; 8) 5 USE_TREE@[4; 14)
6 PATH_SEGMENT@[3; 8) 6 PATH@[4; 7)
7 NAME_REF@[3; 8) 7 PATH_SEGMENT@[4; 7)
8 WHITESPACE@[3; 4) 8 NAME_REF@[4; 7)
9 IDENT@[4; 7) "foo" 9 IDENT@[4; 7) "foo"
10 WHITESPACE@[7; 8) 10 WHITESPACE@[7; 8)
11 ALIAS@[8; 14) 11 ALIAS@[8; 14)
12 AS_KW@[8; 10) 12 AS_KW@[8; 10)
13 NAME@[10; 14) 13 WHITESPACE@[10; 11)
14 WHITESPACE@[10; 11) 14 NAME@[11; 14)
15 IDENT@[11; 14) "bar" 15 IDENT@[11; 14) "bar"
16 SEMI@[14; 15) 16 SEMI@[14; 15)
17 WHITESPACE@[15; 16) 17 WHITESPACE@[15; 16)
18 USE_ITEM@[16; 55) 18 USE_ITEM@[16; 54)
19 USE_KW@[16; 19) 19 USE_KW@[16; 19)
20 USE_TREE@[19; 53) 20 WHITESPACE@[19; 20)
21 PATH@[19; 23) 21 USE_TREE@[20; 53)
22 PATH_SEGMENT@[19; 23) 22 PATH@[20; 23)
23 NAME_REF@[19; 23) 23 PATH_SEGMENT@[20; 23)
24 WHITESPACE@[19; 20) 24 NAME_REF@[20; 23)
25 IDENT@[20; 23) "foo" 25 IDENT@[20; 23) "foo"
26 COLONCOLON@[23; 25) 26 COLONCOLON@[23; 25)
27 L_CURLY@[25; 26) 27 L_CURLY@[25; 26)
28 USE_TREE@[26; 32) 28 USE_TREE@[26; 32)
29 PATH@[26; 28) 29 PATH@[26; 27)
30 PATH_SEGMENT@[26; 28) 30 PATH_SEGMENT@[26; 27)
31 NAME_REF@[26; 28) 31 NAME_REF@[26; 27)
32 IDENT@[26; 27) "a" 32 IDENT@[26; 27) "a"
33 WHITESPACE@[27; 28) 33 WHITESPACE@[27; 28)
34 ALIAS@[28; 32) 34 ALIAS@[28; 32)
35 AS_KW@[28; 30) 35 AS_KW@[28; 30)
36 NAME@[30; 32) 36 WHITESPACE@[30; 31)
37 WHITESPACE@[30; 31) 37 NAME@[31; 32)
38 IDENT@[31; 32) "b" 38 IDENT@[31; 32) "b"
39 COMMA@[32; 33) 39 COMMA@[32; 33)
40 USE_TREE@[33; 35) 40 WHITESPACE@[33; 34)
41 WHITESPACE@[33; 34) 41 USE_TREE@[34; 35)
42 STAR@[34; 35) 42 STAR@[34; 35)
43 COMMA@[35; 36) 43 COMMA@[35; 36)
44 USE_TREE@[36; 40) 44 WHITESPACE@[36; 37)
45 WHITESPACE@[36; 37) 45 USE_TREE@[37; 40)
46 COLONCOLON@[37; 39) 46 COLONCOLON@[37; 39)
47 STAR@[39; 40) 47 STAR@[39; 40)
48 COMMA@[40; 41) 48 COMMA@[40; 41)
49 USE_TREE@[41; 52) 49 WHITESPACE@[41; 42)
50 PATH@[41; 48) 50 USE_TREE@[42; 52)
51 PATH_SEGMENT@[41; 48) 51 PATH@[42; 47)
52 WHITESPACE@[41; 42) 52 PATH_SEGMENT@[42; 47)
53 COLONCOLON@[42; 44) 53 COLONCOLON@[42; 44)
54 NAME_REF@[44; 48) 54 NAME_REF@[44; 47)
55 IDENT@[44; 47) "foo" 55 IDENT@[44; 47) "foo"
56 WHITESPACE@[47; 48) 56 WHITESPACE@[47; 48)
57 ALIAS@[48; 52) 57 ALIAS@[48; 52)
58 AS_KW@[48; 50) 58 AS_KW@[48; 50)
59 NAME@[50; 52) 59 WHITESPACE@[50; 51)
60 WHITESPACE@[50; 51) 60 NAME@[51; 52)
61 IDENT@[51; 52) "x" 61 IDENT@[51; 52) "x"
62 R_CURLY@[52; 53) 62 R_CURLY@[52; 53)
63 SEMI@[53; 54) 63 SEMI@[53; 54)
64 WHITESPACE@[54; 55) 64 WHITESPACE@[54; 55)
diff --git a/tests/data/parser/ok/0016_struct_flavors.txt b/tests/data/parser/ok/0016_struct_flavors.txt
index b5101c87d..5dd480d1b 100644
--- a/tests/data/parser/ok/0016_struct_flavors.txt
+++ b/tests/data/parser/ok/0016_struct_flavors.txt
@@ -1,89 +1,89 @@
1FILE@[0; 97) 1FILE@[0; 97)
2 STRUCT_ITEM@[0; 10) 2 STRUCT_ITEM@[0; 9)
3 STRUCT_KW@[0; 6) 3 STRUCT_KW@[0; 6)
4 NAME@[6; 8) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 5 NAME@[7; 8)
6 IDENT@[7; 8) "A" 6 IDENT@[7; 8) "A"
7 SEMI@[8; 9) 7 SEMI@[8; 9)
8 WHITESPACE@[9; 10) 8 WHITESPACE@[9; 10)
9 STRUCT_ITEM@[10; 22) 9 STRUCT_ITEM@[10; 21)
10 STRUCT_KW@[10; 16) 10 STRUCT_KW@[10; 16)
11 NAME@[16; 19) 11 WHITESPACE@[16; 17)
12 WHITESPACE@[16; 17) 12 NAME@[17; 18)
13 IDENT@[17; 18) "B" 13 IDENT@[17; 18) "B"
14 WHITESPACE@[18; 19) 14 WHITESPACE@[18; 19)
15 L_CURLY@[19; 20) 15 L_CURLY@[19; 20)
16 R_CURLY@[20; 21) 16 R_CURLY@[20; 21)
17 WHITESPACE@[21; 22) 17 WHITESPACE@[21; 22)
18 STRUCT_ITEM@[22; 35) 18 STRUCT_ITEM@[22; 33)
19 STRUCT_KW@[22; 28) 19 STRUCT_KW@[22; 28)
20 NAME@[28; 30) 20 WHITESPACE@[28; 29)
21 WHITESPACE@[28; 29) 21 NAME@[29; 30)
22 IDENT@[29; 30) "C" 22 IDENT@[29; 30) "C"
23 L_PAREN@[30; 31) 23 L_PAREN@[30; 31)
24 R_PAREN@[31; 32) 24 R_PAREN@[31; 32)
25 SEMI@[32; 33) 25 SEMI@[32; 33)
26 WHITESPACE@[33; 35) 26 WHITESPACE@[33; 35)
27 STRUCT_ITEM@[35; 76) 27 STRUCT_ITEM@[35; 74)
28 STRUCT_KW@[35; 41) 28 STRUCT_KW@[35; 41)
29 NAME@[41; 44) 29 WHITESPACE@[41; 42)
30 WHITESPACE@[41; 42) 30 NAME@[42; 43)
31 IDENT@[42; 43) "D" 31 IDENT@[42; 43) "D"
32 WHITESPACE@[43; 44) 32 WHITESPACE@[43; 44)
33 L_CURLY@[44; 45) 33 L_CURLY@[44; 45)
34 NAMED_FIELD@[45; 56) 34 WHITESPACE@[45; 50)
35 NAME@[45; 51) 35 NAMED_FIELD@[50; 56)
36 WHITESPACE@[45; 50) 36 NAME@[50; 51)
37 IDENT@[50; 51) "a" 37 IDENT@[50; 51) "a"
38 COLON@[51; 52) 38 COLON@[51; 52)
39 PATH_TYPE@[52; 56) 39 WHITESPACE@[52; 53)
40 PATH@[52; 56) 40 PATH_TYPE@[53; 56)
41 PATH_SEGMENT@[52; 56) 41 PATH@[53; 56)
42 NAME_REF@[52; 56) 42 PATH_SEGMENT@[53; 56)
43 WHITESPACE@[52; 53) 43 NAME_REF@[53; 56)
44 IDENT@[53; 56) "u32" 44 IDENT@[53; 56) "u32"
45 COMMA@[56; 57) 45 COMMA@[56; 57)
46 NAMED_FIELD@[57; 73) 46 WHITESPACE@[57; 62)
47 VISIBILITY@[57; 66) 47 NAMED_FIELD@[62; 72)
48 WHITESPACE@[57; 62) 48 VISIBILITY@[62; 65)
49 PUB_KW@[62; 65) 49 PUB_KW@[62; 65)
50 WHITESPACE@[65; 66) 50 WHITESPACE@[65; 66)
51 NAME@[66; 67) 51 NAME@[66; 67)
52 IDENT@[66; 67) "b" 52 IDENT@[66; 67) "b"
53 COLON@[67; 68) 53 COLON@[67; 68)
54 PATH_TYPE@[68; 73) 54 WHITESPACE@[68; 69)
55 PATH@[68; 73) 55 PATH_TYPE@[69; 72)
56 PATH_SEGMENT@[68; 73) 56 PATH@[69; 72)
57 NAME_REF@[68; 73) 57 PATH_SEGMENT@[69; 72)
58 WHITESPACE@[68; 69) 58 NAME_REF@[69; 72)
59 IDENT@[69; 72) "u32" 59 IDENT@[69; 72) "u32"
60 WHITESPACE@[72; 73) 60 WHITESPACE@[72; 73)
61 R_CURLY@[73; 74) 61 R_CURLY@[73; 74)
62 WHITESPACE@[74; 76) 62 WHITESPACE@[74; 76)
63 STRUCT_ITEM@[76; 97) 63 STRUCT_ITEM@[76; 96)
64 STRUCT_KW@[76; 82) 64 STRUCT_KW@[76; 82)
65 NAME@[82; 84) 65 WHITESPACE@[82; 83)
66 WHITESPACE@[82; 83) 66 NAME@[83; 84)
67 IDENT@[83; 84) "E" 67 IDENT@[83; 84) "E"
68 L_PAREN@[84; 85) 68 L_PAREN@[84; 85)
69 POS_FIELD@[85; 90) 69 POS_FIELD@[85; 90)
70 VISIBILITY@[85; 89) 70 VISIBILITY@[85; 88)
71 PUB_KW@[85; 88) 71 PUB_KW@[85; 88)
72 WHITESPACE@[88; 89) 72 WHITESPACE@[88; 89)
73 PATH_TYPE@[89; 90) 73 PATH_TYPE@[89; 90)
74 PATH@[89; 90) 74 PATH@[89; 90)
75 PATH_SEGMENT@[89; 90) 75 PATH_SEGMENT@[89; 90)
76 NAME_REF@[89; 90) 76 NAME_REF@[89; 90)
77 IDENT@[89; 90) "x" 77 IDENT@[89; 90) "x"
78 COMMA@[90; 91) 78 COMMA@[90; 91)
79 POS_FIELD@[91; 93) 79 WHITESPACE@[91; 92)
80 PATH_TYPE@[91; 93) 80 POS_FIELD@[92; 93)
81 PATH@[91; 93) 81 PATH_TYPE@[92; 93)
82 PATH_SEGMENT@[91; 93) 82 PATH@[92; 93)
83 NAME_REF@[91; 93) 83 PATH_SEGMENT@[92; 93)
84 WHITESPACE@[91; 92) 84 NAME_REF@[92; 93)
85 IDENT@[92; 93) "y" 85 IDENT@[92; 93) "y"
86 COMMA@[93; 94) 86 COMMA@[93; 94)
87 R_PAREN@[94; 95) 87 R_PAREN@[94; 95)
88 SEMI@[95; 96) 88 SEMI@[95; 96)
89 WHITESPACE@[96; 97) 89 WHITESPACE@[96; 97)
diff --git a/tests/data/parser/ok/0017_attr_trailing_comma.txt b/tests/data/parser/ok/0017_attr_trailing_comma.txt
index 3b8b53634..c0e687274 100644
--- a/tests/data/parser/ok/0017_attr_trailing_comma.txt
+++ b/tests/data/parser/ok/0017_attr_trailing_comma.txt
@@ -1,6 +1,6 @@
1FILE@[0; 23) 1FILE@[0; 23)
2 FN_ITEM@[0; 23) 2 FN_ITEM@[0; 22)
3 ATTR@[0; 11) 3 ATTR@[0; 10)
4 POUND@[0; 1) 4 POUND@[0; 1)
5 L_BRACK@[1; 2) 5 L_BRACK@[1; 2)
6 META_ITEM@[2; 9) 6 META_ITEM@[2; 9)
@@ -11,16 +11,16 @@ FILE@[0; 23)
11 COMMA@[7; 8) 11 COMMA@[7; 8)
12 R_PAREN@[8; 9) 12 R_PAREN@[8; 9)
13 R_BRACK@[9; 10) 13 R_BRACK@[9; 10)
14 WHITESPACE@[10; 11) 14 WHITESPACE@[10; 11)
15 FN_KW@[11; 13) 15 FN_KW@[11; 13)
16 NAME@[13; 17) 16 WHITESPACE@[13; 14)
17 WHITESPACE@[13; 14) 17 NAME@[14; 17)
18 IDENT@[14; 17) "foo" 18 IDENT@[14; 17) "foo"
19 PARAM_LIST@[17; 20) 19 PARAM_LIST@[17; 19)
20 L_PAREN@[17; 18) 20 L_PAREN@[17; 18)
21 R_PAREN@[18; 19) 21 R_PAREN@[18; 19)
22 WHITESPACE@[19; 20) 22 WHITESPACE@[19; 20)
23 BLOCK_EXPR@[20; 23) 23 BLOCK_EXPR@[20; 22)
24 L_CURLY@[20; 21) 24 L_CURLY@[20; 21)
25 R_CURLY@[21; 22) 25 R_CURLY@[21; 22)
26 WHITESPACE@[22; 23) 26 WHITESPACE@[22; 23)
diff --git a/tests/data/parser/ok/0018_struct_type_params.txt b/tests/data/parser/ok/0018_struct_type_params.txt
index 1d3b4a576..6457c2639 100644
--- a/tests/data/parser/ok/0018_struct_type_params.txt
+++ b/tests/data/parser/ok/0018_struct_type_params.txt
@@ -1,8 +1,8 @@
1FILE@[0; 290) 1FILE@[0; 290)
2 STRUCT_ITEM@[0; 14) 2 STRUCT_ITEM@[0; 13)
3 STRUCT_KW@[0; 6) 3 STRUCT_KW@[0; 6)
4 NAME@[6; 9) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 5 NAME@[7; 9)
6 IDENT@[7; 9) "S1" 6 IDENT@[7; 9) "S1"
7 TYPE_PARAM_LIST@[9; 12) 7 TYPE_PARAM_LIST@[9; 12)
8 L_ANGLE@[9; 10) 8 L_ANGLE@[9; 10)
@@ -11,11 +11,11 @@ FILE@[0; 290)
11 IDENT@[10; 11) "T" 11 IDENT@[10; 11) "T"
12 R_ANGLE@[11; 12) 12 R_ANGLE@[11; 12)
13 SEMI@[12; 13) 13 SEMI@[12; 13)
14 WHITESPACE@[13; 14) 14 WHITESPACE@[13; 14)
15 STRUCT_ITEM@[14; 33) 15 STRUCT_ITEM@[14; 32)
16 STRUCT_KW@[14; 20) 16 STRUCT_KW@[14; 20)
17 NAME@[20; 23) 17 WHITESPACE@[20; 21)
18 WHITESPACE@[20; 21) 18 NAME@[21; 23)
19 IDENT@[21; 23) "S2" 19 IDENT@[21; 23) "S2"
20 TYPE_PARAM_LIST@[23; 26) 20 TYPE_PARAM_LIST@[23; 26)
21 L_ANGLE@[23; 24) 21 L_ANGLE@[23; 24)
@@ -32,48 +32,48 @@ FILE@[0; 290)
32 IDENT@[27; 30) "u32" 32 IDENT@[27; 30) "u32"
33 R_PAREN@[30; 31) 33 R_PAREN@[30; 31)
34 SEMI@[31; 32) 34 SEMI@[31; 32)
35 WHITESPACE@[32; 33) 35 WHITESPACE@[32; 33)
36 STRUCT_ITEM@[33; 58) 36 STRUCT_ITEM@[33; 56)
37 STRUCT_KW@[33; 39) 37 STRUCT_KW@[33; 39)
38 NAME@[39; 42) 38 WHITESPACE@[39; 40)
39 WHITESPACE@[39; 40) 39 NAME@[40; 42)
40 IDENT@[40; 42) "S3" 40 IDENT@[40; 42) "S3"
41 TYPE_PARAM_LIST@[42; 46) 41 TYPE_PARAM_LIST@[42; 45)
42 L_ANGLE@[42; 43) 42 L_ANGLE@[42; 43)
43 TYPE_PARAM@[43; 44) 43 TYPE_PARAM@[43; 44)
44 NAME@[43; 44) 44 NAME@[43; 44)
45 IDENT@[43; 44) "T" 45 IDENT@[43; 44) "T"
46 R_ANGLE@[44; 45) 46 R_ANGLE@[44; 45)
47 WHITESPACE@[45; 46) 47 WHITESPACE@[45; 46)
48 L_CURLY@[46; 47) 48 L_CURLY@[46; 47)
49 NAMED_FIELD@[47; 55) 49 WHITESPACE@[47; 48)
50 NAME@[47; 49) 50 NAMED_FIELD@[48; 54)
51 WHITESPACE@[47; 48) 51 NAME@[48; 49)
52 IDENT@[48; 49) "u" 52 IDENT@[48; 49) "u"
53 COLON@[49; 50) 53 COLON@[49; 50)
54 PATH_TYPE@[50; 55) 54 WHITESPACE@[50; 51)
55 PATH@[50; 55) 55 PATH_TYPE@[51; 54)
56 PATH_SEGMENT@[50; 55) 56 PATH@[51; 54)
57 NAME_REF@[50; 55) 57 PATH_SEGMENT@[51; 54)
58 WHITESPACE@[50; 51) 58 NAME_REF@[51; 54)
59 IDENT@[51; 54) "u32" 59 IDENT@[51; 54) "u32"
60 WHITESPACE@[54; 55) 60 WHITESPACE@[54; 55)
61 R_CURLY@[55; 56) 61 R_CURLY@[55; 56)
62 WHITESPACE@[56; 58) 62 WHITESPACE@[56; 58)
63 STRUCT_ITEM@[58; 71) 63 STRUCT_ITEM@[58; 70)
64 STRUCT_KW@[58; 64) 64 STRUCT_KW@[58; 64)
65 NAME@[64; 67) 65 WHITESPACE@[64; 65)
66 WHITESPACE@[64; 65) 66 NAME@[65; 67)
67 IDENT@[65; 67) "S4" 67 IDENT@[65; 67) "S4"
68 TYPE_PARAM_LIST@[67; 69) 68 TYPE_PARAM_LIST@[67; 69)
69 L_ANGLE@[67; 68) 69 L_ANGLE@[67; 68)
70 R_ANGLE@[68; 69) 70 R_ANGLE@[68; 69)
71 SEMI@[69; 70) 71 SEMI@[69; 70)
72 WHITESPACE@[70; 71) 72 WHITESPACE@[70; 71)
73 STRUCT_ITEM@[71; 86) 73 STRUCT_ITEM@[71; 85)
74 STRUCT_KW@[71; 77) 74 STRUCT_KW@[71; 77)
75 NAME@[77; 80) 75 WHITESPACE@[77; 78)
76 WHITESPACE@[77; 78) 76 NAME@[78; 80)
77 IDENT@[78; 80) "S5" 77 IDENT@[78; 80) "S5"
78 TYPE_PARAM_LIST@[80; 84) 78 TYPE_PARAM_LIST@[80; 84)
79 L_ANGLE@[80; 81) 79 L_ANGLE@[80; 81)
@@ -81,11 +81,11 @@ FILE@[0; 290)
81 LIFETIME@[81; 83) "'a" 81 LIFETIME@[81; 83) "'a"
82 R_ANGLE@[83; 84) 82 R_ANGLE@[83; 84)
83 SEMI@[84; 85) 83 SEMI@[84; 85)
84 WHITESPACE@[85; 86) 84 WHITESPACE@[85; 86)
85 STRUCT_ITEM@[86; 102) 85 STRUCT_ITEM@[86; 101)
86 STRUCT_KW@[86; 92) 86 STRUCT_KW@[86; 92)
87 NAME@[92; 95) 87 WHITESPACE@[92; 93)
88 WHITESPACE@[92; 93) 88 NAME@[93; 95)
89 IDENT@[93; 95) "S6" 89 IDENT@[93; 95) "S6"
90 TYPE_PARAM_LIST@[95; 100) 90 TYPE_PARAM_LIST@[95; 100)
91 L_ANGLE@[95; 96) 91 L_ANGLE@[95; 96)
@@ -94,11 +94,11 @@ FILE@[0; 290)
94 COLON@[98; 99) 94 COLON@[98; 99)
95 R_ANGLE@[99; 100) 95 R_ANGLE@[99; 100)
96 SEMI@[100; 101) 96 SEMI@[100; 101)
97 WHITESPACE@[101; 102) 97 WHITESPACE@[101; 102)
98 STRUCT_ITEM@[102; 121) 98 STRUCT_ITEM@[102; 120)
99 STRUCT_KW@[102; 108) 99 STRUCT_KW@[102; 108)
100 NAME@[108; 111) 100 WHITESPACE@[108; 109)
101 WHITESPACE@[108; 109) 101 NAME@[109; 111)
102 IDENT@[109; 111) "S7" 102 IDENT@[109; 111) "S7"
103 TYPE_PARAM_LIST@[111; 119) 103 TYPE_PARAM_LIST@[111; 119)
104 L_ANGLE@[111; 112) 104 L_ANGLE@[111; 112)
@@ -109,29 +109,29 @@ FILE@[0; 290)
109 LIFETIME@[116; 118) "'b" 109 LIFETIME@[116; 118) "'b"
110 R_ANGLE@[118; 119) 110 R_ANGLE@[118; 119)
111 SEMI@[119; 120) 111 SEMI@[119; 120)
112 WHITESPACE@[120; 121) 112 WHITESPACE@[120; 121)
113 STRUCT_ITEM@[121; 143) 113 STRUCT_ITEM@[121; 142)
114 STRUCT_KW@[121; 127) 114 STRUCT_KW@[121; 127)
115 NAME@[127; 130) 115 WHITESPACE@[127; 128)
116 WHITESPACE@[127; 128) 116 NAME@[128; 130)
117 IDENT@[128; 130) "S8" 117 IDENT@[128; 130) "S8"
118 TYPE_PARAM_LIST@[130; 141) 118 TYPE_PARAM_LIST@[130; 141)
119 L_ANGLE@[130; 131) 119 L_ANGLE@[130; 131)
120 LIFETIME_PARAM@[131; 140) 120 LIFETIME_PARAM@[131; 139)
121 LIFETIME@[131; 133) "'a" 121 LIFETIME@[131; 133) "'a"
122 COLON@[133; 134) 122 COLON@[133; 134)
123 WHITESPACE@[134; 135) 123 WHITESPACE@[134; 135)
124 LIFETIME@[135; 137) "'b" 124 LIFETIME@[135; 137) "'b"
125 WHITESPACE@[137; 138) 125 WHITESPACE@[137; 138)
126 PLUS@[138; 139) 126 PLUS@[138; 139)
127 WHITESPACE@[139; 140) 127 WHITESPACE@[139; 140)
128 R_ANGLE@[140; 141) 128 R_ANGLE@[140; 141)
129 SEMI@[141; 142) 129 SEMI@[141; 142)
130 WHITESPACE@[142; 143) 130 WHITESPACE@[142; 143)
131 STRUCT_ITEM@[143; 167) 131 STRUCT_ITEM@[143; 166)
132 STRUCT_KW@[143; 149) 132 STRUCT_KW@[143; 149)
133 NAME@[149; 152) 133 WHITESPACE@[149; 150)
134 WHITESPACE@[149; 150) 134 NAME@[150; 152)
135 IDENT@[150; 152) "S9" 135 IDENT@[150; 152) "S9"
136 TYPE_PARAM_LIST@[152; 165) 136 TYPE_PARAM_LIST@[152; 165)
137 L_ANGLE@[152; 153) 137 L_ANGLE@[152; 153)
@@ -146,11 +146,11 @@ FILE@[0; 290)
146 LIFETIME@[162; 164) "'c" 146 LIFETIME@[162; 164) "'c"
147 R_ANGLE@[164; 165) 147 R_ANGLE@[164; 165)
148 SEMI@[165; 166) 148 SEMI@[165; 166)
149 WHITESPACE@[166; 167) 149 WHITESPACE@[166; 167)
150 STRUCT_ITEM@[167; 184) 150 STRUCT_ITEM@[167; 183)
151 STRUCT_KW@[167; 173) 151 STRUCT_KW@[167; 173)
152 NAME@[173; 177) 152 WHITESPACE@[173; 174)
153 WHITESPACE@[173; 174) 153 NAME@[174; 177)
154 IDENT@[174; 177) "S10" 154 IDENT@[174; 177) "S10"
155 TYPE_PARAM_LIST@[177; 182) 155 TYPE_PARAM_LIST@[177; 182)
156 L_ANGLE@[177; 178) 156 L_ANGLE@[177; 178)
@@ -159,27 +159,27 @@ FILE@[0; 290)
159 COMMA@[180; 181) 159 COMMA@[180; 181)
160 R_ANGLE@[181; 182) 160 R_ANGLE@[181; 182)
161 SEMI@[182; 183) 161 SEMI@[182; 183)
162 WHITESPACE@[183; 184) 162 WHITESPACE@[183; 184)
163 STRUCT_ITEM@[184; 204) 163 STRUCT_ITEM@[184; 203)
164 STRUCT_KW@[184; 190) 164 STRUCT_KW@[184; 190)
165 NAME@[190; 194) 165 WHITESPACE@[190; 191)
166 WHITESPACE@[190; 191) 166 NAME@[191; 194)
167 IDENT@[191; 194) "S11" 167 IDENT@[191; 194) "S11"
168 TYPE_PARAM_LIST@[194; 202) 168 TYPE_PARAM_LIST@[194; 202)
169 L_ANGLE@[194; 195) 169 L_ANGLE@[194; 195)
170 LIFETIME_PARAM@[195; 197) 170 LIFETIME_PARAM@[195; 197)
171 LIFETIME@[195; 197) "'a" 171 LIFETIME@[195; 197) "'a"
172 COMMA@[197; 198) 172 COMMA@[197; 198)
173 LIFETIME_PARAM@[198; 201) 173 WHITESPACE@[198; 199)
174 WHITESPACE@[198; 199) 174 LIFETIME_PARAM@[199; 201)
175 LIFETIME@[199; 201) "'b" 175 LIFETIME@[199; 201) "'b"
176 R_ANGLE@[201; 202) 176 R_ANGLE@[201; 202)
177 SEMI@[202; 203) 177 SEMI@[202; 203)
178 WHITESPACE@[203; 204) 178 WHITESPACE@[203; 204)
179 STRUCT_ITEM@[204; 235) 179 STRUCT_ITEM@[204; 233)
180 STRUCT_KW@[204; 210) 180 STRUCT_KW@[204; 210)
181 NAME@[210; 214) 181 WHITESPACE@[210; 211)
182 WHITESPACE@[210; 211) 182 NAME@[211; 214)
183 IDENT@[211; 214) "S12" 183 IDENT@[211; 214) "S12"
184 TYPE_PARAM_LIST@[214; 232) 184 TYPE_PARAM_LIST@[214; 232)
185 L_ANGLE@[214; 215) 185 L_ANGLE@[214; 215)
@@ -190,8 +190,8 @@ FILE@[0; 290)
190 LIFETIME@[219; 221) "'b" 190 LIFETIME@[219; 221) "'b"
191 PLUS@[221; 222) 191 PLUS@[221; 222)
192 COMMA@[222; 223) 192 COMMA@[222; 223)
193 LIFETIME_PARAM@[223; 230) 193 WHITESPACE@[223; 224)
194 WHITESPACE@[223; 224) 194 LIFETIME_PARAM@[224; 230)
195 LIFETIME@[224; 226) "'b" 195 LIFETIME@[224; 226) "'b"
196 COLON@[226; 227) 196 COLON@[226; 227)
197 WHITESPACE@[227; 228) 197 WHITESPACE@[227; 228)
@@ -199,11 +199,11 @@ FILE@[0; 290)
199 COMMA@[230; 231) 199 COMMA@[230; 231)
200 R_ANGLE@[231; 232) 200 R_ANGLE@[231; 232)
201 SEMI@[232; 233) 201 SEMI@[232; 233)
202 WHITESPACE@[233; 235) 202 WHITESPACE@[233; 235)
203 STRUCT_ITEM@[235; 250) 203 STRUCT_ITEM@[235; 249)
204 STRUCT_KW@[235; 241) 204 STRUCT_KW@[235; 241)
205 NAME@[241; 245) 205 WHITESPACE@[241; 242)
206 WHITESPACE@[241; 242) 206 NAME@[242; 245)
207 IDENT@[242; 245) "S13" 207 IDENT@[242; 245) "S13"
208 TYPE_PARAM_LIST@[245; 248) 208 TYPE_PARAM_LIST@[245; 248)
209 L_ANGLE@[245; 246) 209 L_ANGLE@[245; 246)
@@ -212,11 +212,11 @@ FILE@[0; 290)
212 IDENT@[246; 247) "T" 212 IDENT@[246; 247) "T"
213 R_ANGLE@[247; 248) 213 R_ANGLE@[247; 248)
214 SEMI@[248; 249) 214 SEMI@[248; 249)
215 WHITESPACE@[249; 250) 215 WHITESPACE@[249; 250)
216 STRUCT_ITEM@[250; 268) 216 STRUCT_ITEM@[250; 267)
217 STRUCT_KW@[250; 256) 217 STRUCT_KW@[250; 256)
218 NAME@[256; 260) 218 WHITESPACE@[256; 257)
219 WHITESPACE@[256; 257) 219 NAME@[257; 260)
220 IDENT@[257; 260) "S14" 220 IDENT@[257; 260) "S14"
221 TYPE_PARAM_LIST@[260; 266) 221 TYPE_PARAM_LIST@[260; 266)
222 L_ANGLE@[260; 261) 222 L_ANGLE@[260; 261)
@@ -224,32 +224,32 @@ FILE@[0; 290)
224 NAME@[261; 262) 224 NAME@[261; 262)
225 IDENT@[261; 262) "T" 225 IDENT@[261; 262) "T"
226 COMMA@[262; 263) 226 COMMA@[262; 263)
227 TYPE_PARAM@[263; 265) 227 WHITESPACE@[263; 264)
228 NAME@[263; 265) 228 TYPE_PARAM@[264; 265)
229 WHITESPACE@[263; 264) 229 NAME@[264; 265)
230 IDENT@[264; 265) "U" 230 IDENT@[264; 265) "U"
231 R_ANGLE@[265; 266) 231 R_ANGLE@[265; 266)
232 SEMI@[266; 267) 232 SEMI@[266; 267)
233 WHITESPACE@[267; 268) 233 WHITESPACE@[267; 268)
234 STRUCT_ITEM@[268; 290) 234 STRUCT_ITEM@[268; 289)
235 STRUCT_KW@[268; 274) 235 STRUCT_KW@[268; 274)
236 NAME@[274; 278) 236 WHITESPACE@[274; 275)
237 WHITESPACE@[274; 275) 237 NAME@[275; 278)
238 IDENT@[275; 278) "S15" 238 IDENT@[275; 278) "S15"
239 TYPE_PARAM_LIST@[278; 288) 239 TYPE_PARAM_LIST@[278; 288)
240 L_ANGLE@[278; 279) 240 L_ANGLE@[278; 279)
241 LIFETIME_PARAM@[279; 281) 241 LIFETIME_PARAM@[279; 281)
242 LIFETIME@[279; 281) "'a" 242 LIFETIME@[279; 281) "'a"
243 COMMA@[281; 282) 243 COMMA@[281; 282)
244 TYPE_PARAM@[282; 284) 244 WHITESPACE@[282; 283)
245 NAME@[282; 284) 245 TYPE_PARAM@[283; 284)
246 WHITESPACE@[282; 283) 246 NAME@[283; 284)
247 IDENT@[283; 284) "T" 247 IDENT@[283; 284) "T"
248 COMMA@[284; 285) 248 COMMA@[284; 285)
249 TYPE_PARAM@[285; 287) 249 WHITESPACE@[285; 286)
250 NAME@[285; 287) 250 TYPE_PARAM@[286; 287)
251 WHITESPACE@[285; 286) 251 NAME@[286; 287)
252 IDENT@[286; 287) "U" 252 IDENT@[286; 287) "U"
253 R_ANGLE@[287; 288) 253 R_ANGLE@[287; 288)
254 SEMI@[288; 289) 254 SEMI@[288; 289)
255 WHITESPACE@[289; 290) 255 WHITESPACE@[289; 290)
diff --git a/tests/data/parser/ok/0019_enums.txt b/tests/data/parser/ok/0019_enums.txt
index 83df2d1da..8650381cd 100644
--- a/tests/data/parser/ok/0019_enums.txt
+++ b/tests/data/parser/ok/0019_enums.txt
@@ -1,128 +1,128 @@
1FILE@[0; 182) 1FILE@[0; 182)
2 ENUM_ITEM@[0; 13) 2 ENUM_ITEM@[0; 11)
3 ENUM_KW@[0; 4) 3 ENUM_KW@[0; 4)
4 NAME@[4; 8) 4 WHITESPACE@[4; 5)
5 WHITESPACE@[4; 5) 5 NAME@[5; 7)
6 IDENT@[5; 7) "E1" 6 IDENT@[5; 7) "E1"
7 WHITESPACE@[7; 8) 7 WHITESPACE@[7; 8)
8 L_CURLY@[8; 9) 8 L_CURLY@[8; 9)
9 WHITESPACE@[9; 10) 9 WHITESPACE@[9; 10)
10 R_CURLY@[10; 11) 10 R_CURLY@[10; 11)
11 WHITESPACE@[11; 13) 11 WHITESPACE@[11; 13)
12 ENUM_ITEM@[13; 29) 12 ENUM_ITEM@[13; 27)
13 ENUM_KW@[13; 17) 13 ENUM_KW@[13; 17)
14 NAME@[17; 20) 14 WHITESPACE@[17; 18)
15 WHITESPACE@[17; 18) 15 NAME@[18; 20)
16 IDENT@[18; 20) "E2" 16 IDENT@[18; 20) "E2"
17 TYPE_PARAM_LIST@[20; 24) 17 TYPE_PARAM_LIST@[20; 23)
18 L_ANGLE@[20; 21) 18 L_ANGLE@[20; 21)
19 TYPE_PARAM@[21; 22) 19 TYPE_PARAM@[21; 22)
20 NAME@[21; 22) 20 NAME@[21; 22)
21 IDENT@[21; 22) "T" 21 IDENT@[21; 22) "T"
22 R_ANGLE@[22; 23) 22 R_ANGLE@[22; 23)
23 WHITESPACE@[23; 24) 23 WHITESPACE@[23; 24)
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 WHITESPACE@[27; 29) 27 WHITESPACE@[27; 29)
28 ENUM_ITEM@[29; 48) 28 ENUM_ITEM@[29; 46)
29 ENUM_KW@[29; 33) 29 ENUM_KW@[29; 33)
30 NAME@[33; 37) 30 WHITESPACE@[33; 34)
31 WHITESPACE@[33; 34) 31 NAME@[34; 36)
32 IDENT@[34; 36) "E3" 32 IDENT@[34; 36) "E3"
33 WHITESPACE@[36; 37) 33 WHITESPACE@[36; 37)
34 L_CURLY@[37; 38) 34 L_CURLY@[37; 38)
35 ENUM_VARIANT@[38; 45) 35 WHITESPACE@[38; 43)
36 NAME@[38; 45) 36 ENUM_VARIANT@[43; 44)
37 WHITESPACE@[38; 43) 37 NAME@[43; 44)
38 IDENT@[43; 44) "X" 38 IDENT@[43; 44) "X"
39 WHITESPACE@[44; 45) 39 WHITESPACE@[44; 45)
40 R_CURLY@[45; 46) 40 R_CURLY@[45; 46)
41 WHITESPACE@[46; 48) 41 WHITESPACE@[46; 48)
42 ENUM_ITEM@[48; 68) 42 ENUM_ITEM@[48; 66)
43 ENUM_KW@[48; 52) 43 ENUM_KW@[48; 52)
44 NAME@[52; 56) 44 WHITESPACE@[52; 53)
45 WHITESPACE@[52; 53) 45 NAME@[53; 55)
46 IDENT@[53; 55) "E4" 46 IDENT@[53; 55) "E4"
47 WHITESPACE@[55; 56) 47 WHITESPACE@[55; 56)
48 L_CURLY@[56; 57) 48 L_CURLY@[56; 57)
49 ENUM_VARIANT@[57; 63) 49 WHITESPACE@[57; 62)
50 NAME@[57; 63) 50 ENUM_VARIANT@[62; 63)
51 WHITESPACE@[57; 62) 51 NAME@[62; 63)
52 IDENT@[62; 63) "X" 52 IDENT@[62; 63) "X"
53 COMMA@[63; 64) 53 COMMA@[63; 64)
54 WHITESPACE@[64; 65) 54 WHITESPACE@[64; 65)
55 R_CURLY@[65; 66) 55 R_CURLY@[65; 66)
56 WHITESPACE@[66; 68) 56 WHITESPACE@[66; 68)
57 ENUM_ITEM@[68; 182) 57 ENUM_ITEM@[68; 181)
58 ENUM_KW@[68; 72) 58 ENUM_KW@[68; 72)
59 NAME@[72; 76) 59 WHITESPACE@[72; 73)
60 WHITESPACE@[72; 73) 60 NAME@[73; 75)
61 IDENT@[73; 75) "E5" 61 IDENT@[73; 75) "E5"
62 WHITESPACE@[75; 76) 62 WHITESPACE@[75; 76)
63 L_CURLY@[76; 77) 63 L_CURLY@[76; 77)
64 ENUM_VARIANT@[77; 83) 64 WHITESPACE@[77; 82)
65 NAME@[77; 83) 65 ENUM_VARIANT@[82; 83)
66 WHITESPACE@[77; 82) 66 NAME@[82; 83)
67 IDENT@[82; 83) "A" 67 IDENT@[82; 83) "A"
68 COMMA@[83; 84) 68 COMMA@[83; 84)
69 ENUM_VARIANT@[84; 95) 69 WHITESPACE@[84; 89)
70 NAME@[84; 91) 70 ENUM_VARIANT@[89; 95)
71 WHITESPACE@[84; 89) 71 NAME@[89; 90)
72 IDENT@[89; 90) "B" 72 IDENT@[89; 90) "B"
73 WHITESPACE@[90; 91) 73 WHITESPACE@[90; 91)
74 EQ@[91; 92) 74 EQ@[91; 92)
75 LITERAL@[92; 95) 75 WHITESPACE@[92; 93)
76 WHITESPACE@[92; 93) 76 LITERAL@[93; 95)
77 INT_NUMBER@[93; 95) "92" 77 INT_NUMBER@[93; 95) "92"
78 COMMA@[95; 96) 78 COMMA@[95; 96)
79 ENUM_VARIANT@[96; 146) 79 WHITESPACE@[96; 101)
80 NAME@[96; 103) 80 ENUM_VARIANT@[101; 146)
81 WHITESPACE@[96; 101) 81 NAME@[101; 102)
82 IDENT@[101; 102) "C" 82 IDENT@[101; 102) "C"
83 WHITESPACE@[102; 103) 83 WHITESPACE@[102; 103)
84 L_CURLY@[103; 104) 84 L_CURLY@[103; 104)
85 NAMED_FIELD@[104; 119) 85 WHITESPACE@[104; 113)
86 NAME@[104; 114) 86 NAMED_FIELD@[113; 119)
87 WHITESPACE@[104; 113) 87 NAME@[113; 114)
88 IDENT@[113; 114) "a" 88 IDENT@[113; 114) "a"
89 COLON@[114; 115) 89 COLON@[114; 115)
90 PATH_TYPE@[115; 119) 90 WHITESPACE@[115; 116)
91 PATH@[115; 119) 91 PATH_TYPE@[116; 119)
92 PATH_SEGMENT@[115; 119) 92 PATH@[116; 119)
93 NAME_REF@[115; 119) 93 PATH_SEGMENT@[116; 119)
94 WHITESPACE@[115; 116) 94 NAME_REF@[116; 119)
95 IDENT@[116; 119) "u32" 95 IDENT@[116; 119) "u32"
96 COMMA@[119; 120) 96 COMMA@[119; 120)
97 NAMED_FIELD@[120; 139) 97 WHITESPACE@[120; 129)
98 VISIBILITY@[120; 133) 98 NAMED_FIELD@[129; 139)
99 WHITESPACE@[120; 129) 99 VISIBILITY@[129; 132)
100 PUB_KW@[129; 132) 100 PUB_KW@[129; 132)
101 WHITESPACE@[132; 133) 101 WHITESPACE@[132; 133)
102 NAME@[133; 134) 102 NAME@[133; 134)
103 IDENT@[133; 134) "b" 103 IDENT@[133; 134) "b"
104 COLON@[134; 135) 104 COLON@[134; 135)
105 PATH_TYPE@[135; 139) 105 WHITESPACE@[135; 136)
106 PATH@[135; 139) 106 PATH_TYPE@[136; 139)
107 PATH_SEGMENT@[135; 139) 107 PATH@[136; 139)
108 NAME_REF@[135; 139) 108 PATH_SEGMENT@[136; 139)
109 WHITESPACE@[135; 136) 109 NAME_REF@[136; 139)
110 IDENT@[136; 139) "f64" 110 IDENT@[136; 139) "f64"
111 COMMA@[139; 140) 111 COMMA@[139; 140)
112 WHITESPACE@[140; 145) 112 WHITESPACE@[140; 145)
113 R_CURLY@[145; 146) 113 R_CURLY@[145; 146)
114 COMMA@[146; 147) 114 COMMA@[146; 147)
115 ENUM_VARIANT@[147; 156) 115 WHITESPACE@[147; 152)
116 NAME@[147; 154) 116 ENUM_VARIANT@[152; 156)
117 WHITESPACE@[147; 152) 117 NAME@[152; 153)
118 IDENT@[152; 153) "F" 118 IDENT@[152; 153) "F"
119 WHITESPACE@[153; 154) 119 WHITESPACE@[153; 154)
120 L_CURLY@[154; 155) 120 L_CURLY@[154; 155)
121 R_CURLY@[155; 156) 121 R_CURLY@[155; 156)
122 COMMA@[156; 157) 122 COMMA@[156; 157)
123 ENUM_VARIANT@[157; 169) 123 WHITESPACE@[157; 162)
124 NAME@[157; 163) 124 ENUM_VARIANT@[162; 169)
125 WHITESPACE@[157; 162) 125 NAME@[162; 163)
126 IDENT@[162; 163) "D" 126 IDENT@[162; 163) "D"
127 L_PAREN@[163; 164) 127 L_PAREN@[163; 164)
128 POS_FIELD@[164; 167) 128 POS_FIELD@[164; 167)
@@ -134,13 +134,13 @@ FILE@[0; 182)
134 COMMA@[167; 168) 134 COMMA@[167; 168)
135 R_PAREN@[168; 169) 135 R_PAREN@[168; 169)
136 COMMA@[169; 170) 136 COMMA@[169; 170)
137 ENUM_VARIANT@[170; 178) 137 WHITESPACE@[170; 175)
138 NAME@[170; 176) 138 ENUM_VARIANT@[175; 178)
139 WHITESPACE@[170; 175) 139 NAME@[175; 176)
140 IDENT@[175; 176) "E" 140 IDENT@[175; 176) "E"
141 L_PAREN@[176; 177) 141 L_PAREN@[176; 177)
142 R_PAREN@[177; 178) 142 R_PAREN@[177; 178)
143 COMMA@[178; 179) 143 COMMA@[178; 179)
144 WHITESPACE@[179; 180) 144 WHITESPACE@[179; 180)
145 R_CURLY@[180; 181) 145 R_CURLY@[180; 181)
146 WHITESPACE@[181; 182) 146 WHITESPACE@[181; 182)
diff --git a/tests/data/parser/ok/0020_type_param_bounds.txt b/tests/data/parser/ok/0020_type_param_bounds.txt
index 9ff2df578..fe12cbb94 100644
--- a/tests/data/parser/ok/0020_type_param_bounds.txt
+++ b/tests/data/parser/ok/0020_type_param_bounds.txt
@@ -1,8 +1,8 @@
1FILE@[0; 200) 1FILE@[0; 200)
2 STRUCT_ITEM@[0; 13) 2 STRUCT_ITEM@[0; 12)
3 STRUCT_KW@[0; 6) 3 STRUCT_KW@[0; 6)
4 NAME@[6; 8) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 5 NAME@[7; 8)
6 IDENT@[7; 8) "A" 6 IDENT@[7; 8) "A"
7 TYPE_PARAM_LIST@[8; 11) 7 TYPE_PARAM_LIST@[8; 11)
8 L_ANGLE@[8; 9) 8 L_ANGLE@[8; 9)
@@ -11,11 +11,11 @@ FILE@[0; 200)
11 IDENT@[9; 10) "T" 11 IDENT@[9; 10) "T"
12 R_ANGLE@[10; 11) 12 R_ANGLE@[10; 11)
13 SEMI@[11; 12) 13 SEMI@[11; 12)
14 WHITESPACE@[12; 13) 14 WHITESPACE@[12; 13)
15 STRUCT_ITEM@[13; 27) 15 STRUCT_ITEM@[13; 26)
16 STRUCT_KW@[13; 19) 16 STRUCT_KW@[13; 19)
17 NAME@[19; 21) 17 WHITESPACE@[19; 20)
18 WHITESPACE@[19; 20) 18 NAME@[20; 21)
19 IDENT@[20; 21) "B" 19 IDENT@[20; 21) "B"
20 TYPE_PARAM_LIST@[21; 25) 20 TYPE_PARAM_LIST@[21; 25)
21 L_ANGLE@[21; 22) 21 L_ANGLE@[21; 22)
@@ -25,11 +25,11 @@ FILE@[0; 200)
25 COLON@[23; 24) 25 COLON@[23; 24)
26 R_ANGLE@[24; 25) 26 R_ANGLE@[24; 25)
27 SEMI@[25; 26) 27 SEMI@[25; 26)
28 WHITESPACE@[26; 27) 28 WHITESPACE@[26; 27)
29 STRUCT_ITEM@[27; 44) 29 STRUCT_ITEM@[27; 43)
30 STRUCT_KW@[27; 33) 30 STRUCT_KW@[27; 33)
31 NAME@[33; 35) 31 WHITESPACE@[33; 34)
32 WHITESPACE@[33; 34) 32 NAME@[34; 35)
33 IDENT@[34; 35) "C" 33 IDENT@[34; 35) "C"
34 TYPE_PARAM_LIST@[35; 42) 34 TYPE_PARAM_LIST@[35; 42)
35 L_ANGLE@[35; 36) 35 L_ANGLE@[35; 36)
@@ -41,15 +41,15 @@ FILE@[0; 200)
41 LIFETIME@[39; 41) "'a" 41 LIFETIME@[39; 41) "'a"
42 R_ANGLE@[41; 42) 42 R_ANGLE@[41; 42)
43 SEMI@[42; 43) 43 SEMI@[42; 43)
44 WHITESPACE@[43; 44) 44 WHITESPACE@[43; 44)
45 STRUCT_ITEM@[44; 64) 45 STRUCT_ITEM@[44; 63)
46 STRUCT_KW@[44; 50) 46 STRUCT_KW@[44; 50)
47 NAME@[50; 52) 47 WHITESPACE@[50; 51)
48 WHITESPACE@[50; 51) 48 NAME@[51; 52)
49 IDENT@[51; 52) "D" 49 IDENT@[51; 52) "D"
50 TYPE_PARAM_LIST@[52; 62) 50 TYPE_PARAM_LIST@[52; 62)
51 L_ANGLE@[52; 53) 51 L_ANGLE@[52; 53)
52 TYPE_PARAM@[53; 61) 52 TYPE_PARAM@[53; 60)
53 NAME@[53; 54) 53 NAME@[53; 54)
54 IDENT@[53; 54) "T" 54 IDENT@[53; 54) "T"
55 COLON@[54; 55) 55 COLON@[54; 55)
@@ -57,18 +57,18 @@ FILE@[0; 200)
57 LIFETIME@[56; 58) "'a" 57 LIFETIME@[56; 58) "'a"
58 WHITESPACE@[58; 59) 58 WHITESPACE@[58; 59)
59 PLUS@[59; 60) 59 PLUS@[59; 60)
60 WHITESPACE@[60; 61) 60 WHITESPACE@[60; 61)
61 R_ANGLE@[61; 62) 61 R_ANGLE@[61; 62)
62 SEMI@[62; 63) 62 SEMI@[62; 63)
63 WHITESPACE@[63; 64) 63 WHITESPACE@[63; 64)
64 STRUCT_ITEM@[64; 87) 64 STRUCT_ITEM@[64; 86)
65 STRUCT_KW@[64; 70) 65 STRUCT_KW@[64; 70)
66 NAME@[70; 72) 66 WHITESPACE@[70; 71)
67 WHITESPACE@[70; 71) 67 NAME@[71; 72)
68 IDENT@[71; 72) "E" 68 IDENT@[71; 72) "E"
69 TYPE_PARAM_LIST@[72; 85) 69 TYPE_PARAM_LIST@[72; 85)
70 L_ANGLE@[72; 73) 70 L_ANGLE@[72; 73)
71 TYPE_PARAM@[73; 84) 71 TYPE_PARAM@[73; 83)
72 NAME@[73; 74) 72 NAME@[73; 74)
73 IDENT@[73; 74) "T" 73 IDENT@[73; 74) "T"
74 COLON@[74; 75) 74 COLON@[74; 75)
@@ -78,14 +78,14 @@ FILE@[0; 200)
78 PLUS@[79; 80) 78 PLUS@[79; 80)
79 WHITESPACE@[80; 81) 79 WHITESPACE@[80; 81)
80 LIFETIME@[81; 83) "'d" 80 LIFETIME@[81; 83) "'d"
81 WHITESPACE@[83; 84) 81 WHITESPACE@[83; 84)
82 R_ANGLE@[84; 85) 82 R_ANGLE@[84; 85)
83 SEMI@[85; 86) 83 SEMI@[85; 86)
84 WHITESPACE@[86; 87) 84 WHITESPACE@[86; 87)
85 STRUCT_ITEM@[87; 117) 85 STRUCT_ITEM@[87; 116)
86 STRUCT_KW@[87; 93) 86 STRUCT_KW@[87; 93)
87 NAME@[93; 95) 87 WHITESPACE@[93; 94)
88 WHITESPACE@[93; 94) 88 NAME@[94; 95)
89 IDENT@[94; 95) "F" 89 IDENT@[94; 95) "F"
90 TYPE_PARAM_LIST@[95; 115) 90 TYPE_PARAM_LIST@[95; 115)
91 L_ANGLE@[95; 96) 91 L_ANGLE@[95; 96)
@@ -101,18 +101,18 @@ FILE@[0; 200)
101 LIFETIME@[104; 106) "'d" 101 LIFETIME@[104; 106) "'d"
102 WHITESPACE@[106; 107) 102 WHITESPACE@[106; 107)
103 PLUS@[107; 108) 103 PLUS@[107; 108)
104 PATH@[108; 114) 104 WHITESPACE@[108; 109)
105 PATH_SEGMENT@[108; 114) 105 PATH@[109; 114)
106 NAME_REF@[108; 114) 106 PATH_SEGMENT@[109; 114)
107 WHITESPACE@[108; 109) 107 NAME_REF@[109; 114)
108 IDENT@[109; 114) "Clone" 108 IDENT@[109; 114) "Clone"
109 R_ANGLE@[114; 115) 109 R_ANGLE@[114; 115)
110 SEMI@[115; 116) 110 SEMI@[115; 116)
111 WHITESPACE@[116; 117) 111 WHITESPACE@[116; 117)
112 STRUCT_ITEM@[117; 144) 112 STRUCT_ITEM@[117; 143)
113 STRUCT_KW@[117; 123) 113 STRUCT_KW@[117; 123)
114 NAME@[123; 125) 114 WHITESPACE@[123; 124)
115 WHITESPACE@[123; 124) 115 NAME@[124; 125)
116 IDENT@[124; 125) "G" 116 IDENT@[124; 125) "G"
117 TYPE_PARAM_LIST@[125; 142) 117 TYPE_PARAM_LIST@[125; 142)
118 L_ANGLE@[125; 126) 118 L_ANGLE@[125; 126)
@@ -120,25 +120,25 @@ FILE@[0; 200)
120 NAME@[126; 127) 120 NAME@[126; 127)
121 IDENT@[126; 127) "T" 121 IDENT@[126; 127) "T"
122 COLON@[127; 128) 122 COLON@[127; 128)
123 PATH@[128; 135) 123 WHITESPACE@[128; 129)
124 PATH_SEGMENT@[128; 135) 124 PATH@[129; 134)
125 NAME_REF@[128; 135) 125 PATH_SEGMENT@[129; 134)
126 WHITESPACE@[128; 129) 126 NAME_REF@[129; 134)
127 IDENT@[129; 134) "Clone" 127 IDENT@[129; 134) "Clone"
128 WHITESPACE@[134; 135) 128 WHITESPACE@[134; 135)
129 PLUS@[135; 136) 129 PLUS@[135; 136)
130 PATH@[136; 141) 130 WHITESPACE@[136; 137)
131 PATH_SEGMENT@[136; 141) 131 PATH@[137; 141)
132 NAME_REF@[136; 141) 132 PATH_SEGMENT@[137; 141)
133 WHITESPACE@[136; 137) 133 NAME_REF@[137; 141)
134 IDENT@[137; 141) "Copy" 134 IDENT@[137; 141) "Copy"
135 R_ANGLE@[141; 142) 135 R_ANGLE@[141; 142)
136 SEMI@[142; 143) 136 SEMI@[142; 143)
137 WHITESPACE@[143; 144) 137 WHITESPACE@[143; 144)
138 STRUCT_ITEM@[144; 181) 138 STRUCT_ITEM@[144; 180)
139 STRUCT_KW@[144; 150) 139 STRUCT_KW@[144; 150)
140 NAME@[150; 152) 140 WHITESPACE@[150; 151)
141 WHITESPACE@[150; 151) 141 NAME@[151; 152)
142 IDENT@[151; 152) "H" 142 IDENT@[151; 152) "H"
143 TYPE_PARAM_LIST@[152; 179) 143 TYPE_PARAM_LIST@[152; 179)
144 L_ANGLE@[152; 153) 144 L_ANGLE@[152; 153)
@@ -146,34 +146,34 @@ FILE@[0; 200)
146 NAME@[153; 154) 146 NAME@[153; 154)
147 IDENT@[153; 154) "T" 147 IDENT@[153; 154) "T"
148 COLON@[154; 155) 148 COLON@[154; 155)
149 PATH@[155; 162) 149 WHITESPACE@[155; 156)
150 PATH_SEGMENT@[155; 162) 150 PATH@[156; 161)
151 WHITESPACE@[155; 156) 151 PATH_SEGMENT@[156; 161)
152 COLONCOLON@[156; 158) 152 COLONCOLON@[156; 158)
153 NAME_REF@[158; 162) 153 NAME_REF@[158; 161)
154 IDENT@[158; 161) "Foo" 154 IDENT@[158; 161) "Foo"
155 WHITESPACE@[161; 162) 155 WHITESPACE@[161; 162)
156 PLUS@[162; 163) 156 PLUS@[162; 163)
157 PATH@[163; 174) 157 WHITESPACE@[163; 164)
158 PATH@[163; 168) 158 PATH@[164; 173)
159 PATH_SEGMENT@[163; 168) 159 PATH@[164; 168)
160 WHITESPACE@[163; 164) 160 PATH_SEGMENT@[164; 168)
161 SELF_KW@[164; 168) 161 SELF_KW@[164; 168)
162 COLONCOLON@[168; 170) 162 COLONCOLON@[168; 170)
163 PATH_SEGMENT@[170; 174) 163 PATH_SEGMENT@[170; 173)
164 NAME_REF@[170; 174) 164 NAME_REF@[170; 173)
165 IDENT@[170; 173) "Bar" 165 IDENT@[170; 173) "Bar"
166 WHITESPACE@[173; 174) 166 WHITESPACE@[173; 174)
167 PLUS@[174; 175) 167 PLUS@[174; 175)
168 WHITESPACE@[175; 176) 168 WHITESPACE@[175; 176)
169 LIFETIME@[176; 178) "'a" 169 LIFETIME@[176; 178) "'a"
170 R_ANGLE@[178; 179) 170 R_ANGLE@[178; 179)
171 SEMI@[179; 180) 171 SEMI@[179; 180)
172 WHITESPACE@[180; 181) 172 WHITESPACE@[180; 181)
173 STRUCT_ITEM@[181; 200) 173 STRUCT_ITEM@[181; 199)
174 STRUCT_KW@[181; 187) 174 STRUCT_KW@[181; 187)
175 NAME@[187; 189) 175 WHITESPACE@[187; 188)
176 WHITESPACE@[187; 188) 176 NAME@[188; 189)
177 IDENT@[188; 189) "I" 177 IDENT@[188; 189) "I"
178 TYPE_PARAM_LIST@[189; 198) 178 TYPE_PARAM_LIST@[189; 198)
179 L_ANGLE@[189; 190) 179 L_ANGLE@[189; 190)
@@ -182,12 +182,12 @@ FILE@[0; 200)
182 IDENT@[190; 191) "T" 182 IDENT@[190; 191) "T"
183 COLON@[191; 192) 183 COLON@[191; 192)
184 COMMA@[192; 193) 184 COMMA@[192; 193)
185 TYPE_PARAM@[193; 196) 185 WHITESPACE@[193; 194)
186 NAME@[193; 195) 186 TYPE_PARAM@[194; 196)
187 WHITESPACE@[193; 194) 187 NAME@[194; 195)
188 IDENT@[194; 195) "U" 188 IDENT@[194; 195) "U"
189 COLON@[195; 196) 189 COLON@[195; 196)
190 COMMA@[196; 197) 190 COMMA@[196; 197)
191 R_ANGLE@[197; 198) 191 R_ANGLE@[197; 198)
192 SEMI@[198; 199) 192 SEMI@[198; 199)
193 WHITESPACE@[199; 200) 193 WHITESPACE@[199; 200)
diff --git a/tests/data/parser/ok/0021_extern_fn.txt b/tests/data/parser/ok/0021_extern_fn.txt
index c623253a4..241e458ae 100644
--- a/tests/data/parser/ok/0021_extern_fn.txt
+++ b/tests/data/parser/ok/0021_extern_fn.txt
@@ -1,56 +1,56 @@
1FILE@[0; 71) 1FILE@[0; 71)
2 FN_ITEM@[0; 21) 2 FN_ITEM@[0; 19)
3 ABI@[0; 7) 3 ABI@[0; 6)
4 EXTERN_KW@[0; 6) 4 EXTERN_KW@[0; 6)
5 WHITESPACE@[6; 7) 5 WHITESPACE@[6; 7)
6 FN_KW@[7; 9) 6 FN_KW@[7; 9)
7 NAME@[9; 13) 7 WHITESPACE@[9; 10)
8 WHITESPACE@[9; 10) 8 NAME@[10; 13)
9 IDENT@[10; 13) "foo" 9 IDENT@[10; 13) "foo"
10 PARAM_LIST@[13; 16) 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; 21) 14 BLOCK_EXPR@[16; 19)
15 L_CURLY@[16; 17) 15 L_CURLY@[16; 17)
16 WHITESPACE@[17; 18) 16 WHITESPACE@[17; 18)
17 R_CURLY@[18; 19) 17 R_CURLY@[18; 19)
18 WHITESPACE@[19; 21) 18 WHITESPACE@[19; 21)
19 FN_ITEM@[21; 46) 19 FN_ITEM@[21; 44)
20 ABI@[21; 32) 20 ABI@[21; 31)
21 EXTERN_KW@[21; 27) 21 EXTERN_KW@[21; 27)
22 WHITESPACE@[27; 28) 22 WHITESPACE@[27; 28)
23 STRING@[28; 31) 23 STRING@[28; 31)
24 WHITESPACE@[31; 32) 24 WHITESPACE@[31; 32)
25 FN_KW@[32; 34) 25 FN_KW@[32; 34)
26 NAME@[34; 38) 26 WHITESPACE@[34; 35)
27 WHITESPACE@[34; 35) 27 NAME@[35; 38)
28 IDENT@[35; 38) "bar" 28 IDENT@[35; 38) "bar"
29 PARAM_LIST@[38; 41) 29 PARAM_LIST@[38; 40)
30 L_PAREN@[38; 39) 30 L_PAREN@[38; 39)
31 R_PAREN@[39; 40) 31 R_PAREN@[39; 40)
32 WHITESPACE@[40; 41) 32 WHITESPACE@[40; 41)
33 BLOCK_EXPR@[41; 46) 33 BLOCK_EXPR@[41; 44)
34 L_CURLY@[41; 42) 34 L_CURLY@[41; 42)
35 WHITESPACE@[42; 43) 35 WHITESPACE@[42; 43)
36 R_CURLY@[43; 44) 36 R_CURLY@[43; 44)
37 WHITESPACE@[44; 46) 37 WHITESPACE@[44; 46)
38 FN_ITEM@[46; 71) 38 FN_ITEM@[46; 70)
39 ABI@[46; 58) 39 ABI@[46; 57)
40 EXTERN_KW@[46; 52) 40 EXTERN_KW@[46; 52)
41 WHITESPACE@[52; 53) 41 WHITESPACE@[52; 53)
42 RAW_STRING@[53; 57) 42 RAW_STRING@[53; 57)
43 WHITESPACE@[57; 58) 43 WHITESPACE@[57; 58)
44 FN_KW@[58; 60) 44 FN_KW@[58; 60)
45 NAME@[60; 64) 45 WHITESPACE@[60; 61)
46 WHITESPACE@[60; 61) 46 NAME@[61; 64)
47 IDENT@[61; 64) "baz" 47 IDENT@[61; 64) "baz"
48 PARAM_LIST@[64; 67) 48 PARAM_LIST@[64; 66)
49 L_PAREN@[64; 65) 49 L_PAREN@[64; 65)
50 R_PAREN@[65; 66) 50 R_PAREN@[65; 66)
51 WHITESPACE@[66; 67) 51 WHITESPACE@[66; 67)
52 BLOCK_EXPR@[67; 71) 52 BLOCK_EXPR@[67; 70)
53 L_CURLY@[67; 68) 53 L_CURLY@[67; 68)
54 WHITESPACE@[68; 69) 54 WHITESPACE@[68; 69)
55 R_CURLY@[69; 70) 55 R_CURLY@[69; 70)
56 WHITESPACE@[70; 71) 56 WHITESPACE@[70; 71)
diff --git a/tests/data/parser/ok/0022_empty_extern_block.txt b/tests/data/parser/ok/0022_empty_extern_block.txt
index 2f79d5749..81b92d394 100644
--- a/tests/data/parser/ok/0022_empty_extern_block.txt
+++ b/tests/data/parser/ok/0022_empty_extern_block.txt
@@ -1,19 +1,19 @@
1FILE@[0; 27) 1FILE@[0; 27)
2 EXTERN_BLOCK_EXPR@[0; 12) 2 EXTERN_BLOCK_EXPR@[0; 10)
3 ABI@[0; 7) 3 ABI@[0; 6)
4 EXTERN_KW@[0; 6) 4 EXTERN_KW@[0; 6)
5 WHITESPACE@[6; 7) 5 WHITESPACE@[6; 7)
6 L_CURLY@[7; 8) 6 L_CURLY@[7; 8)
7 WHITESPACE@[8; 9) 7 WHITESPACE@[8; 9)
8 R_CURLY@[9; 10) 8 R_CURLY@[9; 10)
9 WHITESPACE@[10; 12) 9 WHITESPACE@[10; 12)
10 EXTERN_BLOCK_EXPR@[12; 27) 10 EXTERN_BLOCK_EXPR@[12; 26)
11 ABI@[12; 23) 11 ABI@[12; 22)
12 EXTERN_KW@[12; 18) 12 EXTERN_KW@[12; 18)
13 WHITESPACE@[18; 19) 13 WHITESPACE@[18; 19)
14 STRING@[19; 22) 14 STRING@[19; 22)
15 WHITESPACE@[22; 23) 15 WHITESPACE@[22; 23)
16 L_CURLY@[23; 24) 16 L_CURLY@[23; 24)
17 WHITESPACE@[24; 25) 17 WHITESPACE@[24; 25)
18 R_CURLY@[25; 26) 18 R_CURLY@[25; 26)
19 WHITESPACE@[26; 27) 19 WHITESPACE@[26; 27)
diff --git a/tests/data/parser/ok/0023_static_items.txt b/tests/data/parser/ok/0023_static_items.txt
index 121330d4e..b8dfdd251 100644
--- a/tests/data/parser/ok/0023_static_items.txt
+++ b/tests/data/parser/ok/0023_static_items.txt
@@ -1,41 +1,41 @@
1FILE@[0; 47) 1FILE@[0; 47)
2 STATIC_ITEM@[0; 21) 2 STATIC_ITEM@[0; 20)
3 STATIC_KW@[0; 6) 3 STATIC_KW@[0; 6)
4 NAME@[6; 10) 4 WHITESPACE@[6; 7)
5 WHITESPACE@[6; 7) 5 NAME@[7; 10)
6 IDENT@[7; 10) "FOO" 6 IDENT@[7; 10) "FOO"
7 COLON@[10; 11) 7 COLON@[10; 11)
8 PATH_TYPE@[11; 16) 8 WHITESPACE@[11; 12)
9 PATH@[11; 16) 9 PATH_TYPE@[12; 15)
10 PATH_SEGMENT@[11; 16) 10 PATH@[12; 15)
11 NAME_REF@[11; 16) 11 PATH_SEGMENT@[12; 15)
12 WHITESPACE@[11; 12) 12 NAME_REF@[12; 15)
13 IDENT@[12; 15) "u32" 13 IDENT@[12; 15) "u32"
14 WHITESPACE@[15; 16) 14 WHITESPACE@[15; 16)
15 EQ@[16; 17) 15 EQ@[16; 17)
16 LITERAL@[17; 19) 16 WHITESPACE@[17; 18)
17 WHITESPACE@[17; 18) 17 LITERAL@[18; 19)
18 INT_NUMBER@[18; 19) "1" 18 INT_NUMBER@[18; 19) "1"
19 SEMI@[19; 20) 19 SEMI@[19; 20)
20 WHITESPACE@[20; 21) 20 WHITESPACE@[20; 21)
21 STATIC_ITEM@[21; 47) 21 STATIC_ITEM@[21; 46)
22 STATIC_KW@[21; 27) 22 STATIC_KW@[21; 27)
23 WHITESPACE@[27; 28) 23 WHITESPACE@[27; 28)
24 MUT_KW@[28; 31) 24 MUT_KW@[28; 31)
25 NAME@[31; 35) 25 WHITESPACE@[31; 32)
26 WHITESPACE@[31; 32) 26 NAME@[32; 35)
27 IDENT@[32; 35) "BAR" 27 IDENT@[32; 35) "BAR"
28 COLON@[35; 36) 28 COLON@[35; 36)
29 PATH_TYPE@[36; 41) 29 WHITESPACE@[36; 37)
30 PATH@[36; 41) 30 PATH_TYPE@[37; 40)
31 PATH_SEGMENT@[36; 41) 31 PATH@[37; 40)
32 NAME_REF@[36; 41) 32 PATH_SEGMENT@[37; 40)
33 WHITESPACE@[36; 37) 33 NAME_REF@[37; 40)
34 IDENT@[37; 40) "i32" 34 IDENT@[37; 40) "i32"
35 WHITESPACE@[40; 41) 35 WHITESPACE@[40; 41)
36 EQ@[41; 42) 36 EQ@[41; 42)
37 LITERAL@[42; 45) 37 WHITESPACE@[42; 43)
38 WHITESPACE@[42; 43) 38 LITERAL@[43; 45)
39 INT_NUMBER@[43; 45) "92" 39 INT_NUMBER@[43; 45) "92"
40 SEMI@[45; 46) 40 SEMI@[45; 46)
41 WHITESPACE@[46; 47) 41 WHITESPACE@[46; 47)
diff --git a/tests/data/parser/ok/0024_const_item.txt b/tests/data/parser/ok/0024_const_item.txt
index b08de43f4..85083e9c1 100644
--- a/tests/data/parser/ok/0024_const_item.txt
+++ b/tests/data/parser/ok/0024_const_item.txt
@@ -1,41 +1,41 @@
1FILE@[0; 46) 1FILE@[0; 46)
2 CONST_ITEM@[0; 21) 2 CONST_ITEM@[0; 20)
3 CONST_KW@[0; 5) 3 CONST_KW@[0; 5)
4 NAME@[5; 9) 4 WHITESPACE@[5; 6)
5 WHITESPACE@[5; 6) 5 NAME@[6; 9)
6 IDENT@[6; 9) "FOO" 6 IDENT@[6; 9) "FOO"
7 COLON@[9; 10) 7 COLON@[9; 10)
8 PATH_TYPE@[10; 15) 8 WHITESPACE@[10; 11)
9 PATH@[10; 15) 9 PATH_TYPE@[11; 14)
10 PATH_SEGMENT@[10; 15) 10 PATH@[11; 14)
11 NAME_REF@[10; 15) 11 PATH_SEGMENT@[11; 14)
12 WHITESPACE@[10; 11) 12 NAME_REF@[11; 14)
13 IDENT@[11; 14) "u32" 13 IDENT@[11; 14) "u32"
14 WHITESPACE@[14; 15) 14 WHITESPACE@[14; 15)
15 EQ@[15; 16) 15 EQ@[15; 16)
16 LITERAL@[16; 19) 16 WHITESPACE@[16; 17)
17 WHITESPACE@[16; 17) 17 LITERAL@[17; 19)
18 INT_NUMBER@[17; 19) "92" 18 INT_NUMBER@[17; 19) "92"
19 SEMI@[19; 20) 19 SEMI@[19; 20)
20 WHITESPACE@[20; 21) 20 WHITESPACE@[20; 21)
21 CONST_ITEM@[21; 46) 21 CONST_ITEM@[21; 45)
22 CONST_KW@[21; 26) 22 CONST_KW@[21; 26)
23 WHITESPACE@[26; 27) 23 WHITESPACE@[26; 27)
24 MUT_KW@[27; 30) 24 MUT_KW@[27; 30)
25 NAME@[30; 34) 25 WHITESPACE@[30; 31)
26 WHITESPACE@[30; 31) 26 NAME@[31; 34)
27 IDENT@[31; 34) "BAR" 27 IDENT@[31; 34) "BAR"
28 COLON@[34; 35) 28 COLON@[34; 35)
29 PATH_TYPE@[35; 40) 29 WHITESPACE@[35; 36)
30 PATH@[35; 40) 30 PATH_TYPE@[36; 39)
31 PATH_SEGMENT@[35; 40) 31 PATH@[36; 39)
32 NAME_REF@[35; 40) 32 PATH_SEGMENT@[36; 39)
33 WHITESPACE@[35; 36) 33 NAME_REF@[36; 39)
34 IDENT@[36; 39) "u32" 34 IDENT@[36; 39) "u32"
35 WHITESPACE@[39; 40) 35 WHITESPACE@[39; 40)
36 EQ@[40; 41) 36 EQ@[40; 41)
37 LITERAL@[41; 44) 37 WHITESPACE@[41; 42)
38 WHITESPACE@[41; 42) 38 LITERAL@[42; 44)
39 INT_NUMBER@[42; 44) "62" 39 INT_NUMBER@[42; 44) "62"
40 SEMI@[44; 45) 40 SEMI@[44; 45)
41 WHITESPACE@[45; 46) 41 WHITESPACE@[45; 46)
diff --git a/tests/data/parser/ok/0025_extern_fn_in_block.txt b/tests/data/parser/ok/0025_extern_fn_in_block.txt
index 0623740aa..4e69a410c 100644
--- a/tests/data/parser/ok/0025_extern_fn_in_block.txt
+++ b/tests/data/parser/ok/0025_extern_fn_in_block.txt
@@ -1,31 +1,31 @@
1FILE@[0; 35) 1FILE@[0; 35)
2 FN_ITEM@[0; 35) 2 FN_ITEM@[0; 34)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 7) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 7)
6 IDENT@[3; 7) "main" 6 IDENT@[3; 7) "main"
7 PARAM_LIST@[7; 10) 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; 35) 11 BLOCK_EXPR@[10; 34)
12 L_CURLY@[10; 11) 12 L_CURLY@[10; 11)
13 FN_ITEM@[11; 33) 13 WHITESPACE@[11; 16)
14 ABI@[11; 23) 14 FN_ITEM@[16; 32)
15 WHITESPACE@[11; 16) 15 ABI@[16; 22)
16 EXTERN_KW@[16; 22) 16 EXTERN_KW@[16; 22)
17 WHITESPACE@[22; 23) 17 WHITESPACE@[22; 23)
18 FN_KW@[23; 25) 18 FN_KW@[23; 25)
19 NAME@[25; 27) 19 WHITESPACE@[25; 26)
20 WHITESPACE@[25; 26) 20 NAME@[26; 27)
21 IDENT@[26; 27) "f" 21 IDENT@[26; 27) "f"
22 PARAM_LIST@[27; 30) 22 PARAM_LIST@[27; 29)
23 L_PAREN@[27; 28) 23 L_PAREN@[27; 28)
24 R_PAREN@[28; 29) 24 R_PAREN@[28; 29)
25 WHITESPACE@[29; 30) 25 WHITESPACE@[29; 30)
26 BLOCK_EXPR@[30; 33) 26 BLOCK_EXPR@[30; 32)
27 L_CURLY@[30; 31) 27 L_CURLY@[30; 31)
28 R_CURLY@[31; 32) 28 R_CURLY@[31; 32)
29 WHITESPACE@[32; 33) 29 WHITESPACE@[32; 33)
30 R_CURLY@[33; 34) 30 R_CURLY@[33; 34)
31 WHITESPACE@[34; 35) 31 WHITESPACE@[34; 35)
diff --git a/tests/data/parser/ok/0026_const_fn_in_block.txt b/tests/data/parser/ok/0026_const_fn_in_block.txt
index 329c65846..c474f884f 100644
--- a/tests/data/parser/ok/0026_const_fn_in_block.txt
+++ b/tests/data/parser/ok/0026_const_fn_in_block.txt
@@ -1,30 +1,30 @@
1FILE@[0; 34) 1FILE@[0; 34)
2 FN_ITEM@[0; 34) 2 FN_ITEM@[0; 33)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 7) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 7)
6 IDENT@[3; 7) "main" 6 IDENT@[3; 7) "main"
7 PARAM_LIST@[7; 10) 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; 34) 11 BLOCK_EXPR@[10; 33)
12 L_CURLY@[10; 11) 12 L_CURLY@[10; 11)
13 FN_ITEM@[11; 32) 13 WHITESPACE@[11; 16)
14 WHITESPACE@[11; 16) 14 FN_ITEM@[16; 31)
15 CONST_KW@[16; 21) 15 CONST_KW@[16; 21)
16 WHITESPACE@[21; 22) 16 WHITESPACE@[21; 22)
17 FN_KW@[22; 24) 17 FN_KW@[22; 24)
18 NAME@[24; 26) 18 WHITESPACE@[24; 25)
19 WHITESPACE@[24; 25) 19 NAME@[25; 26)
20 IDENT@[25; 26) "f" 20 IDENT@[25; 26) "f"
21 PARAM_LIST@[26; 29) 21 PARAM_LIST@[26; 28)
22 L_PAREN@[26; 27) 22 L_PAREN@[26; 27)
23 R_PAREN@[27; 28) 23 R_PAREN@[27; 28)
24 WHITESPACE@[28; 29) 24 WHITESPACE@[28; 29)
25 BLOCK_EXPR@[29; 32) 25 BLOCK_EXPR@[29; 31)
26 L_CURLY@[29; 30) 26 L_CURLY@[29; 30)
27 R_CURLY@[30; 31) 27 R_CURLY@[30; 31)
28 WHITESPACE@[31; 32) 28 WHITESPACE@[31; 32)
29 R_CURLY@[32; 33) 29 R_CURLY@[32; 33)
30 WHITESPACE@[33; 34) 30 WHITESPACE@[33; 34)
diff --git a/tests/data/parser/ok/0027_unsafe_fn_in_block.txt b/tests/data/parser/ok/0027_unsafe_fn_in_block.txt
index 9982d0308..8e6124b0d 100644
--- a/tests/data/parser/ok/0027_unsafe_fn_in_block.txt
+++ b/tests/data/parser/ok/0027_unsafe_fn_in_block.txt
@@ -1,40 +1,40 @@
1FILE@[0; 53) 1FILE@[0; 53)
2 FN_ITEM@[0; 53) 2 FN_ITEM@[0; 52)
3 FN_KW@[0; 2) 3 FN_KW@[0; 2)
4 NAME@[2; 7) 4 WHITESPACE@[2; 3)
5 WHITESPACE@[2; 3) 5 NAME@[3; 7)
6 IDENT@[3; 7) "main" 6 IDENT@[3; 7) "main"
7 PARAM_LIST@[7; 10) 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; 53) 11 BLOCK_EXPR@[10; 52)
12 L_CURLY@[10; 11) 12 L_CURLY@[10; 11)
13 FN_ITEM@[11; 37) 13 WHITESPACE@[11; 16)
14 WHITESPACE@[11; 16) 14 FN_ITEM@[16; 32)
15 UNSAFE_KW@[16; 22) 15 UNSAFE_KW@[16; 22)
16 WHITESPACE@[22; 23) 16 WHITESPACE@[22; 23)
17 FN_KW@[23; 25) 17 FN_KW@[23; 25)
18 NAME@[25; 27) 18 WHITESPACE@[25; 26)
19 WHITESPACE@[25; 26) 19 NAME@[26; 27)
20 IDENT@[26; 27) "f" 20 IDENT@[26; 27) "f"
21 PARAM_LIST@[27; 30) 21 PARAM_LIST@[27; 29)
22 L_PAREN@[27; 28) 22 L_PAREN@[27; 28)
23 R_PAREN@[28; 29) 23 R_PAREN@[28; 29)
24 WHITESPACE@[29; 30) 24 WHITESPACE@[29; 30)
25 BLOCK_EXPR@[30; 37) 25 BLOCK_EXPR@[30; 32)
26 L_CURLY@[30; 31) 26 L_CURLY@[30; 31)
27 R_CURLY@[31; 32) 27 R_CURLY@[31; 32)
28 WHITESPACE@[32; 37) 28 WHITESPACE@[32; 37)
29 BLOCK_EXPR@[37; 51) 29 BLOCK_EXPR@[37; 50)
30 UNSAFE_KW@[37; 43) 30 UNSAFE_KW@[37; 43)
31 WHITESPACE@[43; 44) 31 WHITESPACE@[43; 44)
32 L_CURLY@[44; 45) 32 L_CURLY@[44; 45)
33 LITERAL@[45; 49) 33 WHITESPACE@[45; 46)
34 WHITESPACE@[45; 46) 34 LITERAL@[46; 48)
35 INT_NUMBER@[46; 48) "92" 35 INT_NUMBER@[46; 48) "92"
36 WHITESPACE@[48; 49) 36 WHITESPACE@[48; 49)
37 R_CURLY@[49; 50) 37 R_CURLY@[49; 50)
38 WHITESPACE@[50; 51) 38 WHITESPACE@[50; 51)
39 R_CURLY@[51; 52) 39 R_CURLY@[51; 52)
40 WHITESPACE@[52; 53) 40 WHITESPACE@[52; 53)