aboutsummaryrefslogtreecommitdiff
path: root/crates/libsyntax2/tests
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2018-09-04 10:25:23 +0100
committerAleksey Kladov <[email protected]>2018-09-04 10:25:23 +0100
commite44a6bcc8208f9d906febf9278120b75a6af67f9 (patch)
tree0b6a9e8d5c9527d9bd1ed266213d591ea957623c /crates/libsyntax2/tests
parent3a017aaa52fc41316b5dd2cd90b5171ca869697a (diff)
for types in bounds
Diffstat (limited to 'crates/libsyntax2/tests')
-rw-r--r--crates/libsyntax2/tests/data/parser/inline/0016_type_item_where_clause.txt11
-rw-r--r--crates/libsyntax2/tests/data/parser/inline/0041_type_param_bounds.txt28
-rw-r--r--crates/libsyntax2/tests/data/parser/inline/0049_trait_item_list.txt9
-rw-r--r--crates/libsyntax2/tests/data/parser/inline/0056_trait_item.txt33
-rw-r--r--crates/libsyntax2/tests/data/parser/inline/0059_function_where_clause.txt9
-rw-r--r--crates/libsyntax2/tests/data/parser/inline/0060_function_type_params.txt24
-rw-r--r--crates/libsyntax2/tests/data/parser/inline/0063_impl_trait_type.txt51
-rw-r--r--crates/libsyntax2/tests/data/parser/inline/0097_param_list_opt_patterns.txt45
-rw-r--r--crates/libsyntax2/tests/data/parser/inline/0098_where_clause.txt32
-rw-r--r--crates/libsyntax2/tests/data/parser/inline/0100_dyn_trait_type.txt51
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt9
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.txt75
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0032_where_for.rs4
-rw-r--r--crates/libsyntax2/tests/data/parser/ok/0032_where_for.txt85
14 files changed, 288 insertions, 178 deletions
diff --git a/crates/libsyntax2/tests/data/parser/inline/0016_type_item_where_clause.txt b/crates/libsyntax2/tests/data/parser/inline/0016_type_item_where_clause.txt
index 5309b9a7b..c3fca013e 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0016_type_item_where_clause.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0016_type_item_where_clause.txt
@@ -16,11 +16,12 @@ ROOT@[0; 31)
16 IDENT@[15; 18) "Foo" 16 IDENT@[15; 18) "Foo"
17 COLON@[18; 19) 17 COLON@[18; 19)
18 WHITESPACE@[19; 20) 18 WHITESPACE@[19; 20)
19 PATH@[20; 24) 19 PATH_TYPE@[20; 24)
20 PATH_SEGMENT@[20; 24) 20 PATH@[20; 24)
21 NAME_REF@[20; 24) 21 PATH_SEGMENT@[20; 24)
22 IDENT@[20; 24) "Copy" 22 NAME_REF@[20; 24)
23 err: `expected COMMA` 23 IDENT@[20; 24) "Copy"
24 err: `expected COMMA`
24 WHITESPACE@[24; 25) 25 WHITESPACE@[24; 25)
25 EQ@[25; 26) 26 EQ@[25; 26)
26 WHITESPACE@[26; 27) 27 WHITESPACE@[26; 27)
diff --git a/crates/libsyntax2/tests/data/parser/inline/0041_type_param_bounds.txt b/crates/libsyntax2/tests/data/parser/inline/0041_type_param_bounds.txt
index ef9d1f31e..549b571c2 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0041_type_param_bounds.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0041_type_param_bounds.txt
@@ -16,19 +16,21 @@ ROOT@[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; 23) 19 PATH_TYPE@[18; 32)
20 PATH_SEGMENT@[18; 23) 20 PATH@[18; 23)
21 NAME_REF@[18; 23) 21 PATH_SEGMENT@[18; 23)
22 IDENT@[18; 23) "Sized" 22 NAME_REF@[18; 23)
23 WHITESPACE@[23; 24) 23 IDENT@[18; 23) "Sized"
24 PLUS@[24; 25) 24 WHITESPACE@[23; 24)
25 WHITESPACE@[25; 26) 25 PLUS@[24; 25)
26 L_PAREN@[26; 27) 26 WHITESPACE@[25; 26)
27 PATH@[27; 31) 27 L_PAREN@[26; 27)
28 PATH_SEGMENT@[27; 31) 28 PATH_TYPE@[27; 31)
29 NAME_REF@[27; 31) 29 PATH@[27; 31)
30 IDENT@[27; 31) "Copy" 30 PATH_SEGMENT@[27; 31)
31 R_PAREN@[31; 32) 31 NAME_REF@[27; 31)
32 IDENT@[27; 31) "Copy"
33 R_PAREN@[31; 32)
32 R_ANGLE@[32; 33) 34 R_ANGLE@[32; 33)
33 SEMI@[33; 34) 35 SEMI@[33; 34)
34 WHITESPACE@[34; 35) 36 WHITESPACE@[34; 35)
diff --git a/crates/libsyntax2/tests/data/parser/inline/0049_trait_item_list.txt b/crates/libsyntax2/tests/data/parser/inline/0049_trait_item_list.txt
index e18c166f6..72d9220e8 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0049_trait_item_list.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0049_trait_item_list.txt
@@ -18,10 +18,11 @@ ROOT@[0; 83)
18 IDENT@[18; 19) "A" 18 IDENT@[18; 19) "A"
19 COLON@[19; 20) 19 COLON@[19; 20)
20 WHITESPACE@[20; 21) 20 WHITESPACE@[20; 21)
21 PATH@[21; 26) 21 PATH_TYPE@[21; 26)
22 PATH_SEGMENT@[21; 26) 22 PATH@[21; 26)
23 NAME_REF@[21; 26) 23 PATH_SEGMENT@[21; 26)
24 IDENT@[21; 26) "Clone" 24 NAME_REF@[21; 26)
25 IDENT@[21; 26) "Clone"
25 SEMI@[26; 27) 26 SEMI@[26; 27)
26 WHITESPACE@[27; 32) 27 WHITESPACE@[27; 32)
27 CONST_DEF@[32; 45) 28 CONST_DEF@[32; 45)
diff --git a/crates/libsyntax2/tests/data/parser/inline/0056_trait_item.txt b/crates/libsyntax2/tests/data/parser/inline/0056_trait_item.txt
index 6e9ddcfb4..40c77db4b 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0056_trait_item.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0056_trait_item.txt
@@ -12,17 +12,19 @@ ROOT@[0; 42)
12 R_ANGLE@[9; 10) 12 R_ANGLE@[9; 10)
13 COLON@[10; 11) 13 COLON@[10; 11)
14 WHITESPACE@[11; 12) 14 WHITESPACE@[11; 12)
15 PATH@[12; 16) 15 PATH_TYPE@[12; 24)
16 PATH_SEGMENT@[12; 16) 16 PATH@[12; 16)
17 NAME_REF@[12; 16) 17 PATH_SEGMENT@[12; 16)
18 IDENT@[12; 16) "Hash" 18 NAME_REF@[12; 16)
19 WHITESPACE@[16; 17) 19 IDENT@[12; 16) "Hash"
20 PLUS@[17; 18) 20 WHITESPACE@[16; 17)
21 WHITESPACE@[18; 19) 21 PLUS@[17; 18)
22 PATH@[19; 24) 22 WHITESPACE@[18; 19)
23 PATH_SEGMENT@[19; 24) 23 PATH_TYPE@[19; 24)
24 NAME_REF@[19; 24) 24 PATH@[19; 24)
25 IDENT@[19; 24) "Clone" 25 PATH_SEGMENT@[19; 24)
26 NAME_REF@[19; 24)
27 IDENT@[19; 24) "Clone"
26 WHITESPACE@[24; 25) 28 WHITESPACE@[24; 25)
27 WHERE_CLAUSE@[25; 38) 29 WHERE_CLAUSE@[25; 38)
28 WHERE_KW@[25; 30) 30 WHERE_KW@[25; 30)
@@ -35,10 +37,11 @@ ROOT@[0; 42)
35 IDENT@[31; 32) "U" 37 IDENT@[31; 32) "U"
36 COLON@[32; 33) 38 COLON@[32; 33)
37 WHITESPACE@[33; 34) 39 WHITESPACE@[33; 34)
38 PATH@[34; 38) 40 PATH_TYPE@[34; 38)
39 PATH_SEGMENT@[34; 38) 41 PATH@[34; 38)
40 NAME_REF@[34; 38) 42 PATH_SEGMENT@[34; 38)
41 IDENT@[34; 38) "Copy" 43 NAME_REF@[34; 38)
44 IDENT@[34; 38) "Copy"
42 WHITESPACE@[38; 39) 45 WHITESPACE@[38; 39)
43 ITEM_LIST@[39; 41) 46 ITEM_LIST@[39; 41)
44 L_CURLY@[39; 40) 47 L_CURLY@[39; 40)
diff --git a/crates/libsyntax2/tests/data/parser/inline/0059_function_where_clause.txt b/crates/libsyntax2/tests/data/parser/inline/0059_function_where_clause.txt
index dc90bfc28..281e79deb 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0059_function_where_clause.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0059_function_where_clause.txt
@@ -25,10 +25,11 @@ ROOT@[0; 29)
25 IDENT@[18; 19) "T" 25 IDENT@[18; 19) "T"
26 COLON@[19; 20) 26 COLON@[19; 20)
27 WHITESPACE@[20; 21) 27 WHITESPACE@[20; 21)
28 PATH@[21; 25) 28 PATH_TYPE@[21; 25)
29 PATH_SEGMENT@[21; 25) 29 PATH@[21; 25)
30 NAME_REF@[21; 25) 30 PATH_SEGMENT@[21; 25)
31 IDENT@[21; 25) "Copy" 31 NAME_REF@[21; 25)
32 IDENT@[21; 25) "Copy"
32 WHITESPACE@[25; 26) 33 WHITESPACE@[25; 26)
33 BLOCK@[26; 28) 34 BLOCK@[26; 28)
34 L_CURLY@[26; 27) 35 L_CURLY@[26; 27)
diff --git a/crates/libsyntax2/tests/data/parser/inline/0060_function_type_params.txt b/crates/libsyntax2/tests/data/parser/inline/0060_function_type_params.txt
index 640a84355..b6fea5ab2 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0060_function_type_params.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0060_function_type_params.txt
@@ -11,17 +11,19 @@ ROOT@[0; 28)
11 IDENT@[7; 8) "T" 11 IDENT@[7; 8) "T"
12 COLON@[8; 9) 12 COLON@[8; 9)
13 WHITESPACE@[9; 10) 13 WHITESPACE@[9; 10)
14 PATH@[10; 15) 14 PATH_TYPE@[10; 22)
15 PATH_SEGMENT@[10; 15) 15 PATH@[10; 15)
16 NAME_REF@[10; 15) 16 PATH_SEGMENT@[10; 15)
17 IDENT@[10; 15) "Clone" 17 NAME_REF@[10; 15)
18 WHITESPACE@[15; 16) 18 IDENT@[10; 15) "Clone"
19 PLUS@[16; 17) 19 WHITESPACE@[15; 16)
20 WHITESPACE@[17; 18) 20 PLUS@[16; 17)
21 PATH@[18; 22) 21 WHITESPACE@[17; 18)
22 PATH_SEGMENT@[18; 22) 22 PATH_TYPE@[18; 22)
23 NAME_REF@[18; 22) 23 PATH@[18; 22)
24 IDENT@[18; 22) "Copy" 24 PATH_SEGMENT@[18; 22)
25 NAME_REF@[18; 22)
26 IDENT@[18; 22) "Copy"
25 R_ANGLE@[22; 23) 27 R_ANGLE@[22; 23)
26 PARAM_LIST@[23; 25) 28 PARAM_LIST@[23; 25)
27 L_PAREN@[23; 24) 29 L_PAREN@[23; 24)
diff --git a/crates/libsyntax2/tests/data/parser/inline/0063_impl_trait_type.txt b/crates/libsyntax2/tests/data/parser/inline/0063_impl_trait_type.txt
index 4d54204f8..68fce58ee 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0063_impl_trait_type.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0063_impl_trait_type.txt
@@ -10,30 +10,31 @@ ROOT@[0; 43)
10 IMPL_TRAIT_TYPE@[9; 41) 10 IMPL_TRAIT_TYPE@[9; 41)
11 IMPL_KW@[9; 13) 11 IMPL_KW@[9; 13)
12 WHITESPACE@[13; 14) 12 WHITESPACE@[13; 14)
13 PATH@[14; 36) 13 PATH_TYPE@[14; 41)
14 PATH_SEGMENT@[14; 36) 14 PATH@[14; 36)
15 NAME_REF@[14; 22) 15 PATH_SEGMENT@[14; 36)
16 IDENT@[14; 22) "Iterator" 16 NAME_REF@[14; 22)
17 TYPE_ARG_LIST@[22; 36) 17 IDENT@[14; 22) "Iterator"
18 L_ANGLE@[22; 23) 18 TYPE_ARG_LIST@[22; 36)
19 ASSOC_TYPE_ARG@[23; 35) 19 L_ANGLE@[22; 23)
20 NAME_REF@[23; 27) 20 ASSOC_TYPE_ARG@[23; 35)
21 IDENT@[23; 27) "Item" 21 NAME_REF@[23; 27)
22 EQ@[27; 28) 22 IDENT@[23; 27) "Item"
23 PATH_TYPE@[28; 35) 23 EQ@[27; 28)
24 PATH@[28; 35) 24 PATH_TYPE@[28; 35)
25 PATH_SEGMENT@[28; 35) 25 PATH@[28; 35)
26 NAME_REF@[28; 31) 26 PATH_SEGMENT@[28; 35)
27 IDENT@[28; 31) "Foo" 27 NAME_REF@[28; 31)
28 TYPE_ARG_LIST@[31; 35) 28 IDENT@[28; 31) "Foo"
29 L_ANGLE@[31; 32) 29 TYPE_ARG_LIST@[31; 35)
30 LIFETIME_ARG@[32; 34) 30 L_ANGLE@[31; 32)
31 LIFETIME@[32; 34) "'a" 31 LIFETIME_ARG@[32; 34)
32 R_ANGLE@[34; 35) 32 LIFETIME@[32; 34) "'a"
33 R_ANGLE@[35; 36) 33 R_ANGLE@[34; 35)
34 WHITESPACE@[36; 37) 34 R_ANGLE@[35; 36)
35 PLUS@[37; 38) 35 WHITESPACE@[36; 37)
36 WHITESPACE@[38; 39) 36 PLUS@[37; 38)
37 LIFETIME@[39; 41) "'a" 37 WHITESPACE@[38; 39)
38 LIFETIME@[39; 41) "'a"
38 SEMI@[41; 42) 39 SEMI@[41; 42)
39 WHITESPACE@[42; 43) 40 WHITESPACE@[42; 43)
diff --git a/crates/libsyntax2/tests/data/parser/inline/0097_param_list_opt_patterns.txt b/crates/libsyntax2/tests/data/parser/inline/0097_param_list_opt_patterns.txt
index 289a899a9..39bab8dd2 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0097_param_list_opt_patterns.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0097_param_list_opt_patterns.txt
@@ -11,28 +11,29 @@ ROOT@[0; 35)
11 IDENT@[7; 8) "F" 11 IDENT@[7; 8) "F"
12 COLON@[8; 9) 12 COLON@[8; 9)
13 WHITESPACE@[9; 10) 13 WHITESPACE@[9; 10)
14 PATH@[10; 29) 14 PATH_TYPE@[10; 29)
15 PATH_SEGMENT@[10; 29) 15 PATH@[10; 29)
16 NAME_REF@[10; 15) 16 PATH_SEGMENT@[10; 29)
17 IDENT@[10; 15) "FnMut" 17 NAME_REF@[10; 15)
18 PARAM_LIST@[15; 29) 18 IDENT@[10; 15) "FnMut"
19 L_PAREN@[15; 16) 19 PARAM_LIST@[15; 29)
20 PARAM@[16; 28) 20 L_PAREN@[15; 16)
21 REFERENCE_TYPE@[16; 28) 21 PARAM@[16; 28)
22 AMP@[16; 17) 22 REFERENCE_TYPE@[16; 28)
23 MUT_KW@[17; 20) 23 AMP@[16; 17)
24 WHITESPACE@[20; 21) 24 MUT_KW@[17; 20)
25 PATH_TYPE@[21; 28) 25 WHITESPACE@[20; 21)
26 PATH@[21; 28) 26 PATH_TYPE@[21; 28)
27 PATH_SEGMENT@[21; 28) 27 PATH@[21; 28)
28 NAME_REF@[21; 24) 28 PATH_SEGMENT@[21; 28)
29 IDENT@[21; 24) "Foo" 29 NAME_REF@[21; 24)
30 TYPE_ARG_LIST@[24; 28) 30 IDENT@[21; 24) "Foo"
31 L_ANGLE@[24; 25) 31 TYPE_ARG_LIST@[24; 28)
32 LIFETIME_ARG@[25; 27) 32 L_ANGLE@[24; 25)
33 LIFETIME@[25; 27) "'a" 33 LIFETIME_ARG@[25; 27)
34 R_ANGLE@[27; 28) 34 LIFETIME@[25; 27) "'a"
35 R_PAREN@[28; 29) 35 R_ANGLE@[27; 28)
36 R_PAREN@[28; 29)
36 R_ANGLE@[29; 30) 37 R_ANGLE@[29; 30)
37 PARAM_LIST@[30; 32) 38 PARAM_LIST@[30; 32)
38 L_PAREN@[30; 31) 39 L_PAREN@[30; 31)
diff --git a/crates/libsyntax2/tests/data/parser/inline/0098_where_clause.txt b/crates/libsyntax2/tests/data/parser/inline/0098_where_clause.txt
index 7642c0704..9fe803554 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0098_where_clause.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0098_where_clause.txt
@@ -30,21 +30,23 @@ ROOT@[0; 87)
30 IDENT@[34; 35) "T" 30 IDENT@[34; 35) "T"
31 COLON@[35; 36) 31 COLON@[35; 36)
32 WHITESPACE@[36; 37) 32 WHITESPACE@[36; 37)
33 PATH@[37; 42) 33 PATH_TYPE@[37; 59)
34 PATH_SEGMENT@[37; 42) 34 PATH@[37; 42)
35 NAME_REF@[37; 42) 35 PATH_SEGMENT@[37; 42)
36 IDENT@[37; 42) "Clone" 36 NAME_REF@[37; 42)
37 WHITESPACE@[42; 43) 37 IDENT@[37; 42) "Clone"
38 PLUS@[43; 44) 38 WHITESPACE@[42; 43)
39 WHITESPACE@[44; 45) 39 PLUS@[43; 44)
40 PATH@[45; 49) 40 WHITESPACE@[44; 45)
41 PATH_SEGMENT@[45; 49) 41 PATH_TYPE@[45; 59)
42 NAME_REF@[45; 49) 42 PATH@[45; 49)
43 IDENT@[45; 49) "Copy" 43 PATH_SEGMENT@[45; 49)
44 WHITESPACE@[49; 50) 44 NAME_REF@[45; 49)
45 PLUS@[50; 51) 45 IDENT@[45; 49) "Copy"
46 WHITESPACE@[51; 52) 46 WHITESPACE@[49; 50)
47 LIFETIME@[52; 59) "'static" 47 PLUS@[50; 51)
48 WHITESPACE@[51; 52)
49 LIFETIME@[52; 59) "'static"
48 COMMA@[59; 60) 50 COMMA@[59; 60)
49 WHITESPACE@[60; 64) 51 WHITESPACE@[60; 64)
50 WHERE_PRED@[64; 82) 52 WHERE_PRED@[64; 82)
diff --git a/crates/libsyntax2/tests/data/parser/inline/0100_dyn_trait_type.txt b/crates/libsyntax2/tests/data/parser/inline/0100_dyn_trait_type.txt
index ca53c0b52..c81ae5545 100644
--- a/crates/libsyntax2/tests/data/parser/inline/0100_dyn_trait_type.txt
+++ b/crates/libsyntax2/tests/data/parser/inline/0100_dyn_trait_type.txt
@@ -10,30 +10,31 @@ ROOT@[0; 42)
10 DYN_TRAIT_TYPE@[9; 40) 10 DYN_TRAIT_TYPE@[9; 40)
11 DYN_KW@[9; 12) 11 DYN_KW@[9; 12)
12 WHITESPACE@[12; 13) 12 WHITESPACE@[12; 13)
13 PATH@[13; 35) 13 PATH_TYPE@[13; 40)
14 PATH_SEGMENT@[13; 35) 14 PATH@[13; 35)
15 NAME_REF@[13; 21) 15 PATH_SEGMENT@[13; 35)
16 IDENT@[13; 21) "Iterator" 16 NAME_REF@[13; 21)
17 TYPE_ARG_LIST@[21; 35) 17 IDENT@[13; 21) "Iterator"
18 L_ANGLE@[21; 22) 18 TYPE_ARG_LIST@[21; 35)
19 ASSOC_TYPE_ARG@[22; 34) 19 L_ANGLE@[21; 22)
20 NAME_REF@[22; 26) 20 ASSOC_TYPE_ARG@[22; 34)
21 IDENT@[22; 26) "Item" 21 NAME_REF@[22; 26)
22 EQ@[26; 27) 22 IDENT@[22; 26) "Item"
23 PATH_TYPE@[27; 34) 23 EQ@[26; 27)
24 PATH@[27; 34) 24 PATH_TYPE@[27; 34)
25 PATH_SEGMENT@[27; 34) 25 PATH@[27; 34)
26 NAME_REF@[27; 30) 26 PATH_SEGMENT@[27; 34)
27 IDENT@[27; 30) "Foo" 27 NAME_REF@[27; 30)
28 TYPE_ARG_LIST@[30; 34) 28 IDENT@[27; 30) "Foo"
29 L_ANGLE@[30; 31) 29 TYPE_ARG_LIST@[30; 34)
30 LIFETIME_ARG@[31; 33) 30 L_ANGLE@[30; 31)
31 LIFETIME@[31; 33) "'a" 31 LIFETIME_ARG@[31; 33)
32 R_ANGLE@[33; 34) 32 LIFETIME@[31; 33) "'a"
33 R_ANGLE@[34; 35) 33 R_ANGLE@[33; 34)
34 WHITESPACE@[35; 36) 34 R_ANGLE@[34; 35)
35 PLUS@[36; 37) 35 WHITESPACE@[35; 36)
36 WHITESPACE@[37; 38) 36 PLUS@[36; 37)
37 LIFETIME@[38; 40) "'a" 37 WHITESPACE@[37; 38)
38 LIFETIME@[38; 40) "'a"
38 SEMI@[40; 41) 39 SEMI@[40; 41)
39 WHITESPACE@[41; 42) 40 WHITESPACE@[41; 42)
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 90df3416a..aa2f1b712 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0001_struct_item.txt
@@ -11,10 +11,11 @@ ROOT@[0; 32)
11 IDENT@[9; 10) "T" 11 IDENT@[9; 10) "T"
12 COLON@[10; 11) 12 COLON@[10; 11)
13 WHITESPACE@[11; 12) 13 WHITESPACE@[11; 12)
14 PATH@[12; 16) 14 PATH_TYPE@[12; 16)
15 PATH_SEGMENT@[12; 16) 15 PATH@[12; 16)
16 NAME_REF@[12; 16) 16 PATH_SEGMENT@[12; 16)
17 IDENT@[12; 16) "Copy" 17 NAME_REF@[12; 16)
18 IDENT@[12; 16) "Copy"
18 R_ANGLE@[16; 17) 19 R_ANGLE@[16; 17)
19 WHITESPACE@[17; 18) 20 WHITESPACE@[17; 18)
20 NAMED_FIELD_DEF_LIST@[18; 31) 21 NAMED_FIELD_DEF_LIST@[18; 31)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.txt b/crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.txt
index eb01dc8f1..ac1a58e9a 100644
--- a/crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.txt
+++ b/crates/libsyntax2/tests/data/parser/ok/0020_type_param_bounds.txt
@@ -102,10 +102,11 @@ ROOT@[0; 200)
102 WHITESPACE@[106; 107) 102 WHITESPACE@[106; 107)
103 PLUS@[107; 108) 103 PLUS@[107; 108)
104 WHITESPACE@[108; 109) 104 WHITESPACE@[108; 109)
105 PATH@[109; 114) 105 PATH_TYPE@[109; 114)
106 PATH_SEGMENT@[109; 114) 106 PATH@[109; 114)
107 NAME_REF@[109; 114) 107 PATH_SEGMENT@[109; 114)
108 IDENT@[109; 114) "Clone" 108 NAME_REF@[109; 114)
109 IDENT@[109; 114) "Clone"
109 R_ANGLE@[114; 115) 110 R_ANGLE@[114; 115)
110 SEMI@[115; 116) 111 SEMI@[115; 116)
111 WHITESPACE@[116; 117) 112 WHITESPACE@[116; 117)
@@ -121,17 +122,19 @@ ROOT@[0; 200)
121 IDENT@[126; 127) "T" 122 IDENT@[126; 127) "T"
122 COLON@[127; 128) 123 COLON@[127; 128)
123 WHITESPACE@[128; 129) 124 WHITESPACE@[128; 129)
124 PATH@[129; 134) 125 PATH_TYPE@[129; 141)
125 PATH_SEGMENT@[129; 134) 126 PATH@[129; 134)
126 NAME_REF@[129; 134) 127 PATH_SEGMENT@[129; 134)
127 IDENT@[129; 134) "Clone" 128 NAME_REF@[129; 134)
128 WHITESPACE@[134; 135) 129 IDENT@[129; 134) "Clone"
129 PLUS@[135; 136) 130 WHITESPACE@[134; 135)
130 WHITESPACE@[136; 137) 131 PLUS@[135; 136)
131 PATH@[137; 141) 132 WHITESPACE@[136; 137)
132 PATH_SEGMENT@[137; 141) 133 PATH_TYPE@[137; 141)
133 NAME_REF@[137; 141) 134 PATH@[137; 141)
134 IDENT@[137; 141) "Copy" 135 PATH_SEGMENT@[137; 141)
136 NAME_REF@[137; 141)
137 IDENT@[137; 141) "Copy"
135 R_ANGLE@[141; 142) 138 R_ANGLE@[141; 142)
136 SEMI@[142; 143) 139 SEMI@[142; 143)
137 WHITESPACE@[143; 144) 140 WHITESPACE@[143; 144)
@@ -147,26 +150,28 @@ ROOT@[0; 200)
147 IDENT@[153; 154) "T" 150 IDENT@[153; 154) "T"
148 COLON@[154; 155) 151 COLON@[154; 155)
149 WHITESPACE@[155; 156) 152 WHITESPACE@[155; 156)
150 PATH@[156; 161) 153 PATH_TYPE@[156; 178)
151 PATH_SEGMENT@[156; 161) 154 PATH@[156; 161)
152 COLONCOLON@[156; 158) 155 PATH_SEGMENT@[156; 161)
153 NAME_REF@[158; 161) 156 COLONCOLON@[156; 158)
154 IDENT@[158; 161) "Foo" 157 NAME_REF@[158; 161)
155 WHITESPACE@[161; 162) 158 IDENT@[158; 161) "Foo"
156 PLUS@[162; 163) 159 WHITESPACE@[161; 162)
157 WHITESPACE@[163; 164) 160 PLUS@[162; 163)
158 PATH@[164; 173) 161 WHITESPACE@[163; 164)
159 PATH@[164; 168) 162 PATH_TYPE@[164; 178)
160 PATH_SEGMENT@[164; 168) 163 PATH@[164; 173)
161 SELF_KW@[164; 168) 164 PATH@[164; 168)
162 COLONCOLON@[168; 170) 165 PATH_SEGMENT@[164; 168)
163 PATH_SEGMENT@[170; 173) 166 SELF_KW@[164; 168)
164 NAME_REF@[170; 173) 167 COLONCOLON@[168; 170)
165 IDENT@[170; 173) "Bar" 168 PATH_SEGMENT@[170; 173)
166 WHITESPACE@[173; 174) 169 NAME_REF@[170; 173)
167 PLUS@[174; 175) 170 IDENT@[170; 173) "Bar"
168 WHITESPACE@[175; 176) 171 WHITESPACE@[173; 174)
169 LIFETIME@[176; 178) "'a" 172 PLUS@[174; 175)
173 WHITESPACE@[175; 176)
174 LIFETIME@[176; 178) "'a"
170 R_ANGLE@[178; 179) 175 R_ANGLE@[178; 179)
171 SEMI@[179; 180) 176 SEMI@[179; 180)
172 WHITESPACE@[180; 181) 177 WHITESPACE@[180; 181)
diff --git a/crates/libsyntax2/tests/data/parser/ok/0032_where_for.rs b/crates/libsyntax2/tests/data/parser/ok/0032_where_for.rs
new file mode 100644
index 000000000..588170fbe
--- /dev/null
+++ b/crates/libsyntax2/tests/data/parser/ok/0032_where_for.rs
@@ -0,0 +1,4 @@
1fn test_serialization<SER>()
2where
3 SER: Serialize + for<'de> Deserialize<'de> + PartialEq + std::fmt::Debug,
4{}
diff --git a/crates/libsyntax2/tests/data/parser/ok/0032_where_for.txt b/crates/libsyntax2/tests/data/parser/ok/0032_where_for.txt
new file mode 100644
index 000000000..e3b9386a8
--- /dev/null
+++ b/crates/libsyntax2/tests/data/parser/ok/0032_where_for.txt
@@ -0,0 +1,85 @@
1ROOT@[0; 116)
2 FN_DEF@[0; 115)
3 FN_KW@[0; 2)
4 WHITESPACE@[2; 3)
5 NAME@[3; 21)
6 IDENT@[3; 21) "test_serialization"
7 TYPE_PARAM_LIST@[21; 26)
8 L_ANGLE@[21; 22)
9 TYPE_PARAM@[22; 25)
10 NAME@[22; 25)
11 IDENT@[22; 25) "SER"
12 R_ANGLE@[25; 26)
13 PARAM_LIST@[26; 28)
14 L_PAREN@[26; 27)
15 R_PAREN@[27; 28)
16 WHITESPACE@[28; 29)
17 WHERE_CLAUSE@[29; 112)
18 WHERE_KW@[29; 34)
19 WHITESPACE@[34; 39)
20 WHERE_PRED@[39; 111)
21 PATH_TYPE@[39; 42)
22 PATH@[39; 42)
23 PATH_SEGMENT@[39; 42)
24 NAME_REF@[39; 42)
25 IDENT@[39; 42) "SER"
26 COLON@[42; 43)
27 WHITESPACE@[43; 44)
28 PATH_TYPE@[44; 111)
29 PATH@[44; 53)
30 PATH_SEGMENT@[44; 53)
31 NAME_REF@[44; 53)
32 IDENT@[44; 53) "Serialize"
33 WHITESPACE@[53; 54)
34 PLUS@[54; 55)
35 WHITESPACE@[55; 56)
36 FOR_TYPE@[56; 81)
37 FOR_KW@[56; 59)
38 TYPE_PARAM_LIST@[59; 64)
39 L_ANGLE@[59; 60)
40 LIFETIME_PARAM@[60; 63)
41 LIFETIME@[60; 63) "'de"
42 R_ANGLE@[63; 64)
43 WHITESPACE@[64; 65)
44 PATH_TYPE@[65; 81)
45 PATH@[65; 81)
46 PATH_SEGMENT@[65; 81)
47 NAME_REF@[65; 76)
48 IDENT@[65; 76) "Deserialize"
49 TYPE_ARG_LIST@[76; 81)
50 L_ANGLE@[76; 77)
51 LIFETIME_ARG@[77; 80)
52 LIFETIME@[77; 80) "'de"
53 R_ANGLE@[80; 81)
54 WHITESPACE@[81; 82)
55 PLUS@[82; 83)
56 WHITESPACE@[83; 84)
57 PATH_TYPE@[84; 111)
58 PATH@[84; 93)
59 PATH_SEGMENT@[84; 93)
60 NAME_REF@[84; 93)
61 IDENT@[84; 93) "PartialEq"
62 WHITESPACE@[93; 94)
63 PLUS@[94; 95)
64 WHITESPACE@[95; 96)
65 PATH_TYPE@[96; 111)
66 PATH@[96; 111)
67 PATH@[96; 104)
68 PATH@[96; 99)
69 PATH_SEGMENT@[96; 99)
70 NAME_REF@[96; 99)
71 IDENT@[96; 99) "std"
72 COLONCOLON@[99; 101)
73 PATH_SEGMENT@[101; 104)
74 NAME_REF@[101; 104)
75 IDENT@[101; 104) "fmt"
76 COLONCOLON@[104; 106)
77 PATH_SEGMENT@[106; 111)
78 NAME_REF@[106; 111)
79 IDENT@[106; 111) "Debug"
80 COMMA@[111; 112)
81 WHITESPACE@[112; 113)
82 BLOCK@[113; 115)
83 L_CURLY@[113; 114)
84 R_CURLY@[114; 115)
85 WHITESPACE@[115; 116)