aboutsummaryrefslogtreecommitdiff
path: root/crates/libsyntax2/tests/data/parser/ok
diff options
context:
space:
mode:
Diffstat (limited to 'crates/libsyntax2/tests/data/parser/ok')
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt31
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.txt29
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0005_fn_item.txt2
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0008_mod_item.txt119
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.txt2
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0012_visibility.txt10
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0014_use_tree.txt58
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0015_use_tree.txt73
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.txt110
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.txt2
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.txt46
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0019_enums.txt217
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.txt6
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.txt18
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.txt4
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.txt4
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.txt17
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.txt2
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0029_range_forms.txt2
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0030_traits.txt133
20 files changed, 459 insertions, 426 deletions
diff --git a/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt b/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt
index cfe128971..bc74d52b2 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt
@@ -17,19 +17,20 @@ FILE@[0; 32)
17 IDENT@[12; 16) "Copy" 17 IDENT@[12; 16) "Copy"
18 R_ANGLE@[16; 17) 18 R_ANGLE@[16; 17)
19 WHITESPACE@[17; 18) 19 WHITESPACE@[17; 18)
20 L_CURLY@[18; 19) 20 NAMED_FIELD_DEF_LIST@[18; 31)
21 WHITESPACE@[19; 24) 21 L_CURLY@[18; 19)
22 NAMED_FIELD@[24; 28) 22 WHITESPACE@[19; 24)
23 NAME@[24; 25) 23 NAMED_FIELD_DEF@[24; 28)
24 IDENT@[24; 25) "f" 24 NAME@[24; 25)
25 COLON@[25; 26) 25 IDENT@[24; 25) "f"
26 WHITESPACE@[26; 27) 26 COLON@[25; 26)
27 PATH_TYPE@[27; 28) 27 WHITESPACE@[26; 27)
28 PATH@[27; 28) 28 PATH_TYPE@[27; 28)
29 PATH_SEGMENT@[27; 28) 29 PATH@[27; 28)
30 NAME_REF@[27; 28) 30 PATH_SEGMENT@[27; 28)
31 IDENT@[27; 28) "T" 31 NAME_REF@[27; 28)
32 COMMA@[28; 29) 32 IDENT@[27; 28) "T"
33 WHITESPACE@[29; 30) 33 COMMA@[28; 29)
34 R_CURLY@[30; 31) 34 WHITESPACE@[29; 30)
35 R_CURLY@[30; 31)
35 WHITESPACE@[31; 32) 36 WHITESPACE@[31; 32)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.txt b/crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.txt
index d8c68e89b..69da10900 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0002_struct_item_field.txt
@@ -5,17 +5,18 @@ FILE@[0; 25)
5 NAME@[7; 8) 5 NAME@[7; 8)
6 IDENT@[7; 8) "S" 6 IDENT@[7; 8) "S"
7 WHITESPACE@[8; 9) 7 WHITESPACE@[8; 9)
8 L_CURLY@[9; 10) 8 NAMED_FIELD_DEF_LIST@[9; 25)
9 WHITESPACE@[10; 15) 9 L_CURLY@[9; 10)
10 NAMED_FIELD@[15; 23) 10 WHITESPACE@[10; 15)
11 NAME@[15; 18) 11 NAMED_FIELD_DEF@[15; 23)
12 IDENT@[15; 18) "foo" 12 NAME@[15; 18)
13 COLON@[18; 19) 13 IDENT@[15; 18) "foo"
14 WHITESPACE@[19; 20) 14 COLON@[18; 19)
15 PATH_TYPE@[20; 23) 15 WHITESPACE@[19; 20)
16 PATH@[20; 23) 16 PATH_TYPE@[20; 23)
17 PATH_SEGMENT@[20; 23) 17 PATH@[20; 23)
18 NAME_REF@[20; 23) 18 PATH_SEGMENT@[20; 23)
19 IDENT@[20; 23) "u32" 19 NAME_REF@[20; 23)
20 WHITESPACE@[23; 24) 20 IDENT@[20; 23) "u32"
21 R_CURLY@[24; 25) 21 WHITESPACE@[23; 24)
22 R_CURLY@[24; 25)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0005_fn_item.txt b/crates/libsyntax2/tests/data/parser/ok/0005_fn_item.txt
index e5bdf4852..2dc8c85d6 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0005_fn_item.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0005_fn_item.txt
@@ -8,7 +8,7 @@ FILE@[0; 13)
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@[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)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0008_mod_item.txt b/crates/libsyntax2/tests/data/parser/ok/0008_mod_item.txt
index 54fe69baf..a2b4f6495 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0008_mod_item.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0008_mod_item.txt
@@ -12,9 +12,10 @@ FILE@[0; 118)
12 NAME@[12; 13) 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 ITEM_LIST@[14; 17)
16 WHITESPACE@[15; 16) 16 L_CURLY@[14; 15)
17 R_CURLY@[16; 17) 17 WHITESPACE@[15; 16)
18 R_CURLY@[16; 17)
18 WHITESPACE@[17; 19) 19 WHITESPACE@[17; 19)
19 MODULE@[19; 65) 20 MODULE@[19; 65)
20 MOD_KW@[19; 22) 21 MOD_KW@[19; 22)
@@ -22,32 +23,34 @@ FILE@[0; 118)
22 NAME@[23; 24) 23 NAME@[23; 24)
23 IDENT@[23; 24) "c" 24 IDENT@[23; 24) "c"
24 WHITESPACE@[24; 25) 25 WHITESPACE@[24; 25)
25 L_CURLY@[25; 26) 26 ITEM_LIST@[25; 65)
26 WHITESPACE@[26; 31) 27 L_CURLY@[25; 26)
27 FN_DEF@[31; 47) 28 WHITESPACE@[26; 31)
28 FN_KW@[31; 33) 29 FN_DEF@[31; 47)
29 WHITESPACE@[33; 34) 30 FN_KW@[31; 33)
30 NAME@[34; 37) 31 WHITESPACE@[33; 34)
31 IDENT@[34; 37) "foo" 32 NAME@[34; 37)
32 PARAM_LIST@[37; 39) 33 IDENT@[34; 37) "foo"
33 L_PAREN@[37; 38) 34 PARAM_LIST@[37; 39)
34 R_PAREN@[38; 39) 35 L_PAREN@[37; 38)
35 WHITESPACE@[39; 40) 36 R_PAREN@[38; 39)
36 BLOCK_EXPR@[40; 47) 37 WHITESPACE@[39; 40)
37 L_CURLY@[40; 41) 38 BLOCK@[40; 47)
38 WHITESPACE@[41; 46) 39 L_CURLY@[40; 41)
39 R_CURLY@[46; 47) 40 WHITESPACE@[41; 46)
40 WHITESPACE@[47; 52) 41 R_CURLY@[46; 47)
41 STRUCT_DEF@[52; 63) 42 WHITESPACE@[47; 52)
42 STRUCT_KW@[52; 58) 43 STRUCT_DEF@[52; 63)
43 WHITESPACE@[58; 59) 44 STRUCT_KW@[52; 58)
44 NAME@[59; 60) 45 WHITESPACE@[58; 59)
45 IDENT@[59; 60) "S" 46 NAME@[59; 60)
46 WHITESPACE@[60; 61) 47 IDENT@[59; 60) "S"
47 L_CURLY@[61; 62) 48 WHITESPACE@[60; 61)
48 R_CURLY@[62; 63) 49 NAMED_FIELD_DEF_LIST@[61; 63)
49 WHITESPACE@[63; 64) 50 L_CURLY@[61; 62)
50 R_CURLY@[64; 65) 51 R_CURLY@[62; 63)
52 WHITESPACE@[63; 64)
53 R_CURLY@[64; 65)
51 WHITESPACE@[65; 67) 54 WHITESPACE@[65; 67)
52 MODULE@[67; 118) 55 MODULE@[67; 118)
53 MOD_KW@[67; 70) 56 MOD_KW@[67; 70)
@@ -55,31 +58,33 @@ FILE@[0; 118)
55 NAME@[71; 72) 58 NAME@[71; 72)
56 IDENT@[71; 72) "d" 59 IDENT@[71; 72) "d"
57 WHITESPACE@[72; 73) 60 WHITESPACE@[72; 73)
58 L_CURLY@[73; 74) 61 ITEM_LIST@[73; 118)
59 WHITESPACE@[74; 79) 62 L_CURLY@[73; 74)
60 ATTR@[79; 87) 63 WHITESPACE@[74; 79)
61 POUND@[79; 80) 64 ATTR@[79; 87)
62 EXCL@[80; 81) 65 POUND@[79; 80)
63 TOKEN_TREE@[81; 87) 66 EXCL@[80; 81)
64 L_BRACK@[81; 82) 67 TOKEN_TREE@[81; 87)
65 IDENT@[82; 86) "attr" 68 L_BRACK@[81; 82)
66 R_BRACK@[86; 87) 69 IDENT@[82; 86) "attr"
67 WHITESPACE@[87; 92) 70 R_BRACK@[86; 87)
68 MODULE@[92; 98) 71 WHITESPACE@[87; 92)
69 MOD_KW@[92; 95) 72 MODULE@[92; 98)
70 WHITESPACE@[95; 96) 73 MOD_KW@[92; 95)
71 NAME@[96; 97) 74 WHITESPACE@[95; 96)
72 IDENT@[96; 97) "e" 75 NAME@[96; 97)
73 SEMI@[97; 98) 76 IDENT@[96; 97) "e"
74 WHITESPACE@[98; 103) 77 SEMI@[97; 98)
75 MODULE@[103; 116) 78 WHITESPACE@[98; 103)
76 MOD_KW@[103; 106) 79 MODULE@[103; 116)
77 WHITESPACE@[106; 107) 80 MOD_KW@[103; 106)
78 NAME@[107; 108) 81 WHITESPACE@[106; 107)
79 IDENT@[107; 108) "f" 82 NAME@[107; 108)
80 WHITESPACE@[108; 109) 83 IDENT@[107; 108) "f"
81 L_CURLY@[109; 110) 84 WHITESPACE@[108; 109)
82 WHITESPACE@[110; 115) 85 ITEM_LIST@[109; 116)
83 R_CURLY@[115; 116) 86 L_CURLY@[109; 110)
84 WHITESPACE@[116; 117) 87 WHITESPACE@[110; 115)
85 R_CURLY@[117; 118) 88 R_CURLY@[115; 116)
89 WHITESPACE@[116; 117)
90 R_CURLY@[117; 118)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.txt b/crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.txt
index 24647fb06..af4b55aed 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0011_outer_attribute.txt
@@ -26,7 +26,7 @@ FILE@[0; 35)
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; 34) 29 BLOCK@[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/crates/libsyntax2/tests/data/parser/ok/0012_visibility.txt b/crates/libsyntax2/tests/data/parser/ok/0012_visibility.txt
index 0fa76480a..940721f8b 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0012_visibility.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0012_visibility.txt
@@ -8,7 +8,7 @@ FILE@[0; 98)
8 L_PAREN@[4; 5) 8 L_PAREN@[4; 5)
9 R_PAREN@[5; 6) 9 R_PAREN@[5; 6)
10 WHITESPACE@[6; 7) 10 WHITESPACE@[6; 7)
11 BLOCK_EXPR@[7; 9) 11 BLOCK@[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)
@@ -24,7 +24,7 @@ FILE@[0; 98)
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; 23) 27 BLOCK@[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)
@@ -43,7 +43,7 @@ FILE@[0; 98)
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; 44) 46 BLOCK@[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)
@@ -62,7 +62,7 @@ FILE@[0; 98)
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; 65) 65 BLOCK@[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)
@@ -96,7 +96,7 @@ FILE@[0; 98)
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; 97) 99 BLOCK@[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/crates/libsyntax2/tests/data/parser/ok/0014_use_tree.txt b/crates/libsyntax2/tests/data/parser/ok/0014_use_tree.txt
index 730d5539b..86bafc853 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0014_use_tree.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0014_use_tree.txt
@@ -19,16 +19,18 @@ FILE@[0; 81)
19 WHITESPACE@[19; 20) 19 WHITESPACE@[19; 20)
20 USE_TREE@[20; 24) 20 USE_TREE@[20; 24)
21 COLONCOLON@[20; 22) 21 COLONCOLON@[20; 22)
22 L_CURLY@[22; 23) 22 USE_TREE_LIST@[22; 24)
23 R_CURLY@[23; 24) 23 L_CURLY@[22; 23)
24 R_CURLY@[23; 24)
24 SEMI@[24; 25) 25 SEMI@[24; 25)
25 WHITESPACE@[25; 26) 26 WHITESPACE@[25; 26)
26 USE_ITEM@[26; 33) 27 USE_ITEM@[26; 33)
27 USE_KW@[26; 29) 28 USE_KW@[26; 29)
28 WHITESPACE@[29; 30) 29 WHITESPACE@[29; 30)
29 USE_TREE@[30; 32) 30 USE_TREE@[30; 32)
30 L_CURLY@[30; 31) 31 USE_TREE_LIST@[30; 32)
31 R_CURLY@[31; 32) 32 L_CURLY@[30; 31)
33 R_CURLY@[31; 32)
32 SEMI@[32; 33) 34 SEMI@[32; 33)
33 WHITESPACE@[33; 34) 35 WHITESPACE@[33; 34)
34 USE_ITEM@[34; 45) 36 USE_ITEM@[34; 45)
@@ -52,8 +54,9 @@ FILE@[0; 81)
52 NAME_REF@[50; 53) 54 NAME_REF@[50; 53)
53 IDENT@[50; 53) "foo" 55 IDENT@[50; 53) "foo"
54 COLONCOLON@[53; 55) 56 COLONCOLON@[53; 55)
55 L_CURLY@[55; 56) 57 USE_TREE_LIST@[55; 57)
56 R_CURLY@[56; 57) 58 L_CURLY@[55; 56)
59 R_CURLY@[56; 57)
57 SEMI@[57; 58) 60 SEMI@[57; 58)
58 WHITESPACE@[58; 59) 61 WHITESPACE@[58; 59)
59 USE_ITEM@[59; 80) 62 USE_ITEM@[59; 80)
@@ -66,26 +69,27 @@ FILE@[0; 81)
66 NAME_REF@[65; 68) 69 NAME_REF@[65; 68)
67 IDENT@[65; 68) "foo" 70 IDENT@[65; 68) "foo"
68 COLONCOLON@[68; 70) 71 COLONCOLON@[68; 70)
69 L_CURLY@[70; 71) 72 USE_TREE_LIST@[70; 79)
70 USE_TREE@[71; 72) 73 L_CURLY@[70; 71)
71 PATH@[71; 72) 74 USE_TREE@[71; 72)
72 PATH_SEGMENT@[71; 72) 75 PATH@[71; 72)
73 NAME_REF@[71; 72) 76 PATH_SEGMENT@[71; 72)
74 IDENT@[71; 72) "a" 77 NAME_REF@[71; 72)
75 COMMA@[72; 73) 78 IDENT@[71; 72) "a"
76 WHITESPACE@[73; 74) 79 COMMA@[72; 73)
77 USE_TREE@[74; 75) 80 WHITESPACE@[73; 74)
78 PATH@[74; 75) 81 USE_TREE@[74; 75)
79 PATH_SEGMENT@[74; 75) 82 PATH@[74; 75)
80 NAME_REF@[74; 75) 83 PATH_SEGMENT@[74; 75)
81 IDENT@[74; 75) "b" 84 NAME_REF@[74; 75)
82 COMMA@[75; 76) 85 IDENT@[74; 75) "b"
83 WHITESPACE@[76; 77) 86 COMMA@[75; 76)
84 USE_TREE@[77; 78) 87 WHITESPACE@[76; 77)
85 PATH@[77; 78) 88 USE_TREE@[77; 78)
86 PATH_SEGMENT@[77; 78) 89 PATH@[77; 78)
87 NAME_REF@[77; 78) 90 PATH_SEGMENT@[77; 78)
88 IDENT@[77; 78) "c" 91 NAME_REF@[77; 78)
89 R_CURLY@[78; 79) 92 IDENT@[77; 78) "c"
93 R_CURLY@[78; 79)
90 SEMI@[79; 80) 94 SEMI@[79; 80)
91 WHITESPACE@[80; 81) 95 WHITESPACE@[80; 81)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0015_use_tree.txt b/crates/libsyntax2/tests/data/parser/ok/0015_use_tree.txt
index 4438e417b..2e39766cf 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0015_use_tree.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0015_use_tree.txt
@@ -24,41 +24,42 @@ FILE@[0; 55)
24 NAME_REF@[20; 23) 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 USE_TREE_LIST@[25; 53)
28 USE_TREE@[26; 32) 28 L_CURLY@[25; 26)
29 PATH@[26; 27) 29 USE_TREE@[26; 32)
30 PATH_SEGMENT@[26; 27) 30 PATH@[26; 27)
31 NAME_REF@[26; 27) 31 PATH_SEGMENT@[26; 27)
32 IDENT@[26; 27) "a" 32 NAME_REF@[26; 27)
33 WHITESPACE@[27; 28) 33 IDENT@[26; 27) "a"
34 ALIAS@[28; 32) 34 WHITESPACE@[27; 28)
35 AS_KW@[28; 30) 35 ALIAS@[28; 32)
36 WHITESPACE@[30; 31) 36 AS_KW@[28; 30)
37 NAME@[31; 32) 37 WHITESPACE@[30; 31)
38 IDENT@[31; 32) "b" 38 NAME@[31; 32)
39 COMMA@[32; 33) 39 IDENT@[31; 32) "b"
40 WHITESPACE@[33; 34) 40 COMMA@[32; 33)
41 USE_TREE@[34; 35) 41 WHITESPACE@[33; 34)
42 STAR@[34; 35) 42 USE_TREE@[34; 35)
43 COMMA@[35; 36) 43 STAR@[34; 35)
44 WHITESPACE@[36; 37) 44 COMMA@[35; 36)
45 USE_TREE@[37; 40) 45 WHITESPACE@[36; 37)
46 COLONCOLON@[37; 39) 46 USE_TREE@[37; 40)
47 STAR@[39; 40) 47 COLONCOLON@[37; 39)
48 COMMA@[40; 41) 48 STAR@[39; 40)
49 WHITESPACE@[41; 42) 49 COMMA@[40; 41)
50 USE_TREE@[42; 52) 50 WHITESPACE@[41; 42)
51 PATH@[42; 47) 51 USE_TREE@[42; 52)
52 PATH_SEGMENT@[42; 47) 52 PATH@[42; 47)
53 COLONCOLON@[42; 44) 53 PATH_SEGMENT@[42; 47)
54 NAME_REF@[44; 47) 54 COLONCOLON@[42; 44)
55 IDENT@[44; 47) "foo" 55 NAME_REF@[44; 47)
56 WHITESPACE@[47; 48) 56 IDENT@[44; 47) "foo"
57 ALIAS@[48; 52) 57 WHITESPACE@[47; 48)
58 AS_KW@[48; 50) 58 ALIAS@[48; 52)
59 WHITESPACE@[50; 51) 59 AS_KW@[48; 50)
60 NAME@[51; 52) 60 WHITESPACE@[50; 51)
61 IDENT@[51; 52) "x" 61 NAME@[51; 52)
62 R_CURLY@[52; 53) 62 IDENT@[51; 52) "x"
63 R_CURLY@[52; 53)
63 SEMI@[53; 54) 64 SEMI@[53; 54)
64 WHITESPACE@[54; 55) 65 WHITESPACE@[54; 55)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.txt b/crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.txt
index fd777673d..5bf3a1794 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0016_struct_flavors.txt
@@ -12,16 +12,18 @@ FILE@[0; 97)
12 NAME@[17; 18) 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 NAMED_FIELD_DEF_LIST@[19; 21)
16 R_CURLY@[20; 21) 16 L_CURLY@[19; 20)
17 R_CURLY@[20; 21)
17 WHITESPACE@[21; 22) 18 WHITESPACE@[21; 22)
18 STRUCT_DEF@[22; 33) 19 STRUCT_DEF@[22; 33)
19 STRUCT_KW@[22; 28) 20 STRUCT_KW@[22; 28)
20 WHITESPACE@[28; 29) 21 WHITESPACE@[28; 29)
21 NAME@[29; 30) 22 NAME@[29; 30)
22 IDENT@[29; 30) "C" 23 IDENT@[29; 30) "C"
23 L_PAREN@[30; 31) 24 POS_FIELD_LIST@[30; 32)
24 R_PAREN@[31; 32) 25 L_PAREN@[30; 31)
26 R_PAREN@[31; 32)
25 SEMI@[32; 33) 27 SEMI@[32; 33)
26 WHITESPACE@[33; 35) 28 WHITESPACE@[33; 35)
27 STRUCT_DEF@[35; 74) 29 STRUCT_DEF@[35; 74)
@@ -30,60 +32,62 @@ FILE@[0; 97)
30 NAME@[42; 43) 32 NAME@[42; 43)
31 IDENT@[42; 43) "D" 33 IDENT@[42; 43) "D"
32 WHITESPACE@[43; 44) 34 WHITESPACE@[43; 44)
33 L_CURLY@[44; 45) 35 NAMED_FIELD_DEF_LIST@[44; 74)
34 WHITESPACE@[45; 50) 36 L_CURLY@[44; 45)
35 NAMED_FIELD@[50; 56) 37 WHITESPACE@[45; 50)
36 NAME@[50; 51) 38 NAMED_FIELD_DEF@[50; 56)
37 IDENT@[50; 51) "a" 39 NAME@[50; 51)
38 COLON@[51; 52) 40 IDENT@[50; 51) "a"
39 WHITESPACE@[52; 53) 41 COLON@[51; 52)
40 PATH_TYPE@[53; 56) 42 WHITESPACE@[52; 53)
41 PATH@[53; 56) 43 PATH_TYPE@[53; 56)
42 PATH_SEGMENT@[53; 56) 44 PATH@[53; 56)
43 NAME_REF@[53; 56) 45 PATH_SEGMENT@[53; 56)
44 IDENT@[53; 56) "u32" 46 NAME_REF@[53; 56)
45 COMMA@[56; 57) 47 IDENT@[53; 56) "u32"
46 WHITESPACE@[57; 62) 48 COMMA@[56; 57)
47 NAMED_FIELD@[62; 72) 49 WHITESPACE@[57; 62)
48 VISIBILITY@[62; 65) 50 NAMED_FIELD_DEF@[62; 72)
49 PUB_KW@[62; 65) 51 VISIBILITY@[62; 65)
50 WHITESPACE@[65; 66) 52 PUB_KW@[62; 65)
51 NAME@[66; 67) 53 WHITESPACE@[65; 66)
52 IDENT@[66; 67) "b" 54 NAME@[66; 67)
53 COLON@[67; 68) 55 IDENT@[66; 67) "b"
54 WHITESPACE@[68; 69) 56 COLON@[67; 68)
55 PATH_TYPE@[69; 72) 57 WHITESPACE@[68; 69)
56 PATH@[69; 72) 58 PATH_TYPE@[69; 72)
57 PATH_SEGMENT@[69; 72) 59 PATH@[69; 72)
58 NAME_REF@[69; 72) 60 PATH_SEGMENT@[69; 72)
59 IDENT@[69; 72) "u32" 61 NAME_REF@[69; 72)
60 WHITESPACE@[72; 73) 62 IDENT@[69; 72) "u32"
61 R_CURLY@[73; 74) 63 WHITESPACE@[72; 73)
64 R_CURLY@[73; 74)
62 WHITESPACE@[74; 76) 65 WHITESPACE@[74; 76)
63 STRUCT_DEF@[76; 96) 66 STRUCT_DEF@[76; 96)
64 STRUCT_KW@[76; 82) 67 STRUCT_KW@[76; 82)
65 WHITESPACE@[82; 83) 68 WHITESPACE@[82; 83)
66 NAME@[83; 84) 69 NAME@[83; 84)
67 IDENT@[83; 84) "E" 70 IDENT@[83; 84) "E"
68 L_PAREN@[84; 85) 71 POS_FIELD_LIST@[84; 95)
69 POS_FIELD@[85; 90) 72 L_PAREN@[84; 85)
70 VISIBILITY@[85; 88) 73 POS_FIELD@[85; 90)
71 PUB_KW@[85; 88) 74 VISIBILITY@[85; 88)
72 WHITESPACE@[88; 89) 75 PUB_KW@[85; 88)
73 PATH_TYPE@[89; 90) 76 WHITESPACE@[88; 89)
74 PATH@[89; 90) 77 PATH_TYPE@[89; 90)
75 PATH_SEGMENT@[89; 90) 78 PATH@[89; 90)
76 NAME_REF@[89; 90) 79 PATH_SEGMENT@[89; 90)
77 IDENT@[89; 90) "x" 80 NAME_REF@[89; 90)
78 COMMA@[90; 91) 81 IDENT@[89; 90) "x"
79 WHITESPACE@[91; 92) 82 COMMA@[90; 91)
80 POS_FIELD@[92; 93) 83 WHITESPACE@[91; 92)
81 PATH_TYPE@[92; 93) 84 POS_FIELD@[92; 93)
82 PATH@[92; 93) 85 PATH_TYPE@[92; 93)
83 PATH_SEGMENT@[92; 93) 86 PATH@[92; 93)
84 NAME_REF@[92; 93) 87 PATH_SEGMENT@[92; 93)
85 IDENT@[92; 93) "y" 88 NAME_REF@[92; 93)
86 COMMA@[93; 94) 89 IDENT@[92; 93) "y"
87 R_PAREN@[94; 95) 90 COMMA@[93; 94)
91 R_PAREN@[94; 95)
88 SEMI@[95; 96) 92 SEMI@[95; 96)
89 WHITESPACE@[96; 97) 93 WHITESPACE@[96; 97)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.txt b/crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.txt
index 6acd842c6..02e64c0d5 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0017_attr_trailing_comma.txt
@@ -20,7 +20,7 @@ FILE@[0; 23)
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; 22) 23 BLOCK@[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/crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.txt b/crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.txt
index 64aaa7599..fb61096f6 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0018_struct_type_params.txt
@@ -23,14 +23,15 @@ FILE@[0; 290)
23 NAME@[24; 25) 23 NAME@[24; 25)
24 IDENT@[24; 25) "T" 24 IDENT@[24; 25) "T"
25 R_ANGLE@[25; 26) 25 R_ANGLE@[25; 26)
26 L_PAREN@[26; 27) 26 POS_FIELD_LIST@[26; 31)
27 POS_FIELD@[27; 30) 27 L_PAREN@[26; 27)
28 PATH_TYPE@[27; 30) 28 POS_FIELD@[27; 30)
29 PATH@[27; 30) 29 PATH_TYPE@[27; 30)
30 PATH_SEGMENT@[27; 30) 30 PATH@[27; 30)
31 NAME_REF@[27; 30) 31 PATH_SEGMENT@[27; 30)
32 IDENT@[27; 30) "u32" 32 NAME_REF@[27; 30)
33 R_PAREN@[30; 31) 33 IDENT@[27; 30) "u32"
34 R_PAREN@[30; 31)
34 SEMI@[31; 32) 35 SEMI@[31; 32)
35 WHITESPACE@[32; 33) 36 WHITESPACE@[32; 33)
36 STRUCT_DEF@[33; 56) 37 STRUCT_DEF@[33; 56)
@@ -45,20 +46,21 @@ FILE@[0; 290)
45 IDENT@[43; 44) "T" 46 IDENT@[43; 44) "T"
46 R_ANGLE@[44; 45) 47 R_ANGLE@[44; 45)
47 WHITESPACE@[45; 46) 48 WHITESPACE@[45; 46)
48 L_CURLY@[46; 47) 49 NAMED_FIELD_DEF_LIST@[46; 56)
49 WHITESPACE@[47; 48) 50 L_CURLY@[46; 47)
50 NAMED_FIELD@[48; 54) 51 WHITESPACE@[47; 48)
51 NAME@[48; 49) 52 NAMED_FIELD_DEF@[48; 54)
52 IDENT@[48; 49) "u" 53 NAME@[48; 49)
53 COLON@[49; 50) 54 IDENT@[48; 49) "u"
54 WHITESPACE@[50; 51) 55 COLON@[49; 50)
55 PATH_TYPE@[51; 54) 56 WHITESPACE@[50; 51)
56 PATH@[51; 54) 57 PATH_TYPE@[51; 54)
57 PATH_SEGMENT@[51; 54) 58 PATH@[51; 54)
58 NAME_REF@[51; 54) 59 PATH_SEGMENT@[51; 54)
59 IDENT@[51; 54) "u32" 60 NAME_REF@[51; 54)
60 WHITESPACE@[54; 55) 61 IDENT@[51; 54) "u32"
61 R_CURLY@[55; 56) 62 WHITESPACE@[54; 55)
63 R_CURLY@[55; 56)
62 WHITESPACE@[56; 58) 64 WHITESPACE@[56; 58)
63 STRUCT_DEF@[58; 70) 65 STRUCT_DEF@[58; 70)
64 STRUCT_KW@[58; 64) 66 STRUCT_KW@[58; 64)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0019_enums.txt b/crates/libsyntax2/tests/data/parser/ok/0019_enums.txt
index f6f653615..0eca75cd8 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0019_enums.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0019_enums.txt
@@ -5,9 +5,10 @@ FILE@[0; 182)
5 NAME@[5; 7) 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 ENUM_VARIANT_LIST@[8; 11)
9 WHITESPACE@[9; 10) 9 L_CURLY@[8; 9)
10 R_CURLY@[10; 11) 10 WHITESPACE@[9; 10)
11 R_CURLY@[10; 11)
11 WHITESPACE@[11; 13) 12 WHITESPACE@[11; 13)
12 ENUM_DEF@[13; 27) 13 ENUM_DEF@[13; 27)
13 ENUM_KW@[13; 17) 14 ENUM_KW@[13; 17)
@@ -21,9 +22,10 @@ FILE@[0; 182)
21 IDENT@[21; 22) "T" 22 IDENT@[21; 22) "T"
22 R_ANGLE@[22; 23) 23 R_ANGLE@[22; 23)
23 WHITESPACE@[23; 24) 24 WHITESPACE@[23; 24)
24 L_CURLY@[24; 25) 25 ENUM_VARIANT_LIST@[24; 27)
25 WHITESPACE@[25; 26) 26 L_CURLY@[24; 25)
26 R_CURLY@[26; 27) 27 WHITESPACE@[25; 26)
28 R_CURLY@[26; 27)
27 WHITESPACE@[27; 29) 29 WHITESPACE@[27; 29)
28 ENUM_DEF@[29; 46) 30 ENUM_DEF@[29; 46)
29 ENUM_KW@[29; 33) 31 ENUM_KW@[29; 33)
@@ -31,13 +33,14 @@ FILE@[0; 182)
31 NAME@[34; 36) 33 NAME@[34; 36)
32 IDENT@[34; 36) "E3" 34 IDENT@[34; 36) "E3"
33 WHITESPACE@[36; 37) 35 WHITESPACE@[36; 37)
34 L_CURLY@[37; 38) 36 ENUM_VARIANT_LIST@[37; 46)
35 WHITESPACE@[38; 43) 37 L_CURLY@[37; 38)
36 ENUM_VARIANT@[43; 44) 38 WHITESPACE@[38; 43)
37 NAME@[43; 44) 39 ENUM_VARIANT@[43; 44)
38 IDENT@[43; 44) "X" 40 NAME@[43; 44)
39 WHITESPACE@[44; 45) 41 IDENT@[43; 44) "X"
40 R_CURLY@[45; 46) 42 WHITESPACE@[44; 45)
43 R_CURLY@[45; 46)
41 WHITESPACE@[46; 48) 44 WHITESPACE@[46; 48)
42 ENUM_DEF@[48; 66) 45 ENUM_DEF@[48; 66)
43 ENUM_KW@[48; 52) 46 ENUM_KW@[48; 52)
@@ -45,14 +48,15 @@ FILE@[0; 182)
45 NAME@[53; 55) 48 NAME@[53; 55)
46 IDENT@[53; 55) "E4" 49 IDENT@[53; 55) "E4"
47 WHITESPACE@[55; 56) 50 WHITESPACE@[55; 56)
48 L_CURLY@[56; 57) 51 ENUM_VARIANT_LIST@[56; 66)
49 WHITESPACE@[57; 62) 52 L_CURLY@[56; 57)
50 ENUM_VARIANT@[62; 63) 53 WHITESPACE@[57; 62)
51 NAME@[62; 63) 54 ENUM_VARIANT@[62; 63)
52 IDENT@[62; 63) "X" 55 NAME@[62; 63)
53 COMMA@[63; 64) 56 IDENT@[62; 63) "X"
54 WHITESPACE@[64; 65) 57 COMMA@[63; 64)
55 R_CURLY@[65; 66) 58 WHITESPACE@[64; 65)
59 R_CURLY@[65; 66)
56 WHITESPACE@[66; 68) 60 WHITESPACE@[66; 68)
57 ENUM_DEF@[68; 181) 61 ENUM_DEF@[68; 181)
58 ENUM_KW@[68; 72) 62 ENUM_KW@[68; 72)
@@ -60,87 +64,92 @@ FILE@[0; 182)
60 NAME@[73; 75) 64 NAME@[73; 75)
61 IDENT@[73; 75) "E5" 65 IDENT@[73; 75) "E5"
62 WHITESPACE@[75; 76) 66 WHITESPACE@[75; 76)
63 L_CURLY@[76; 77) 67 ENUM_VARIANT_LIST@[76; 181)
64 WHITESPACE@[77; 82) 68 L_CURLY@[76; 77)
65 ENUM_VARIANT@[82; 83) 69 WHITESPACE@[77; 82)
66 NAME@[82; 83) 70 ENUM_VARIANT@[82; 83)
67 IDENT@[82; 83) "A" 71 NAME@[82; 83)
68 COMMA@[83; 84) 72 IDENT@[82; 83) "A"
69 WHITESPACE@[84; 89) 73 COMMA@[83; 84)
70 ENUM_VARIANT@[89; 95) 74 WHITESPACE@[84; 89)
71 NAME@[89; 90) 75 ENUM_VARIANT@[89; 95)
72 IDENT@[89; 90) "B" 76 NAME@[89; 90)
73 WHITESPACE@[90; 91) 77 IDENT@[89; 90) "B"
74 EQ@[91; 92) 78 WHITESPACE@[90; 91)
75 WHITESPACE@[92; 93) 79 EQ@[91; 92)
76 LITERAL@[93; 95) 80 WHITESPACE@[92; 93)
77 INT_NUMBER@[93; 95) "92" 81 LITERAL@[93; 95)
78 COMMA@[95; 96) 82 INT_NUMBER@[93; 95) "92"
79 WHITESPACE@[96; 101) 83 COMMA@[95; 96)
80 ENUM_VARIANT@[101; 146) 84 WHITESPACE@[96; 101)
81 NAME@[101; 102) 85 ENUM_VARIANT@[101; 146)
82 IDENT@[101; 102) "C" 86 NAME@[101; 102)
83 WHITESPACE@[102; 103) 87 IDENT@[101; 102) "C"
84 L_CURLY@[103; 104) 88 WHITESPACE@[102; 103)
85 WHITESPACE@[104; 113) 89 NAMED_FIELD_DEF_LIST@[103; 146)
86 NAMED_FIELD@[113; 119) 90 L_CURLY@[103; 104)
87 NAME@[113; 114) 91 WHITESPACE@[104; 113)
88 IDENT@[113; 114) "a" 92 NAMED_FIELD_DEF@[113; 119)
89 COLON@[114; 115) 93 NAME@[113; 114)
90 WHITESPACE@[115; 116) 94 IDENT@[113; 114) "a"
91 PATH_TYPE@[116; 119) 95 COLON@[114; 115)
92 PATH@[116; 119) 96 WHITESPACE@[115; 116)
93 PATH_SEGMENT@[116; 119) 97 PATH_TYPE@[116; 119)
94 NAME_REF@[116; 119) 98 PATH@[116; 119)
95 IDENT@[116; 119) "u32" 99 PATH_SEGMENT@[116; 119)
96 COMMA@[119; 120) 100 NAME_REF@[116; 119)
97 WHITESPACE@[120; 129) 101 IDENT@[116; 119) "u32"
98 NAMED_FIELD@[129; 139) 102 COMMA@[119; 120)
99 VISIBILITY@[129; 132) 103 WHITESPACE@[120; 129)
100 PUB_KW@[129; 132) 104 NAMED_FIELD_DEF@[129; 139)
101 WHITESPACE@[132; 133) 105 VISIBILITY@[129; 132)
102 NAME@[133; 134) 106 PUB_KW@[129; 132)
103 IDENT@[133; 134) "b" 107 WHITESPACE@[132; 133)
104 COLON@[134; 135) 108 NAME@[133; 134)
105 WHITESPACE@[135; 136) 109 IDENT@[133; 134) "b"
106 PATH_TYPE@[136; 139) 110 COLON@[134; 135)
107 PATH@[136; 139) 111 WHITESPACE@[135; 136)
108 PATH_SEGMENT@[136; 139) 112 PATH_TYPE@[136; 139)
109 NAME_REF@[136; 139) 113 PATH@[136; 139)
110 IDENT@[136; 139) "f64" 114 PATH_SEGMENT@[136; 139)
111 COMMA@[139; 140) 115 NAME_REF@[136; 139)
112 WHITESPACE@[140; 145) 116 IDENT@[136; 139) "f64"
113 R_CURLY@[145; 146) 117 COMMA@[139; 140)
114 COMMA@[146; 147) 118 WHITESPACE@[140; 145)
115 WHITESPACE@[147; 152) 119 R_CURLY@[145; 146)
116 ENUM_VARIANT@[152; 156) 120 COMMA@[146; 147)
117 NAME@[152; 153) 121 WHITESPACE@[147; 152)
118 IDENT@[152; 153) "F" 122 ENUM_VARIANT@[152; 156)
119 WHITESPACE@[153; 154) 123 NAME@[152; 153)
120 L_CURLY@[154; 155) 124 IDENT@[152; 153) "F"
121 R_CURLY@[155; 156) 125 WHITESPACE@[153; 154)
122 COMMA@[156; 157) 126 NAMED_FIELD_DEF_LIST@[154; 156)
123 WHITESPACE@[157; 162) 127 L_CURLY@[154; 155)
124 ENUM_VARIANT@[162; 169) 128 R_CURLY@[155; 156)
125 NAME@[162; 163) 129 COMMA@[156; 157)
126 IDENT@[162; 163) "D" 130 WHITESPACE@[157; 162)
127 L_PAREN@[163; 164) 131 ENUM_VARIANT@[162; 169)
128 POS_FIELD@[164; 167) 132 NAME@[162; 163)
129 PATH_TYPE@[164; 167) 133 IDENT@[162; 163) "D"
130 PATH@[164; 167) 134 POS_FIELD_LIST@[163; 169)
131 PATH_SEGMENT@[164; 167) 135 L_PAREN@[163; 164)
132 NAME_REF@[164; 167) 136 POS_FIELD@[164; 167)
133 IDENT@[164; 167) "u32" 137 PATH_TYPE@[164; 167)
134 COMMA@[167; 168) 138 PATH@[164; 167)
135 R_PAREN@[168; 169) 139 PATH_SEGMENT@[164; 167)
136 COMMA@[169; 170) 140 NAME_REF@[164; 167)
137 WHITESPACE@[170; 175) 141 IDENT@[164; 167) "u32"
138 ENUM_VARIANT@[175; 178) 142 COMMA@[167; 168)
139 NAME@[175; 176) 143 R_PAREN@[168; 169)
140 IDENT@[175; 176) "E" 144 COMMA@[169; 170)
141 L_PAREN@[176; 177) 145 WHITESPACE@[170; 175)
142 R_PAREN@[177; 178) 146 ENUM_VARIANT@[175; 178)
143 COMMA@[178; 179) 147 NAME@[175; 176)
144 WHITESPACE@[179; 180) 148 IDENT@[175; 176) "E"
145 R_CURLY@[180; 181) 149 POS_FIELD_LIST@[176; 178)
150 L_PAREN@[176; 177)
151 R_PAREN@[177; 178)
152 COMMA@[178; 179)
153 WHITESPACE@[179; 180)
154 R_CURLY@[180; 181)
146 WHITESPACE@[181; 182) 155 WHITESPACE@[181; 182)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.txt b/crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.txt
index 3a153c358..c3f377857 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0021_extern_fn.txt
@@ -11,7 +11,7 @@ FILE@[0; 71)
11 L_PAREN@[13; 14) 11 L_PAREN@[13; 14)
12 R_PAREN@[14; 15) 12 R_PAREN@[14; 15)
13 WHITESPACE@[15; 16) 13 WHITESPACE@[15; 16)
14 BLOCK_EXPR@[16; 19) 14 BLOCK@[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)
@@ -30,7 +30,7 @@ FILE@[0; 71)
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; 44) 33 BLOCK@[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)
@@ -49,7 +49,7 @@ FILE@[0; 71)
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; 70) 52 BLOCK@[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)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.txt b/crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.txt
index 81b92d394..075055bfe 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0022_empty_extern_block.txt
@@ -1,19 +1,21 @@
1FILE@[0; 27) 1FILE@[0; 27)
2 EXTERN_BLOCK_EXPR@[0; 10) 2 EXTERN_BLOCK@[0; 10)
3 ABI@[0; 6) 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 EXTERN_ITEM_LIST@[7; 10)
7 WHITESPACE@[8; 9) 7 L_CURLY@[7; 8)
8 R_CURLY@[9; 10) 8 WHITESPACE@[8; 9)
9 R_CURLY@[9; 10)
9 WHITESPACE@[10; 12) 10 WHITESPACE@[10; 12)
10 EXTERN_BLOCK_EXPR@[12; 26) 11 EXTERN_BLOCK@[12; 26)
11 ABI@[12; 22) 12 ABI@[12; 22)
12 EXTERN_KW@[12; 18) 13 EXTERN_KW@[12; 18)
13 WHITESPACE@[18; 19) 14 WHITESPACE@[18; 19)
14 STRING@[19; 22) 15 STRING@[19; 22)
15 WHITESPACE@[22; 23) 16 WHITESPACE@[22; 23)
16 L_CURLY@[23; 24) 17 EXTERN_ITEM_LIST@[23; 26)
17 WHITESPACE@[24; 25) 18 L_CURLY@[23; 24)
18 R_CURLY@[25; 26) 19 WHITESPACE@[24; 25)
20 R_CURLY@[25; 26)
19 WHITESPACE@[26; 27) 21 WHITESPACE@[26; 27)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.txt b/crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.txt
index 82736af91..088c6b54c 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0025_extern_fn_in_block.txt
@@ -8,7 +8,7 @@ FILE@[0; 35)
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@[10; 34)
12 L_CURLY@[10; 11) 12 L_CURLY@[10; 11)
13 WHITESPACE@[11; 16) 13 WHITESPACE@[11; 16)
14 FN_DEF@[16; 32) 14 FN_DEF@[16; 32)
@@ -23,7 +23,7 @@ FILE@[0; 35)
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; 32) 26 BLOCK@[30; 32)
27 L_CURLY@[30; 31) 27 L_CURLY@[30; 31)
28 R_CURLY@[31; 32) 28 R_CURLY@[31; 32)
29 WHITESPACE@[32; 33) 29 WHITESPACE@[32; 33)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.txt b/crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.txt
index 5e5430680..246ea583f 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0026_const_fn_in_block.txt
@@ -8,7 +8,7 @@ FILE@[0; 34)
8 L_PAREN@[7; 8) 8 L_PAREN@[7; 8)
9 R_PAREN@[8; 9) 9 R_PAREN@[8; 9)
10 WHITESPACE@[9; 10) 10 WHITESPACE@[9; 10)
11 BLOCK_EXPR@[10; 33) 11 BLOCK@[10; 33)
12 L_CURLY@[10; 11) 12 L_CURLY@[10; 11)
13 WHITESPACE@[11; 16) 13 WHITESPACE@[11; 16)
14 FN_DEF@[16; 31) 14 FN_DEF@[16; 31)
@@ -22,7 +22,7 @@ FILE@[0; 34)
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; 31) 25 BLOCK@[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)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.txt b/crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.txt
index 848df9b9b..03acfd891 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0027_unsafe_fn_in_block.txt
@@ -8,7 +8,7 @@ FILE@[0; 53)
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@[10; 52)
12 L_CURLY@[10; 11) 12 L_CURLY@[10; 11)
13 WHITESPACE@[11; 16) 13 WHITESPACE@[11; 16)
14 FN_DEF@[16; 32) 14 FN_DEF@[16; 32)
@@ -22,19 +22,20 @@ FILE@[0; 53)
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; 32) 25 BLOCK@[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; 50) 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 BLOCK@[44; 50)
33 WHITESPACE@[45; 46) 33 L_CURLY@[44; 45)
34 LITERAL@[46; 48) 34 WHITESPACE@[45; 46)
35 INT_NUMBER@[46; 48) "92" 35 LITERAL@[46; 48)
36 WHITESPACE@[48; 49) 36 INT_NUMBER@[46; 48) "92"
37 R_CURLY@[49; 50) 37 WHITESPACE@[48; 49)
38 R_CURLY@[49; 50)
38 WHITESPACE@[50; 51) 39 WHITESPACE@[50; 51)
39 R_CURLY@[51; 52) 40 R_CURLY@[51; 52)
40 WHITESPACE@[52; 53) 41 WHITESPACE@[52; 53)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.txt b/crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.txt
index a446066d3..aa1fa0a81 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0028_operator_binding_power.txt
@@ -8,7 +8,7 @@ FILE@[0; 248)
8 L_PAREN@[16; 17) 8 L_PAREN@[16; 17)
9 R_PAREN@[17; 18) 9 R_PAREN@[17; 18)
10 WHITESPACE@[18; 19) 10 WHITESPACE@[18; 19)
11 BLOCK_EXPR@[19; 247) 11 BLOCK@[19; 247)
12 L_CURLY@[19; 20) 12 L_CURLY@[19; 20)
13 WHITESPACE@[20; 25) 13 WHITESPACE@[20; 25)
14 LET_STMT@[25; 55) 14 LET_STMT@[25; 55)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0029_range_forms.txt b/crates/libsyntax2/tests/data/parser/ok/0029_range_forms.txt
index 619582dfc..28fd89ca4 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0029_range_forms.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0029_range_forms.txt
@@ -8,7 +8,7 @@ FILE@[0; 79)
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@[9; 78)
12 L_CURLY@[9; 10) 12 L_CURLY@[9; 10)
13 WHITESPACE@[10; 15) 13 WHITESPACE@[10; 15)
14 EXPR_STMT@[15; 23) 14 EXPR_STMT@[15; 23)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0030_traits.txt b/crates/libsyntax2/tests/data/parser/ok/0030_traits.txt
index 88282ca1a..ab87864fc 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0030_traits.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0030_traits.txt
@@ -8,27 +8,28 @@ FILE@[0; 164)
8 NAME@[10; 22) 8 NAME@[10; 22)
9 IDENT@[10; 22) "WriteMessage" 9 IDENT@[10; 22) "WriteMessage"
10 WHITESPACE@[22; 23) 10 WHITESPACE@[22; 23)
11 L_CURLY@[23; 24) 11 ITEM_LIST@[23; 66)
12 WHITESPACE@[24; 29) 12 L_CURLY@[23; 24)
13 FN_DEF@[29; 64) 13 WHITESPACE@[24; 29)
14 FN_KW@[29; 31) 14 FN_DEF@[29; 64)
15 WHITESPACE@[31; 32) 15 FN_KW@[29; 31)
16 NAME@[32; 45) 16 WHITESPACE@[31; 32)
17 IDENT@[32; 45) "write_message" 17 NAME@[32; 45)
18 PARAM_LIST@[45; 63) 18 IDENT@[32; 45) "write_message"
19 L_PAREN@[45; 46) 19 PARAM_LIST@[45; 63)
20 PARAM@[46; 62) 20 L_PAREN@[45; 46)
21 REFERENCE_TYPE@[46; 62) 21 PARAM@[46; 62)
22 AMP@[46; 47) 22 REFERENCE_TYPE@[46; 62)
23 PATH_TYPE@[47; 62) 23 AMP@[46; 47)
24 PATH@[47; 62) 24 PATH_TYPE@[47; 62)
25 PATH_SEGMENT@[47; 62) 25 PATH@[47; 62)
26 NAME_REF@[47; 62) 26 PATH_SEGMENT@[47; 62)
27 IDENT@[47; 62) "FrontendMessage" 27 NAME_REF@[47; 62)
28 R_PAREN@[62; 63) 28 IDENT@[47; 62) "FrontendMessage"
29 SEMI@[63; 64) 29 R_PAREN@[62; 63)
30 WHITESPACE@[64; 65) 30 SEMI@[63; 64)
31 R_CURLY@[65; 66) 31 WHITESPACE@[64; 65)
32 R_CURLY@[65; 66)
32 WHITESPACE@[66; 68) 33 WHITESPACE@[66; 68)
33 TRAIT_DEF@[68; 104) 34 TRAIT_DEF@[68; 104)
34 TRAIT_KW@[68; 73) 35 TRAIT_KW@[68; 73)
@@ -36,19 +37,20 @@ FILE@[0; 164)
36 NAME@[74; 82) 37 NAME@[74; 82)
37 IDENT@[74; 82) "Runnable" 38 IDENT@[74; 82) "Runnable"
38 WHITESPACE@[82; 83) 39 WHITESPACE@[82; 83)
39 L_CURLY@[83; 84) 40 ITEM_LIST@[83; 104)
40 WHITESPACE@[84; 89) 41 L_CURLY@[83; 84)
41 FN_DEF@[89; 102) 42 WHITESPACE@[84; 89)
42 FN_KW@[89; 91) 43 FN_DEF@[89; 102)
43 WHITESPACE@[91; 92) 44 FN_KW@[89; 91)
44 NAME@[92; 99) 45 WHITESPACE@[91; 92)
45 IDENT@[92; 99) "handler" 46 NAME@[92; 99)
46 PARAM_LIST@[99; 101) 47 IDENT@[92; 99) "handler"
47 L_PAREN@[99; 100) 48 PARAM_LIST@[99; 101)
48 R_PAREN@[100; 101) 49 L_PAREN@[99; 100)
49 SEMI@[101; 102) 50 R_PAREN@[100; 101)
50 WHITESPACE@[102; 103) 51 SEMI@[101; 102)
51 R_CURLY@[103; 104) 52 WHITESPACE@[102; 103)
53 R_CURLY@[103; 104)
52 WHITESPACE@[104; 106) 54 WHITESPACE@[104; 106)
53 TRAIT_DEF@[106; 163) 55 TRAIT_DEF@[106; 163)
54 TRAIT_KW@[106; 111) 56 TRAIT_KW@[106; 111)
@@ -56,35 +58,36 @@ FILE@[0; 164)
56 NAME@[112; 125) 58 NAME@[112; 125)
57 IDENT@[112; 125) "TraitWithExpr" 59 IDENT@[112; 125) "TraitWithExpr"
58 WHITESPACE@[125; 126) 60 WHITESPACE@[125; 126)
59 L_CURLY@[126; 127) 61 ITEM_LIST@[126; 163)
60 WHITESPACE@[127; 132) 62 L_CURLY@[126; 127)
61 FN_DEF@[132; 161) 63 WHITESPACE@[127; 132)
62 FN_KW@[132; 134) 64 FN_DEF@[132; 161)
63 WHITESPACE@[134; 135) 65 FN_KW@[132; 134)
64 NAME@[135; 147) 66 WHITESPACE@[134; 135)
65 IDENT@[135; 147) "fn_with_expr" 67 NAME@[135; 147)
66 PARAM_LIST@[147; 160) 68 IDENT@[135; 147) "fn_with_expr"
67 L_PAREN@[147; 148) 69 PARAM_LIST@[147; 160)
68 PARAM@[148; 159) 70 L_PAREN@[147; 148)
69 BIND_PAT@[148; 149) 71 PARAM@[148; 159)
70 NAME@[148; 149) 72 BIND_PAT@[148; 149)
71 IDENT@[148; 149) "x" 73 NAME@[148; 149)
72 COLON@[149; 150) 74 IDENT@[148; 149) "x"
73 WHITESPACE@[150; 151) 75 COLON@[149; 150)
74 ARRAY_TYPE@[151; 159) 76 WHITESPACE@[150; 151)
75 L_BRACK@[151; 152) 77 ARRAY_TYPE@[151; 159)
76 PATH_TYPE@[152; 155) 78 L_BRACK@[151; 152)
77 PATH@[152; 155) 79 PATH_TYPE@[152; 155)
78 PATH_SEGMENT@[152; 155) 80 PATH@[152; 155)
79 NAME_REF@[152; 155) 81 PATH_SEGMENT@[152; 155)
80 IDENT@[152; 155) "i32" 82 NAME_REF@[152; 155)
81 SEMI@[155; 156) 83 IDENT@[152; 155) "i32"
82 WHITESPACE@[156; 157) 84 SEMI@[155; 156)
83 LITERAL@[157; 158) 85 WHITESPACE@[156; 157)
84 INT_NUMBER@[157; 158) "1" 86 LITERAL@[157; 158)
85 R_BRACK@[158; 159) 87 INT_NUMBER@[157; 158) "1"
86 R_PAREN@[159; 160) 88 R_BRACK@[158; 159)
87 SEMI@[160; 161) 89 R_PAREN@[159; 160)
88 WHITESPACE@[161; 162) 90 SEMI@[160; 161)
89 R_CURLY@[162; 163) 91 WHITESPACE@[161; 162)
92 R_CURLY@[162; 163)
90 WHITESPACE@[163; 164) 93 WHITESPACE@[163; 164)