aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/test_data/parser/inline/ok/0081_for_type.txt
blob: b1353c2c664c6869b4497a95b40f07211139ef29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
SOURCE_FILE@[0; 200)
  TYPE_ALIAS_DEF@[0; 28)
    TYPE_KW@[0; 4) "type"
    WHITESPACE@[4; 5) " "
    NAME@[5; 6)
      IDENT@[5; 6) "A"
    WHITESPACE@[6; 7) " "
    EQ@[7; 8) "="
    WHITESPACE@[8; 9) " "
    FOR_TYPE@[9; 27)
      FOR_KW@[9; 12) "for"
      TYPE_PARAM_LIST@[12; 16)
        L_ANGLE@[12; 13) "<"
        LIFETIME_PARAM@[13; 15)
          LIFETIME@[13; 15) "\'a"
        R_ANGLE@[15; 16) ">"
      WHITESPACE@[16; 17) " "
      FN_POINTER_TYPE@[17; 27)
        FN_KW@[17; 19) "fn"
        PARAM_LIST@[19; 21)
          L_PAREN@[19; 20) "("
          R_PAREN@[20; 21) ")"
        WHITESPACE@[21; 22) " "
        RET_TYPE@[22; 27)
          THIN_ARROW@[22; 24) "->"
          WHITESPACE@[24; 25) " "
          TUPLE_TYPE@[25; 27)
            L_PAREN@[25; 26) "("
            R_PAREN@[26; 27) ")"
    SEMI@[27; 28) ";"
  WHITESPACE@[28; 29) "\n"
  FN_DEF@[29; 79)
    FN_KW@[29; 31) "fn"
    WHITESPACE@[31; 32) " "
    NAME@[32; 35)
      IDENT@[32; 35) "foo"
    TYPE_PARAM_LIST@[35; 38)
      L_ANGLE@[35; 36) "<"
      TYPE_PARAM@[36; 37)
        NAME@[36; 37)
          IDENT@[36; 37) "T"
      R_ANGLE@[37; 38) ">"
    PARAM_LIST@[38; 46)
      L_PAREN@[38; 39) "("
      PARAM@[39; 45)
        BIND_PAT@[39; 41)
          NAME@[39; 41)
            IDENT@[39; 41) "_t"
        COLON@[41; 42) ":"
        WHITESPACE@[42; 43) " "
        REFERENCE_TYPE@[43; 45)
          AMP@[43; 44) "&"
          PATH_TYPE@[44; 45)
            PATH@[44; 45)
              PATH_SEGMENT@[44; 45)
                NAME_REF@[44; 45)
                  IDENT@[44; 45) "T"
      R_PAREN@[45; 46) ")"
    WHITESPACE@[46; 47) " "
    WHERE_CLAUSE@[47; 76)
      WHERE_KW@[47; 52) "where"
      WHITESPACE@[52; 53) " "
      WHERE_PRED@[53; 76)
        FOR_TYPE@[53; 66)
          FOR_KW@[53; 56) "for"
          TYPE_PARAM_LIST@[56; 60)
            L_ANGLE@[56; 57) "<"
            LIFETIME_PARAM@[57; 59)
              LIFETIME@[57; 59) "\'a"
            R_ANGLE@[59; 60) ">"
          WHITESPACE@[60; 61) " "
          REFERENCE_TYPE@[61; 66)
            AMP@[61; 62) "&"
            LIFETIME@[62; 64) "\'a"
            WHITESPACE@[64; 65) " "
            PATH_TYPE@[65; 66)
              PATH@[65; 66)
                PATH_SEGMENT@[65; 66)
                  NAME_REF@[65; 66)
                    IDENT@[65; 66) "T"
        COLON@[66; 67) ":"
        WHITESPACE@[67; 68) " "
        TYPE_BOUND_LIST@[68; 76)
          TYPE_BOUND@[68; 76)
            PATH_TYPE@[68; 76)
              PATH@[68; 76)
                PATH_SEGMENT@[68; 76)
                  NAME_REF@[68; 76)
                    IDENT@[68; 76) "Iterator"
    WHITESPACE@[76; 77) " "
    BLOCK_EXPR@[77; 79)
      BLOCK@[77; 79)
        L_CURLY@[77; 78) "{"
        R_CURLY@[78; 79) "}"
  WHITESPACE@[79; 80) "\n"
  FN_DEF@[80; 134)
    FN_KW@[80; 82) "fn"
    WHITESPACE@[82; 83) " "
    NAME@[83; 86)
      IDENT@[83; 86) "bar"
    TYPE_PARAM_LIST@[86; 89)
      L_ANGLE@[86; 87) "<"
      TYPE_PARAM@[87; 88)
        NAME@[87; 88)
          IDENT@[87; 88) "T"
      R_ANGLE@[88; 89) ">"
    PARAM_LIST@[89; 97)
      L_PAREN@[89; 90) "("
      PARAM@[90; 96)
        BIND_PAT@[90; 92)
          NAME@[90; 92)
            IDENT@[90; 92) "_t"
        COLON@[92; 93) ":"
        WHITESPACE@[93; 94) " "
        REFERENCE_TYPE@[94; 96)
          AMP@[94; 95) "&"
          PATH_TYPE@[95; 96)
            PATH@[95; 96)
              PATH_SEGMENT@[95; 96)
                NAME_REF@[95; 96)
                  IDENT@[95; 96) "T"
      R_PAREN@[96; 97) ")"
    WHITESPACE@[97; 98) " "
    WHERE_CLAUSE@[98; 131)
      WHERE_KW@[98; 103) "where"
      WHITESPACE@[103; 104) " "
      WHERE_PRED@[104; 131)
        FOR_TYPE@[104; 121)
          FOR_KW@[104; 107) "for"
          TYPE_PARAM_LIST@[107; 111)
            L_ANGLE@[107; 108) "<"
            LIFETIME_PARAM@[108; 110)
              LIFETIME@[108; 110) "\'a"
            R_ANGLE@[110; 111) ">"
          WHITESPACE@[111; 112) " "
          REFERENCE_TYPE@[112; 121)
            AMP@[112; 113) "&"
            LIFETIME@[113; 115) "\'a"
            WHITESPACE@[115; 116) " "
            MUT_KW@[116; 119) "mut"
            WHITESPACE@[119; 120) " "
            PATH_TYPE@[120; 121)
              PATH@[120; 121)
                PATH_SEGMENT@[120; 121)
                  NAME_REF@[120; 121)
                    IDENT@[120; 121) "T"
        COLON@[121; 122) ":"
        WHITESPACE@[122; 123) " "
        TYPE_BOUND_LIST@[123; 131)
          TYPE_BOUND@[123; 131)
            PATH_TYPE@[123; 131)
              PATH@[123; 131)
                PATH_SEGMENT@[123; 131)
                  NAME_REF@[123; 131)
                    IDENT@[123; 131) "Iterator"
    WHITESPACE@[131; 132) " "
    BLOCK_EXPR@[132; 134)
      BLOCK@[132; 134)
        L_CURLY@[132; 133) "{"
        R_CURLY@[133; 134) "}"
  WHITESPACE@[134; 135) "\n"
  FN_DEF@[135; 199)
    FN_KW@[135; 137) "fn"
    WHITESPACE@[137; 138) " "
    NAME@[138; 141)
      IDENT@[138; 141) "baz"
    TYPE_PARAM_LIST@[141; 144)
      L_ANGLE@[141; 142) "<"
      TYPE_PARAM@[142; 143)
        NAME@[142; 143)
          IDENT@[142; 143) "T"
      R_ANGLE@[143; 144) ">"
    PARAM_LIST@[144; 152)
      L_PAREN@[144; 145) "("
      PARAM@[145; 151)
        BIND_PAT@[145; 147)
          NAME@[145; 147)
            IDENT@[145; 147) "_t"
        COLON@[147; 148) ":"
        WHITESPACE@[148; 149) " "
        REFERENCE_TYPE@[149; 151)
          AMP@[149; 150) "&"
          PATH_TYPE@[150; 151)
            PATH@[150; 151)
              PATH_SEGMENT@[150; 151)
                NAME_REF@[150; 151)
                  IDENT@[150; 151) "T"
      R_PAREN@[151; 152) ")"
    WHITESPACE@[152; 153) " "
    WHERE_CLAUSE@[153; 196)
      WHERE_KW@[153; 158) "where"
      WHITESPACE@[158; 159) " "
      WHERE_PRED@[159; 196)
        FOR_TYPE@[159; 186)
          FOR_KW@[159; 162) "for"
          TYPE_PARAM_LIST@[162; 166)
            L_ANGLE@[162; 163) "<"
            LIFETIME_PARAM@[163; 165)
              LIFETIME@[163; 165) "\'a"
            R_ANGLE@[165; 166) ">"
          WHITESPACE@[166; 167) " "
          PATH_TYPE@[167; 186)
            PATH@[167; 186)
              PATH@[167; 181)
                PATH_SEGMENT@[167; 181)
                  L_ANGLE@[167; 168) "<"
                  REFERENCE_TYPE@[168; 173)
                    AMP@[168; 169) "&"
                    LIFETIME@[169; 171) "\'a"
                    WHITESPACE@[171; 172) " "
                    PATH_TYPE@[172; 173)
                      PATH@[172; 173)
                        PATH_SEGMENT@[172; 173)
                          NAME_REF@[172; 173)
                            IDENT@[172; 173) "T"
                  WHITESPACE@[173; 174) " "
                  AS_KW@[174; 176) "as"
                  WHITESPACE@[176; 177) " "
                  PATH_TYPE@[177; 180)
                    PATH@[177; 180)
                      PATH_SEGMENT@[177; 180)
                        NAME_REF@[177; 180)
                          IDENT@[177; 180) "Baz"
                  R_ANGLE@[180; 181) ">"
              COLONCOLON@[181; 183) "::"
              PATH_SEGMENT@[183; 186)
                NAME_REF@[183; 186)
                  IDENT@[183; 186) "Foo"
        COLON@[186; 187) ":"
        WHITESPACE@[187; 188) " "
        TYPE_BOUND_LIST@[188; 196)
          TYPE_BOUND@[188; 196)
            PATH_TYPE@[188; 196)
              PATH@[188; 196)
                PATH_SEGMENT@[188; 196)
                  NAME_REF@[188; 196)
                    IDENT@[188; 196) "Iterator"
    WHITESPACE@[196; 197) " "
    BLOCK_EXPR@[197; 199)
      BLOCK@[197; 199)
        L_CURLY@[197; 198) "{"
        R_CURLY@[198; 199) "}"
  WHITESPACE@[199; 200) "\n"