]> git.lizzy.rs Git - rust.git/blob - crates/parser/test_data/parser/ok/0020_type_param_bounds.txt
Merge #11088
[rust.git] / crates / parser / test_data / parser / ok / 0020_type_param_bounds.txt
1 SOURCE_FILE
2   STRUCT
3     STRUCT_KW "struct"
4     WHITESPACE " "
5     NAME
6       IDENT "A"
7     GENERIC_PARAM_LIST
8       L_ANGLE "<"
9       TYPE_PARAM
10         NAME
11           IDENT "T"
12       R_ANGLE ">"
13     SEMICOLON ";"
14   WHITESPACE "\n"
15   STRUCT
16     STRUCT_KW "struct"
17     WHITESPACE " "
18     NAME
19       IDENT "B"
20     GENERIC_PARAM_LIST
21       L_ANGLE "<"
22       TYPE_PARAM
23         NAME
24           IDENT "T"
25         COLON ":"
26         TYPE_BOUND_LIST
27       R_ANGLE ">"
28     SEMICOLON ";"
29   WHITESPACE "\n"
30   STRUCT
31     STRUCT_KW "struct"
32     WHITESPACE " "
33     NAME
34       IDENT "C"
35     GENERIC_PARAM_LIST
36       L_ANGLE "<"
37       TYPE_PARAM
38         NAME
39           IDENT "T"
40         COLON ":"
41         WHITESPACE " "
42         TYPE_BOUND_LIST
43           TYPE_BOUND
44             LIFETIME
45               LIFETIME_IDENT "'a"
46       R_ANGLE ">"
47     SEMICOLON ";"
48   WHITESPACE "\n"
49   STRUCT
50     STRUCT_KW "struct"
51     WHITESPACE " "
52     NAME
53       IDENT "D"
54     GENERIC_PARAM_LIST
55       L_ANGLE "<"
56       TYPE_PARAM
57         NAME
58           IDENT "T"
59         COLON ":"
60         WHITESPACE " "
61         TYPE_BOUND_LIST
62           TYPE_BOUND
63             LIFETIME
64               LIFETIME_IDENT "'a"
65           WHITESPACE " "
66           PLUS "+"
67       WHITESPACE " "
68       R_ANGLE ">"
69     SEMICOLON ";"
70   WHITESPACE "\n"
71   STRUCT
72     STRUCT_KW "struct"
73     WHITESPACE " "
74     NAME
75       IDENT "E"
76     GENERIC_PARAM_LIST
77       L_ANGLE "<"
78       TYPE_PARAM
79         NAME
80           IDENT "T"
81         COLON ":"
82         WHITESPACE " "
83         TYPE_BOUND_LIST
84           TYPE_BOUND
85             LIFETIME
86               LIFETIME_IDENT "'a"
87           WHITESPACE " "
88           PLUS "+"
89           WHITESPACE " "
90           TYPE_BOUND
91             LIFETIME
92               LIFETIME_IDENT "'d"
93       WHITESPACE " "
94       R_ANGLE ">"
95     SEMICOLON ";"
96   WHITESPACE "\n"
97   STRUCT
98     STRUCT_KW "struct"
99     WHITESPACE " "
100     NAME
101       IDENT "F"
102     GENERIC_PARAM_LIST
103       L_ANGLE "<"
104       TYPE_PARAM
105         NAME
106           IDENT "T"
107         COLON ":"
108         WHITESPACE " "
109         TYPE_BOUND_LIST
110           TYPE_BOUND
111             LIFETIME
112               LIFETIME_IDENT "'a"
113           WHITESPACE " "
114           PLUS "+"
115           WHITESPACE " "
116           TYPE_BOUND
117             LIFETIME
118               LIFETIME_IDENT "'d"
119           WHITESPACE " "
120           PLUS "+"
121           WHITESPACE " "
122           TYPE_BOUND
123             PATH_TYPE
124               PATH
125                 PATH_SEGMENT
126                   NAME_REF
127                     IDENT "Clone"
128       R_ANGLE ">"
129     SEMICOLON ";"
130   WHITESPACE "\n"
131   STRUCT
132     STRUCT_KW "struct"
133     WHITESPACE " "
134     NAME
135       IDENT "G"
136     GENERIC_PARAM_LIST
137       L_ANGLE "<"
138       TYPE_PARAM
139         NAME
140           IDENT "T"
141         COLON ":"
142         WHITESPACE " "
143         TYPE_BOUND_LIST
144           TYPE_BOUND
145             PATH_TYPE
146               PATH
147                 PATH_SEGMENT
148                   NAME_REF
149                     IDENT "Clone"
150           WHITESPACE " "
151           PLUS "+"
152           WHITESPACE " "
153           TYPE_BOUND
154             PATH_TYPE
155               PATH
156                 PATH_SEGMENT
157                   NAME_REF
158                     IDENT "Copy"
159       R_ANGLE ">"
160     SEMICOLON ";"
161   WHITESPACE "\n"
162   STRUCT
163     STRUCT_KW "struct"
164     WHITESPACE " "
165     NAME
166       IDENT "H"
167     GENERIC_PARAM_LIST
168       L_ANGLE "<"
169       TYPE_PARAM
170         NAME
171           IDENT "T"
172         COLON ":"
173         WHITESPACE " "
174         TYPE_BOUND_LIST
175           TYPE_BOUND
176             PATH_TYPE
177               PATH
178                 PATH_SEGMENT
179                   COLON2 "::"
180                   NAME_REF
181                     IDENT "Foo"
182           WHITESPACE " "
183           PLUS "+"
184           WHITESPACE " "
185           TYPE_BOUND
186             PATH_TYPE
187               PATH
188                 PATH
189                   PATH_SEGMENT
190                     NAME_REF
191                       SELF_KW "self"
192                 COLON2 "::"
193                 PATH_SEGMENT
194                   NAME_REF
195                     IDENT "Bar"
196           WHITESPACE " "
197           PLUS "+"
198           WHITESPACE " "
199           TYPE_BOUND
200             LIFETIME
201               LIFETIME_IDENT "'a"
202       R_ANGLE ">"
203     SEMICOLON ";"
204   WHITESPACE "\n"
205   STRUCT
206     STRUCT_KW "struct"
207     WHITESPACE " "
208     NAME
209       IDENT "I"
210     GENERIC_PARAM_LIST
211       L_ANGLE "<"
212       TYPE_PARAM
213         NAME
214           IDENT "T"
215         COLON ":"
216         TYPE_BOUND_LIST
217       COMMA ","
218       WHITESPACE " "
219       TYPE_PARAM
220         NAME
221           IDENT "U"
222         COLON ":"
223         TYPE_BOUND_LIST
224       COMMA ","
225       R_ANGLE ">"
226     SEMICOLON ";"
227   WHITESPACE "\n"
228   STRUCT
229     STRUCT_KW "struct"
230     WHITESPACE " "
231     NAME
232       IDENT "K"
233     GENERIC_PARAM_LIST
234       L_ANGLE "<"
235       LIFETIME_PARAM
236         LIFETIME
237           LIFETIME_IDENT "'a"
238         COLON ":"
239         WHITESPACE " "
240         LIFETIME
241           LIFETIME_IDENT "'d"
242       COMMA ","
243       WHITESPACE " "
244       LIFETIME_PARAM
245         LIFETIME
246           LIFETIME_IDENT "'d"
247         COLON ":"
248         WHITESPACE " "
249         LIFETIME
250           LIFETIME_IDENT "'a"
251         WHITESPACE " "
252         PLUS "+"
253         WHITESPACE " "
254         LIFETIME
255           LIFETIME_IDENT "'b"
256       COMMA ","
257       WHITESPACE " "
258       TYPE_PARAM
259         NAME
260           IDENT "T"
261         COLON ":"
262         WHITESPACE " "
263         TYPE_BOUND_LIST
264           TYPE_BOUND
265             LIFETIME
266               LIFETIME_IDENT "'a"
267           WHITESPACE " "
268           PLUS "+"
269           WHITESPACE " "
270           TYPE_BOUND
271             LIFETIME
272               LIFETIME_IDENT "'d"
273           WHITESPACE " "
274           PLUS "+"
275           WHITESPACE " "
276           TYPE_BOUND
277             PATH_TYPE
278               PATH
279                 PATH_SEGMENT
280                   NAME_REF
281                     IDENT "Clone"
282       R_ANGLE ">"
283     SEMICOLON ";"