diff options
-rw-r--r-- | src/parser/grammar/items/structs.rs | 4 | ||||
-rw-r--r-- | tests/data/parser/err/0000_struct_field_missing_comma.txt | 7 | ||||
-rw-r--r-- | tests/data/parser/err/0001_item_recovery_in_file.txt | 7 | ||||
-rw-r--r-- | tests/data/parser/err/0003_C++_semicolon.txt | 7 | ||||
-rw-r--r-- | tests/data/parser/err/0006_named_field_recovery.txt | 7 | ||||
-rw-r--r-- | tests/data/parser/err/0007_stray_curly_in_file.txt | 5 | ||||
-rw-r--r-- | tests/data/parser/err/0009_broken_struct_type_parameter.txt | 10 | ||||
-rw-r--r-- | tests/data/parser/inline/0006_extern_struct.txt | 5 | ||||
-rw-r--r-- | tests/data/parser/ok/0001_struct_item.txt | 7 | ||||
-rw-r--r-- | tests/data/parser/ok/0002_struct_item_field.txt | 7 | ||||
-rw-r--r-- | tests/data/parser/ok/0008_mod_item.txt | 7 | ||||
-rw-r--r-- | tests/data/parser/ok/0016_struct_flavors.txt | 29 | ||||
-rw-r--r-- | tests/data/parser/ok/0018_struct_type_params.txt | 75 | ||||
-rw-r--r-- | tests/data/parser/ok/0020_type_param_bounds.txt | 45 |
14 files changed, 130 insertions, 92 deletions
diff --git a/src/parser/grammar/items/structs.rs b/src/parser/grammar/items/structs.rs index 640b940e4..3b1f8a38c 100644 --- a/src/parser/grammar/items/structs.rs +++ b/src/parser/grammar/items/structs.rs | |||
@@ -4,9 +4,7 @@ pub(super) fn struct_item(p: &mut Parser) { | |||
4 | assert!(p.at(STRUCT_KW)); | 4 | assert!(p.at(STRUCT_KW)); |
5 | p.bump(); | 5 | p.bump(); |
6 | 6 | ||
7 | if !p.expect(IDENT) { | 7 | name(p); |
8 | return; | ||
9 | } | ||
10 | type_params::list(p); | 8 | type_params::list(p); |
11 | match p.current() { | 9 | match p.current() { |
12 | WHERE_KW => { | 10 | WHERE_KW => { |
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 d94b4fd9e..2c761694c 100644 --- a/tests/data/parser/err/0000_struct_field_missing_comma.txt +++ b/tests/data/parser/err/0000_struct_field_missing_comma.txt | |||
@@ -1,9 +1,10 @@ | |||
1 | FILE@[0; 34) | 1 | FILE@[0; 34) |
2 | STRUCT_ITEM@[0; 34) | 2 | STRUCT_ITEM@[0; 34) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | NAME@[6; 9) |
5 | IDENT@[7; 8) "S" | 5 | WHITESPACE@[6; 7) |
6 | WHITESPACE@[8; 9) | 6 | IDENT@[7; 8) "S" |
7 | WHITESPACE@[8; 9) | ||
7 | L_CURLY@[9; 10) | 8 | L_CURLY@[9; 10) |
8 | NAMED_FIELD@[10; 26) | 9 | NAMED_FIELD@[10; 26) |
9 | WHITESPACE@[10; 15) | 10 | WHITESPACE@[10; 15) |
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 c33113c6d..e41ddc009 100644 --- a/tests/data/parser/err/0001_item_recovery_in_file.txt +++ b/tests/data/parser/err/0001_item_recovery_in_file.txt | |||
@@ -9,8 +9,9 @@ FILE@[0; 21) | |||
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 | WHITESPACE@[16; 17) | 12 | NAME@[16; 19) |
13 | IDENT@[17; 18) "S" | 13 | WHITESPACE@[16; 17) |
14 | WHITESPACE@[18; 19) | 14 | IDENT@[17; 18) "S" |
15 | WHITESPACE@[18; 19) | ||
15 | L_CURLY@[19; 20) | 16 | L_CURLY@[19; 20) |
16 | R_CURLY@[20; 21) | 17 | R_CURLY@[20; 21) |
diff --git a/tests/data/parser/err/0003_C++_semicolon.txt b/tests/data/parser/err/0003_C++_semicolon.txt index d77c06378..e567b0775 100644 --- a/tests/data/parser/err/0003_C++_semicolon.txt +++ b/tests/data/parser/err/0003_C++_semicolon.txt | |||
@@ -1,9 +1,10 @@ | |||
1 | FILE@[0; 40) | 1 | FILE@[0; 40) |
2 | STRUCT_ITEM@[0; 39) | 2 | STRUCT_ITEM@[0; 39) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | NAME@[6; 9) |
5 | IDENT@[7; 8) "S" | 5 | WHITESPACE@[6; 7) |
6 | WHITESPACE@[8; 9) | 6 | IDENT@[7; 8) "S" |
7 | WHITESPACE@[8; 9) | ||
7 | L_CURLY@[9; 10) | 8 | L_CURLY@[9; 10) |
8 | NAMED_FIELD@[10; 21) | 9 | NAMED_FIELD@[10; 21) |
9 | WHITESPACE@[10; 15) | 10 | WHITESPACE@[10; 15) |
diff --git a/tests/data/parser/err/0006_named_field_recovery.txt b/tests/data/parser/err/0006_named_field_recovery.txt index 0437bf2e7..7886beeb8 100644 --- a/tests/data/parser/err/0006_named_field_recovery.txt +++ b/tests/data/parser/err/0006_named_field_recovery.txt | |||
@@ -1,9 +1,10 @@ | |||
1 | FILE@[0; 74) | 1 | FILE@[0; 74) |
2 | STRUCT_ITEM@[0; 74) | 2 | STRUCT_ITEM@[0; 74) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | NAME@[6; 9) |
5 | IDENT@[7; 8) "S" | 5 | WHITESPACE@[6; 7) |
6 | WHITESPACE@[8; 9) | 6 | IDENT@[7; 8) "S" |
7 | WHITESPACE@[8; 9) | ||
7 | L_CURLY@[9; 10) | 8 | L_CURLY@[9; 10) |
8 | NAMED_FIELD@[10; 21) | 9 | NAMED_FIELD@[10; 21) |
9 | WHITESPACE@[10; 15) | 10 | WHITESPACE@[10; 15) |
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 6460d06d8..f20807bfe 100644 --- a/tests/data/parser/err/0007_stray_curly_in_file.txt +++ b/tests/data/parser/err/0007_stray_curly_in_file.txt | |||
@@ -5,8 +5,9 @@ FILE@[0; 31) | |||
5 | WHITESPACE@[1; 3) | 5 | WHITESPACE@[1; 3) |
6 | STRUCT_ITEM@[3; 14) | 6 | STRUCT_ITEM@[3; 14) |
7 | STRUCT_KW@[3; 9) | 7 | STRUCT_KW@[3; 9) |
8 | WHITESPACE@[9; 10) | 8 | NAME@[9; 11) |
9 | IDENT@[10; 11) "S" | 9 | WHITESPACE@[9; 10) |
10 | IDENT@[10; 11) "S" | ||
10 | SEMI@[11; 12) | 11 | SEMI@[11; 12) |
11 | WHITESPACE@[12; 14) | 12 | WHITESPACE@[12; 14) |
12 | ERROR@[14; 17) | 13 | ERROR@[14; 17) |
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 f329735b6..9434a764a 100644 --- a/tests/data/parser/err/0009_broken_struct_type_parameter.txt +++ b/tests/data/parser/err/0009_broken_struct_type_parameter.txt | |||
@@ -1,8 +1,9 @@ | |||
1 | FILE@[0; 43) | 1 | FILE@[0; 43) |
2 | STRUCT_ITEM@[0; 12) | 2 | STRUCT_ITEM@[0; 12) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | NAME@[6; 8) |
5 | IDENT@[7; 8) "S" | 5 | WHITESPACE@[6; 7) |
6 | IDENT@[7; 8) "S" | ||
6 | TYPE_PARAM_LIST@[8; 12) | 7 | TYPE_PARAM_LIST@[8; 12) |
7 | L_ANGLE@[8; 9) | 8 | L_ANGLE@[8; 9) |
8 | ERROR@[9; 12) | 9 | ERROR@[9; 12) |
@@ -36,7 +37,8 @@ FILE@[0; 43) | |||
36 | WHITESPACE@[31; 33) | 37 | WHITESPACE@[31; 33) |
37 | STRUCT_ITEM@[33; 43) | 38 | STRUCT_ITEM@[33; 43) |
38 | STRUCT_KW@[33; 39) | 39 | STRUCT_KW@[33; 39) |
39 | WHITESPACE@[39; 40) | 40 | NAME@[39; 41) |
40 | IDENT@[40; 41) "T" | 41 | WHITESPACE@[39; 40) |
42 | IDENT@[40; 41) "T" | ||
41 | SEMI@[41; 42) | 43 | SEMI@[41; 42) |
42 | WHITESPACE@[42; 43) | 44 | WHITESPACE@[42; 43) |
diff --git a/tests/data/parser/inline/0006_extern_struct.txt b/tests/data/parser/inline/0006_extern_struct.txt index 13917d7f3..93a5b0477 100644 --- a/tests/data/parser/inline/0006_extern_struct.txt +++ b/tests/data/parser/inline/0006_extern_struct.txt | |||
@@ -5,7 +5,8 @@ FILE@[0; 19) | |||
5 | err: `expected `fn` or `{`` | 5 | err: `expected `fn` or `{`` |
6 | STRUCT_ITEM@[7; 19) | 6 | STRUCT_ITEM@[7; 19) |
7 | STRUCT_KW@[7; 13) | 7 | STRUCT_KW@[7; 13) |
8 | WHITESPACE@[13; 14) | 8 | NAME@[13; 17) |
9 | IDENT@[14; 17) "Foo" | 9 | WHITESPACE@[13; 14) |
10 | IDENT@[14; 17) "Foo" | ||
10 | SEMI@[17; 18) | 11 | SEMI@[17; 18) |
11 | WHITESPACE@[18; 19) | 12 | WHITESPACE@[18; 19) |
diff --git a/tests/data/parser/ok/0001_struct_item.txt b/tests/data/parser/ok/0001_struct_item.txt index c280a434f..b0195c316 100644 --- a/tests/data/parser/ok/0001_struct_item.txt +++ b/tests/data/parser/ok/0001_struct_item.txt | |||
@@ -1,9 +1,10 @@ | |||
1 | FILE@[0; 13) | 1 | FILE@[0; 13) |
2 | STRUCT_ITEM@[0; 13) | 2 | STRUCT_ITEM@[0; 13) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | NAME@[6; 9) |
5 | IDENT@[7; 8) "S" | 5 | WHITESPACE@[6; 7) |
6 | WHITESPACE@[8; 9) | 6 | IDENT@[7; 8) "S" |
7 | WHITESPACE@[8; 9) | ||
7 | L_CURLY@[9; 10) | 8 | L_CURLY@[9; 10) |
8 | WHITESPACE@[10; 12) | 9 | WHITESPACE@[10; 12) |
9 | 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 5a7bfbaec..285e6a8ef 100644 --- a/tests/data/parser/ok/0002_struct_item_field.txt +++ b/tests/data/parser/ok/0002_struct_item_field.txt | |||
@@ -1,9 +1,10 @@ | |||
1 | FILE@[0; 25) | 1 | FILE@[0; 25) |
2 | STRUCT_ITEM@[0; 25) | 2 | STRUCT_ITEM@[0; 25) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | NAME@[6; 9) |
5 | IDENT@[7; 8) "S" | 5 | WHITESPACE@[6; 7) |
6 | WHITESPACE@[8; 9) | 6 | IDENT@[7; 8) "S" |
7 | WHITESPACE@[8; 9) | ||
7 | L_CURLY@[9; 10) | 8 | L_CURLY@[9; 10) |
8 | NAMED_FIELD@[10; 24) | 9 | NAMED_FIELD@[10; 24) |
9 | WHITESPACE@[10; 15) | 10 | WHITESPACE@[10; 15) |
diff --git a/tests/data/parser/ok/0008_mod_item.txt b/tests/data/parser/ok/0008_mod_item.txt index aacf1ffc7..99cc30e98 100644 --- a/tests/data/parser/ok/0008_mod_item.txt +++ b/tests/data/parser/ok/0008_mod_item.txt | |||
@@ -35,9 +35,10 @@ FILE@[0; 118) | |||
35 | WHITESPACE@[47; 52) | 35 | WHITESPACE@[47; 52) |
36 | STRUCT_ITEM@[52; 64) | 36 | STRUCT_ITEM@[52; 64) |
37 | STRUCT_KW@[52; 58) | 37 | STRUCT_KW@[52; 58) |
38 | WHITESPACE@[58; 59) | 38 | NAME@[58; 61) |
39 | IDENT@[59; 60) "S" | 39 | WHITESPACE@[58; 59) |
40 | WHITESPACE@[60; 61) | 40 | IDENT@[59; 60) "S" |
41 | WHITESPACE@[60; 61) | ||
41 | L_CURLY@[61; 62) | 42 | L_CURLY@[61; 62) |
42 | R_CURLY@[62; 63) | 43 | R_CURLY@[62; 63) |
43 | WHITESPACE@[63; 64) | 44 | WHITESPACE@[63; 64) |
diff --git a/tests/data/parser/ok/0016_struct_flavors.txt b/tests/data/parser/ok/0016_struct_flavors.txt index d5d3a0183..445559250 100644 --- a/tests/data/parser/ok/0016_struct_flavors.txt +++ b/tests/data/parser/ok/0016_struct_flavors.txt | |||
@@ -1,31 +1,35 @@ | |||
1 | FILE@[0; 97) | 1 | FILE@[0; 97) |
2 | STRUCT_ITEM@[0; 10) | 2 | STRUCT_ITEM@[0; 10) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | NAME@[6; 8) |
5 | IDENT@[7; 8) "A" | 5 | WHITESPACE@[6; 7) |
6 | IDENT@[7; 8) "A" | ||
6 | SEMI@[8; 9) | 7 | SEMI@[8; 9) |
7 | WHITESPACE@[9; 10) | 8 | WHITESPACE@[9; 10) |
8 | STRUCT_ITEM@[10; 22) | 9 | STRUCT_ITEM@[10; 22) |
9 | STRUCT_KW@[10; 16) | 10 | STRUCT_KW@[10; 16) |
10 | WHITESPACE@[16; 17) | 11 | NAME@[16; 19) |
11 | IDENT@[17; 18) "B" | 12 | WHITESPACE@[16; 17) |
12 | WHITESPACE@[18; 19) | 13 | IDENT@[17; 18) "B" |
14 | WHITESPACE@[18; 19) | ||
13 | L_CURLY@[19; 20) | 15 | L_CURLY@[19; 20) |
14 | R_CURLY@[20; 21) | 16 | R_CURLY@[20; 21) |
15 | WHITESPACE@[21; 22) | 17 | WHITESPACE@[21; 22) |
16 | STRUCT_ITEM@[22; 35) | 18 | STRUCT_ITEM@[22; 35) |
17 | STRUCT_KW@[22; 28) | 19 | STRUCT_KW@[22; 28) |
18 | WHITESPACE@[28; 29) | 20 | NAME@[28; 30) |
19 | IDENT@[29; 30) "C" | 21 | WHITESPACE@[28; 29) |
22 | IDENT@[29; 30) "C" | ||
20 | L_PAREN@[30; 31) | 23 | L_PAREN@[30; 31) |
21 | R_PAREN@[31; 32) | 24 | R_PAREN@[31; 32) |
22 | SEMI@[32; 33) | 25 | SEMI@[32; 33) |
23 | WHITESPACE@[33; 35) | 26 | WHITESPACE@[33; 35) |
24 | STRUCT_ITEM@[35; 76) | 27 | STRUCT_ITEM@[35; 76) |
25 | STRUCT_KW@[35; 41) | 28 | STRUCT_KW@[35; 41) |
26 | WHITESPACE@[41; 42) | 29 | NAME@[41; 44) |
27 | IDENT@[42; 43) "D" | 30 | WHITESPACE@[41; 42) |
28 | WHITESPACE@[43; 44) | 31 | IDENT@[42; 43) "D" |
32 | WHITESPACE@[43; 44) | ||
29 | L_CURLY@[44; 45) | 33 | L_CURLY@[44; 45) |
30 | NAMED_FIELD@[45; 56) | 34 | NAMED_FIELD@[45; 56) |
31 | WHITESPACE@[45; 50) | 35 | WHITESPACE@[45; 50) |
@@ -48,8 +52,9 @@ FILE@[0; 97) | |||
48 | WHITESPACE@[74; 76) | 52 | WHITESPACE@[74; 76) |
49 | STRUCT_ITEM@[76; 97) | 53 | STRUCT_ITEM@[76; 97) |
50 | STRUCT_KW@[76; 82) | 54 | STRUCT_KW@[76; 82) |
51 | WHITESPACE@[82; 83) | 55 | NAME@[82; 84) |
52 | IDENT@[83; 84) "E" | 56 | WHITESPACE@[82; 83) |
57 | IDENT@[83; 84) "E" | ||
53 | L_PAREN@[84; 85) | 58 | L_PAREN@[84; 85) |
54 | POS_FIELD@[85; 90) | 59 | POS_FIELD@[85; 90) |
55 | VISIBILITY@[85; 89) | 60 | VISIBILITY@[85; 89) |
diff --git a/tests/data/parser/ok/0018_struct_type_params.txt b/tests/data/parser/ok/0018_struct_type_params.txt index 6df786f42..34b73e8fd 100644 --- a/tests/data/parser/ok/0018_struct_type_params.txt +++ b/tests/data/parser/ok/0018_struct_type_params.txt | |||
@@ -1,8 +1,9 @@ | |||
1 | FILE@[0; 290) | 1 | FILE@[0; 290) |
2 | STRUCT_ITEM@[0; 14) | 2 | STRUCT_ITEM@[0; 14) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | NAME@[6; 9) |
5 | IDENT@[7; 9) "S1" | 5 | WHITESPACE@[6; 7) |
6 | IDENT@[7; 9) "S1" | ||
6 | TYPE_PARAM_LIST@[9; 12) | 7 | TYPE_PARAM_LIST@[9; 12) |
7 | L_ANGLE@[9; 10) | 8 | L_ANGLE@[9; 10) |
8 | TYPE_PARAM@[10; 11) | 9 | TYPE_PARAM@[10; 11) |
@@ -12,8 +13,9 @@ FILE@[0; 290) | |||
12 | WHITESPACE@[13; 14) | 13 | WHITESPACE@[13; 14) |
13 | STRUCT_ITEM@[14; 33) | 14 | STRUCT_ITEM@[14; 33) |
14 | STRUCT_KW@[14; 20) | 15 | STRUCT_KW@[14; 20) |
15 | WHITESPACE@[20; 21) | 16 | NAME@[20; 23) |
16 | IDENT@[21; 23) "S2" | 17 | WHITESPACE@[20; 21) |
18 | IDENT@[21; 23) "S2" | ||
17 | TYPE_PARAM_LIST@[23; 26) | 19 | TYPE_PARAM_LIST@[23; 26) |
18 | L_ANGLE@[23; 24) | 20 | L_ANGLE@[23; 24) |
19 | TYPE_PARAM@[24; 25) | 21 | TYPE_PARAM@[24; 25) |
@@ -27,8 +29,9 @@ FILE@[0; 290) | |||
27 | WHITESPACE@[32; 33) | 29 | WHITESPACE@[32; 33) |
28 | STRUCT_ITEM@[33; 58) | 30 | STRUCT_ITEM@[33; 58) |
29 | STRUCT_KW@[33; 39) | 31 | STRUCT_KW@[33; 39) |
30 | WHITESPACE@[39; 40) | 32 | NAME@[39; 42) |
31 | IDENT@[40; 42) "S3" | 33 | WHITESPACE@[39; 40) |
34 | IDENT@[40; 42) "S3" | ||
32 | TYPE_PARAM_LIST@[42; 46) | 35 | TYPE_PARAM_LIST@[42; 46) |
33 | L_ANGLE@[42; 43) | 36 | L_ANGLE@[42; 43) |
34 | TYPE_PARAM@[43; 44) | 37 | TYPE_PARAM@[43; 44) |
@@ -47,8 +50,9 @@ FILE@[0; 290) | |||
47 | WHITESPACE@[56; 58) | 50 | WHITESPACE@[56; 58) |
48 | STRUCT_ITEM@[58; 71) | 51 | STRUCT_ITEM@[58; 71) |
49 | STRUCT_KW@[58; 64) | 52 | STRUCT_KW@[58; 64) |
50 | WHITESPACE@[64; 65) | 53 | NAME@[64; 67) |
51 | IDENT@[65; 67) "S4" | 54 | WHITESPACE@[64; 65) |
55 | IDENT@[65; 67) "S4" | ||
52 | TYPE_PARAM_LIST@[67; 69) | 56 | TYPE_PARAM_LIST@[67; 69) |
53 | L_ANGLE@[67; 68) | 57 | L_ANGLE@[67; 68) |
54 | R_ANGLE@[68; 69) | 58 | R_ANGLE@[68; 69) |
@@ -56,8 +60,9 @@ FILE@[0; 290) | |||
56 | WHITESPACE@[70; 71) | 60 | WHITESPACE@[70; 71) |
57 | STRUCT_ITEM@[71; 86) | 61 | STRUCT_ITEM@[71; 86) |
58 | STRUCT_KW@[71; 77) | 62 | STRUCT_KW@[71; 77) |
59 | WHITESPACE@[77; 78) | 63 | NAME@[77; 80) |
60 | IDENT@[78; 80) "S5" | 64 | WHITESPACE@[77; 78) |
65 | IDENT@[78; 80) "S5" | ||
61 | TYPE_PARAM_LIST@[80; 84) | 66 | TYPE_PARAM_LIST@[80; 84) |
62 | L_ANGLE@[80; 81) | 67 | L_ANGLE@[80; 81) |
63 | LIFETIME_PARAM@[81; 83) | 68 | LIFETIME_PARAM@[81; 83) |
@@ -67,8 +72,9 @@ FILE@[0; 290) | |||
67 | WHITESPACE@[85; 86) | 72 | WHITESPACE@[85; 86) |
68 | STRUCT_ITEM@[86; 102) | 73 | STRUCT_ITEM@[86; 102) |
69 | STRUCT_KW@[86; 92) | 74 | STRUCT_KW@[86; 92) |
70 | WHITESPACE@[92; 93) | 75 | NAME@[92; 95) |
71 | IDENT@[93; 95) "S6" | 76 | WHITESPACE@[92; 93) |
77 | IDENT@[93; 95) "S6" | ||
72 | TYPE_PARAM_LIST@[95; 100) | 78 | TYPE_PARAM_LIST@[95; 100) |
73 | L_ANGLE@[95; 96) | 79 | L_ANGLE@[95; 96) |
74 | LIFETIME_PARAM@[96; 99) | 80 | LIFETIME_PARAM@[96; 99) |
@@ -79,8 +85,9 @@ FILE@[0; 290) | |||
79 | WHITESPACE@[101; 102) | 85 | WHITESPACE@[101; 102) |
80 | STRUCT_ITEM@[102; 121) | 86 | STRUCT_ITEM@[102; 121) |
81 | STRUCT_KW@[102; 108) | 87 | STRUCT_KW@[102; 108) |
82 | WHITESPACE@[108; 109) | 88 | NAME@[108; 111) |
83 | IDENT@[109; 111) "S7" | 89 | WHITESPACE@[108; 109) |
90 | IDENT@[109; 111) "S7" | ||
84 | TYPE_PARAM_LIST@[111; 119) | 91 | TYPE_PARAM_LIST@[111; 119) |
85 | L_ANGLE@[111; 112) | 92 | L_ANGLE@[111; 112) |
86 | LIFETIME_PARAM@[112; 118) | 93 | LIFETIME_PARAM@[112; 118) |
@@ -93,8 +100,9 @@ FILE@[0; 290) | |||
93 | WHITESPACE@[120; 121) | 100 | WHITESPACE@[120; 121) |
94 | STRUCT_ITEM@[121; 143) | 101 | STRUCT_ITEM@[121; 143) |
95 | STRUCT_KW@[121; 127) | 102 | STRUCT_KW@[121; 127) |
96 | WHITESPACE@[127; 128) | 103 | NAME@[127; 130) |
97 | IDENT@[128; 130) "S8" | 104 | WHITESPACE@[127; 128) |
105 | IDENT@[128; 130) "S8" | ||
98 | TYPE_PARAM_LIST@[130; 141) | 106 | TYPE_PARAM_LIST@[130; 141) |
99 | L_ANGLE@[130; 131) | 107 | L_ANGLE@[130; 131) |
100 | LIFETIME_PARAM@[131; 140) | 108 | LIFETIME_PARAM@[131; 140) |
@@ -110,8 +118,9 @@ FILE@[0; 290) | |||
110 | WHITESPACE@[142; 143) | 118 | WHITESPACE@[142; 143) |
111 | STRUCT_ITEM@[143; 167) | 119 | STRUCT_ITEM@[143; 167) |
112 | STRUCT_KW@[143; 149) | 120 | STRUCT_KW@[143; 149) |
113 | WHITESPACE@[149; 150) | 121 | NAME@[149; 152) |
114 | IDENT@[150; 152) "S9" | 122 | WHITESPACE@[149; 150) |
123 | IDENT@[150; 152) "S9" | ||
115 | TYPE_PARAM_LIST@[152; 165) | 124 | TYPE_PARAM_LIST@[152; 165) |
116 | L_ANGLE@[152; 153) | 125 | L_ANGLE@[152; 153) |
117 | LIFETIME_PARAM@[153; 164) | 126 | LIFETIME_PARAM@[153; 164) |
@@ -128,8 +137,9 @@ FILE@[0; 290) | |||
128 | WHITESPACE@[166; 167) | 137 | WHITESPACE@[166; 167) |
129 | STRUCT_ITEM@[167; 184) | 138 | STRUCT_ITEM@[167; 184) |
130 | STRUCT_KW@[167; 173) | 139 | STRUCT_KW@[167; 173) |
131 | WHITESPACE@[173; 174) | 140 | NAME@[173; 177) |
132 | IDENT@[174; 177) "S10" | 141 | WHITESPACE@[173; 174) |
142 | IDENT@[174; 177) "S10" | ||
133 | TYPE_PARAM_LIST@[177; 182) | 143 | TYPE_PARAM_LIST@[177; 182) |
134 | L_ANGLE@[177; 178) | 144 | L_ANGLE@[177; 178) |
135 | LIFETIME_PARAM@[178; 180) | 145 | LIFETIME_PARAM@[178; 180) |
@@ -140,8 +150,9 @@ FILE@[0; 290) | |||
140 | WHITESPACE@[183; 184) | 150 | WHITESPACE@[183; 184) |
141 | STRUCT_ITEM@[184; 204) | 151 | STRUCT_ITEM@[184; 204) |
142 | STRUCT_KW@[184; 190) | 152 | STRUCT_KW@[184; 190) |
143 | WHITESPACE@[190; 191) | 153 | NAME@[190; 194) |
144 | IDENT@[191; 194) "S11" | 154 | WHITESPACE@[190; 191) |
155 | IDENT@[191; 194) "S11" | ||
145 | TYPE_PARAM_LIST@[194; 202) | 156 | TYPE_PARAM_LIST@[194; 202) |
146 | L_ANGLE@[194; 195) | 157 | L_ANGLE@[194; 195) |
147 | LIFETIME_PARAM@[195; 197) | 158 | LIFETIME_PARAM@[195; 197) |
@@ -155,8 +166,9 @@ FILE@[0; 290) | |||
155 | WHITESPACE@[203; 204) | 166 | WHITESPACE@[203; 204) |
156 | STRUCT_ITEM@[204; 235) | 167 | STRUCT_ITEM@[204; 235) |
157 | STRUCT_KW@[204; 210) | 168 | STRUCT_KW@[204; 210) |
158 | WHITESPACE@[210; 211) | 169 | NAME@[210; 214) |
159 | IDENT@[211; 214) "S12" | 170 | WHITESPACE@[210; 211) |
171 | IDENT@[211; 214) "S12" | ||
160 | TYPE_PARAM_LIST@[214; 232) | 172 | TYPE_PARAM_LIST@[214; 232) |
161 | L_ANGLE@[214; 215) | 173 | L_ANGLE@[214; 215) |
162 | LIFETIME_PARAM@[215; 222) | 174 | LIFETIME_PARAM@[215; 222) |
@@ -178,8 +190,9 @@ FILE@[0; 290) | |||
178 | WHITESPACE@[233; 235) | 190 | WHITESPACE@[233; 235) |
179 | STRUCT_ITEM@[235; 250) | 191 | STRUCT_ITEM@[235; 250) |
180 | STRUCT_KW@[235; 241) | 192 | STRUCT_KW@[235; 241) |
181 | WHITESPACE@[241; 242) | 193 | NAME@[241; 245) |
182 | IDENT@[242; 245) "S13" | 194 | WHITESPACE@[241; 242) |
195 | IDENT@[242; 245) "S13" | ||
183 | TYPE_PARAM_LIST@[245; 248) | 196 | TYPE_PARAM_LIST@[245; 248) |
184 | L_ANGLE@[245; 246) | 197 | L_ANGLE@[245; 246) |
185 | TYPE_PARAM@[246; 247) | 198 | TYPE_PARAM@[246; 247) |
@@ -189,8 +202,9 @@ FILE@[0; 290) | |||
189 | WHITESPACE@[249; 250) | 202 | WHITESPACE@[249; 250) |
190 | STRUCT_ITEM@[250; 268) | 203 | STRUCT_ITEM@[250; 268) |
191 | STRUCT_KW@[250; 256) | 204 | STRUCT_KW@[250; 256) |
192 | WHITESPACE@[256; 257) | 205 | NAME@[256; 260) |
193 | IDENT@[257; 260) "S14" | 206 | WHITESPACE@[256; 257) |
207 | IDENT@[257; 260) "S14" | ||
194 | TYPE_PARAM_LIST@[260; 266) | 208 | TYPE_PARAM_LIST@[260; 266) |
195 | L_ANGLE@[260; 261) | 209 | L_ANGLE@[260; 261) |
196 | TYPE_PARAM@[261; 262) | 210 | TYPE_PARAM@[261; 262) |
@@ -204,8 +218,9 @@ FILE@[0; 290) | |||
204 | WHITESPACE@[267; 268) | 218 | WHITESPACE@[267; 268) |
205 | STRUCT_ITEM@[268; 290) | 219 | STRUCT_ITEM@[268; 290) |
206 | STRUCT_KW@[268; 274) | 220 | STRUCT_KW@[268; 274) |
207 | WHITESPACE@[274; 275) | 221 | NAME@[274; 278) |
208 | IDENT@[275; 278) "S15" | 222 | WHITESPACE@[274; 275) |
223 | IDENT@[275; 278) "S15" | ||
209 | TYPE_PARAM_LIST@[278; 288) | 224 | TYPE_PARAM_LIST@[278; 288) |
210 | L_ANGLE@[278; 279) | 225 | L_ANGLE@[278; 279) |
211 | LIFETIME_PARAM@[279; 281) | 226 | LIFETIME_PARAM@[279; 281) |
diff --git a/tests/data/parser/ok/0020_type_param_bounds.txt b/tests/data/parser/ok/0020_type_param_bounds.txt index 6f65d150a..a1c0cbc37 100644 --- a/tests/data/parser/ok/0020_type_param_bounds.txt +++ b/tests/data/parser/ok/0020_type_param_bounds.txt | |||
@@ -1,8 +1,9 @@ | |||
1 | FILE@[0; 200) | 1 | FILE@[0; 200) |
2 | STRUCT_ITEM@[0; 13) | 2 | STRUCT_ITEM@[0; 13) |
3 | STRUCT_KW@[0; 6) | 3 | STRUCT_KW@[0; 6) |
4 | WHITESPACE@[6; 7) | 4 | NAME@[6; 8) |
5 | IDENT@[7; 8) "A" | 5 | WHITESPACE@[6; 7) |
6 | IDENT@[7; 8) "A" | ||
6 | TYPE_PARAM_LIST@[8; 11) | 7 | TYPE_PARAM_LIST@[8; 11) |
7 | L_ANGLE@[8; 9) | 8 | L_ANGLE@[8; 9) |
8 | TYPE_PARAM@[9; 10) | 9 | TYPE_PARAM@[9; 10) |
@@ -12,8 +13,9 @@ FILE@[0; 200) | |||
12 | WHITESPACE@[12; 13) | 13 | WHITESPACE@[12; 13) |
13 | STRUCT_ITEM@[13; 27) | 14 | STRUCT_ITEM@[13; 27) |
14 | STRUCT_KW@[13; 19) | 15 | STRUCT_KW@[13; 19) |
15 | WHITESPACE@[19; 20) | 16 | NAME@[19; 21) |
16 | IDENT@[20; 21) "B" | 17 | WHITESPACE@[19; 20) |
18 | IDENT@[20; 21) "B" | ||
17 | TYPE_PARAM_LIST@[21; 25) | 19 | TYPE_PARAM_LIST@[21; 25) |
18 | L_ANGLE@[21; 22) | 20 | L_ANGLE@[21; 22) |
19 | TYPE_PARAM@[22; 24) | 21 | TYPE_PARAM@[22; 24) |
@@ -24,8 +26,9 @@ FILE@[0; 200) | |||
24 | WHITESPACE@[26; 27) | 26 | WHITESPACE@[26; 27) |
25 | STRUCT_ITEM@[27; 44) | 27 | STRUCT_ITEM@[27; 44) |
26 | STRUCT_KW@[27; 33) | 28 | STRUCT_KW@[27; 33) |
27 | WHITESPACE@[33; 34) | 29 | NAME@[33; 35) |
28 | IDENT@[34; 35) "C" | 30 | WHITESPACE@[33; 34) |
31 | IDENT@[34; 35) "C" | ||
29 | TYPE_PARAM_LIST@[35; 42) | 32 | TYPE_PARAM_LIST@[35; 42) |
30 | L_ANGLE@[35; 36) | 33 | L_ANGLE@[35; 36) |
31 | TYPE_PARAM@[36; 41) | 34 | TYPE_PARAM@[36; 41) |
@@ -38,8 +41,9 @@ FILE@[0; 200) | |||
38 | WHITESPACE@[43; 44) | 41 | WHITESPACE@[43; 44) |
39 | STRUCT_ITEM@[44; 64) | 42 | STRUCT_ITEM@[44; 64) |
40 | STRUCT_KW@[44; 50) | 43 | STRUCT_KW@[44; 50) |
41 | WHITESPACE@[50; 51) | 44 | NAME@[50; 52) |
42 | IDENT@[51; 52) "D" | 45 | WHITESPACE@[50; 51) |
46 | IDENT@[51; 52) "D" | ||
43 | TYPE_PARAM_LIST@[52; 62) | 47 | TYPE_PARAM_LIST@[52; 62) |
44 | L_ANGLE@[52; 53) | 48 | L_ANGLE@[52; 53) |
45 | TYPE_PARAM@[53; 61) | 49 | TYPE_PARAM@[53; 61) |
@@ -55,8 +59,9 @@ FILE@[0; 200) | |||
55 | WHITESPACE@[63; 64) | 59 | WHITESPACE@[63; 64) |
56 | STRUCT_ITEM@[64; 87) | 60 | STRUCT_ITEM@[64; 87) |
57 | STRUCT_KW@[64; 70) | 61 | STRUCT_KW@[64; 70) |
58 | WHITESPACE@[70; 71) | 62 | NAME@[70; 72) |
59 | IDENT@[71; 72) "E" | 63 | WHITESPACE@[70; 71) |
64 | IDENT@[71; 72) "E" | ||
60 | TYPE_PARAM_LIST@[72; 85) | 65 | TYPE_PARAM_LIST@[72; 85) |
61 | L_ANGLE@[72; 73) | 66 | L_ANGLE@[72; 73) |
62 | TYPE_PARAM@[73; 84) | 67 | TYPE_PARAM@[73; 84) |
@@ -74,8 +79,9 @@ FILE@[0; 200) | |||
74 | WHITESPACE@[86; 87) | 79 | WHITESPACE@[86; 87) |
75 | STRUCT_ITEM@[87; 117) | 80 | STRUCT_ITEM@[87; 117) |
76 | STRUCT_KW@[87; 93) | 81 | STRUCT_KW@[87; 93) |
77 | WHITESPACE@[93; 94) | 82 | NAME@[93; 95) |
78 | IDENT@[94; 95) "F" | 83 | WHITESPACE@[93; 94) |
84 | IDENT@[94; 95) "F" | ||
79 | TYPE_PARAM_LIST@[95; 115) | 85 | TYPE_PARAM_LIST@[95; 115) |
80 | L_ANGLE@[95; 96) | 86 | L_ANGLE@[95; 96) |
81 | TYPE_PARAM@[96; 114) | 87 | TYPE_PARAM@[96; 114) |
@@ -98,8 +104,9 @@ FILE@[0; 200) | |||
98 | WHITESPACE@[116; 117) | 104 | WHITESPACE@[116; 117) |
99 | STRUCT_ITEM@[117; 144) | 105 | STRUCT_ITEM@[117; 144) |
100 | STRUCT_KW@[117; 123) | 106 | STRUCT_KW@[117; 123) |
101 | WHITESPACE@[123; 124) | 107 | NAME@[123; 125) |
102 | IDENT@[124; 125) "G" | 108 | WHITESPACE@[123; 124) |
109 | IDENT@[124; 125) "G" | ||
103 | TYPE_PARAM_LIST@[125; 142) | 110 | TYPE_PARAM_LIST@[125; 142) |
104 | L_ANGLE@[125; 126) | 111 | L_ANGLE@[125; 126) |
105 | TYPE_PARAM@[126; 141) | 112 | TYPE_PARAM@[126; 141) |
@@ -120,8 +127,9 @@ FILE@[0; 200) | |||
120 | WHITESPACE@[143; 144) | 127 | WHITESPACE@[143; 144) |
121 | STRUCT_ITEM@[144; 181) | 128 | STRUCT_ITEM@[144; 181) |
122 | STRUCT_KW@[144; 150) | 129 | STRUCT_KW@[144; 150) |
123 | WHITESPACE@[150; 151) | 130 | NAME@[150; 152) |
124 | IDENT@[151; 152) "H" | 131 | WHITESPACE@[150; 151) |
132 | IDENT@[151; 152) "H" | ||
125 | TYPE_PARAM_LIST@[152; 179) | 133 | TYPE_PARAM_LIST@[152; 179) |
126 | L_ANGLE@[152; 153) | 134 | L_ANGLE@[152; 153) |
127 | TYPE_PARAM@[153; 178) | 135 | TYPE_PARAM@[153; 178) |
@@ -151,8 +159,9 @@ FILE@[0; 200) | |||
151 | WHITESPACE@[180; 181) | 159 | WHITESPACE@[180; 181) |
152 | STRUCT_ITEM@[181; 200) | 160 | STRUCT_ITEM@[181; 200) |
153 | STRUCT_KW@[181; 187) | 161 | STRUCT_KW@[181; 187) |
154 | WHITESPACE@[187; 188) | 162 | NAME@[187; 189) |
155 | IDENT@[188; 189) "I" | 163 | WHITESPACE@[187; 188) |
164 | IDENT@[188; 189) "I" | ||
156 | TYPE_PARAM_LIST@[189; 198) | 165 | TYPE_PARAM_LIST@[189; 198) |
157 | L_ANGLE@[189; 190) | 166 | L_ANGLE@[189; 190) |
158 | TYPE_PARAM@[190; 192) | 167 | TYPE_PARAM@[190; 192) |