]> git.lizzy.rs Git - rust.git/blob - crates/parser/test_data/parser/ok/0063_trait_fn_patterns.rast
Merge #11088
[rust.git] / crates / parser / test_data / parser / ok / 0063_trait_fn_patterns.rast
1 SOURCE_FILE@0..170
2   TRAIT@0..169
3     TRAIT_KW@0..5 "trait"
4     WHITESPACE@5..6 " "
5     NAME@6..7
6       IDENT@6..7 "T"
7     WHITESPACE@7..8 " "
8     ASSOC_ITEM_LIST@8..169
9       L_CURLY@8..9 "{"
10       WHITESPACE@9..14 "\n    "
11       FN@14..46
12         FN_KW@14..16 "fn"
13         WHITESPACE@16..17 " "
14         NAME@17..19
15           IDENT@17..19 "f1"
16         PARAM_LIST@19..43
17           L_PAREN@19..20 "("
18           PARAM@20..42
19             TUPLE_PAT@20..26
20               L_PAREN@20..21 "("
21               IDENT_PAT@21..22
22                 NAME@21..22
23                   IDENT@21..22 "a"
24               COMMA@22..23 ","
25               WHITESPACE@23..24 " "
26               IDENT_PAT@24..25
27                 NAME@24..25
28                   IDENT@24..25 "b"
29               R_PAREN@25..26 ")"
30             COLON@26..27 ":"
31             WHITESPACE@27..28 " "
32             TUPLE_TYPE@28..42
33               L_PAREN@28..29 "("
34               PATH_TYPE@29..34
35                 PATH@29..34
36                   PATH_SEGMENT@29..34
37                     NAME_REF@29..34
38                       IDENT@29..34 "usize"
39               COMMA@34..35 ","
40               WHITESPACE@35..36 " "
41               PATH_TYPE@36..41
42                 PATH@36..41
43                   PATH_SEGMENT@36..41
44                     NAME_REF@36..41
45                       IDENT@36..41 "usize"
46               R_PAREN@41..42 ")"
47           R_PAREN@42..43 ")"
48         WHITESPACE@43..44 " "
49         BLOCK_EXPR@44..46
50           STMT_LIST@44..46
51             L_CURLY@44..45 "{"
52             R_CURLY@45..46 "}"
53       WHITESPACE@46..51 "\n    "
54       FN@51..74
55         FN_KW@51..53 "fn"
56         WHITESPACE@53..54 " "
57         NAME@54..56
58           IDENT@54..56 "f2"
59         PARAM_LIST@56..71
60           L_PAREN@56..57 "("
61           PARAM@57..70
62             RECORD_PAT@57..67
63               PATH@57..58
64                 PATH_SEGMENT@57..58
65                   NAME_REF@57..58
66                     IDENT@57..58 "S"
67               WHITESPACE@58..59 " "
68               RECORD_PAT_FIELD_LIST@59..67
69                 L_CURLY@59..60 "{"
70                 WHITESPACE@60..61 " "
71                 RECORD_PAT_FIELD@61..62
72                   IDENT_PAT@61..62
73                     NAME@61..62
74                       IDENT@61..62 "a"
75                 COMMA@62..63 ","
76                 WHITESPACE@63..64 " "
77                 RECORD_PAT_FIELD@64..65
78                   IDENT_PAT@64..65
79                     NAME@64..65
80                       IDENT@64..65 "b"
81                 WHITESPACE@65..66 " "
82                 R_CURLY@66..67 "}"
83             COLON@67..68 ":"
84             WHITESPACE@68..69 " "
85             PATH_TYPE@69..70
86               PATH@69..70
87                 PATH_SEGMENT@69..70
88                   NAME_REF@69..70
89                     IDENT@69..70 "S"
90           R_PAREN@70..71 ")"
91         WHITESPACE@71..72 " "
92         BLOCK_EXPR@72..74
93           STMT_LIST@72..74
94             L_CURLY@72..73 "{"
95             R_CURLY@73..74 "}"
96       WHITESPACE@74..79 "\n    "
97       FN@79..108
98         FN_KW@79..81 "fn"
99         WHITESPACE@81..82 " "
100         NAME@82..84
101           IDENT@82..84 "f3"
102         PARAM_LIST@84..105
103           L_PAREN@84..85 "("
104           PARAM@85..104
105             TUPLE_STRUCT_PAT@85..95
106               PATH@85..92
107                 PATH_SEGMENT@85..92
108                   NAME_REF@85..92
109                     IDENT@85..92 "NewType"
110               L_PAREN@92..93 "("
111               IDENT_PAT@93..94
112                 NAME@93..94
113                   IDENT@93..94 "a"
114               R_PAREN@94..95 ")"
115             COLON@95..96 ":"
116             WHITESPACE@96..97 " "
117             PATH_TYPE@97..104
118               PATH@97..104
119                 PATH_SEGMENT@97..104
120                   NAME_REF@97..104
121                     IDENT@97..104 "NewType"
122           R_PAREN@104..105 ")"
123         WHITESPACE@105..106 " "
124         BLOCK_EXPR@106..108
125           STMT_LIST@106..108
126             L_CURLY@106..107 "{"
127             R_CURLY@107..108 "}"
128       WHITESPACE@108..113 "\n    "
129       FN@113..135
130         FN_KW@113..115 "fn"
131         WHITESPACE@115..116 " "
132         NAME@116..118
133           IDENT@116..118 "f4"
134         PARAM_LIST@118..132
135           L_PAREN@118..119 "("
136           PARAM@119..131
137             REF_PAT@119..122
138               AMP@119..120 "&"
139               REF_PAT@120..122
140                 AMP@120..121 "&"
141                 IDENT_PAT@121..122
142                   NAME@121..122
143                     IDENT@121..122 "a"
144             COLON@122..123 ":"
145             WHITESPACE@123..124 " "
146             REF_TYPE@124..131
147               AMP@124..125 "&"
148               REF_TYPE@125..131
149                 AMP@125..126 "&"
150                 PATH_TYPE@126..131
151                   PATH@126..131
152                     PATH_SEGMENT@126..131
153                       NAME_REF@126..131
154                         IDENT@126..131 "usize"
155           R_PAREN@131..132 ")"
156         WHITESPACE@132..133 " "
157         BLOCK_EXPR@133..135
158           STMT_LIST@133..135
159             L_CURLY@133..134 "{"
160             R_CURLY@134..135 "}"
161       WHITESPACE@135..140 "\n    "
162       FN@140..167
163         FN_KW@140..142 "fn"
164         WHITESPACE@142..143 " "
165         NAME@143..146
166           IDENT@143..146 "bar"
167         PARAM_LIST@146..166
168           L_PAREN@146..147 "("
169           PARAM@147..153
170             WILDCARD_PAT@147..148
171               UNDERSCORE@147..148 "_"
172             COLON@148..149 ":"
173             WHITESPACE@149..150 " "
174             PATH_TYPE@150..153
175               PATH@150..153
176                 PATH_SEGMENT@150..153
177                   NAME_REF@150..153
178                     IDENT@150..153 "u64"
179           COMMA@153..154 ","
180           WHITESPACE@154..155 " "
181           PARAM@155..165
182             IDENT_PAT@155..160
183               MUT_KW@155..158 "mut"
184               WHITESPACE@158..159 " "
185               NAME@159..160
186                 IDENT@159..160 "x"
187             COLON@160..161 ":"
188             WHITESPACE@161..162 " "
189             PATH_TYPE@162..165
190               PATH@162..165
191                 PATH_SEGMENT@162..165
192                   NAME_REF@162..165
193                     IDENT@162..165 "i32"
194           R_PAREN@165..166 ")"
195         SEMICOLON@166..167 ";"
196       WHITESPACE@167..168 "\n"
197       R_CURLY@168..169 "}"
198   WHITESPACE@169..170 "\n"