diff options
Diffstat (limited to 'crates/ra_hir_ty/src/tests/coercion.rs')
-rw-r--r-- | crates/ra_hir_ty/src/tests/coercion.rs | 632 |
1 files changed, 316 insertions, 316 deletions
diff --git a/crates/ra_hir_ty/src/tests/coercion.rs b/crates/ra_hir_ty/src/tests/coercion.rs index 6f777ed8c..a2601c68a 100644 --- a/crates/ra_hir_ty/src/tests/coercion.rs +++ b/crates/ra_hir_ty/src/tests/coercion.rs | |||
@@ -29,10 +29,10 @@ fn test() { | |||
29 | } | 29 | } |
30 | "#), | 30 | "#), |
31 | @r###" | 31 | @r###" |
32 | 11..41 '{ ...4 }; }': () | 32 | 10..40 '{ ...4 }; }': () |
33 | 21..22 'a': i32 | 33 | 20..21 'a': i32 |
34 | 30..38 '{ 1i64 }': i64 | 34 | 29..37 '{ 1i64 }': i64 |
35 | 32..36 '1i64': i64 | 35 | 31..35 '1i64': i64 |
36 | "###); | 36 | "###); |
37 | } | 37 | } |
38 | 38 | ||
@@ -63,50 +63,50 @@ fn test2() { | |||
63 | } | 63 | } |
64 | "#), | 64 | "#), |
65 | @r###" | 65 | @r###" |
66 | 31..32 '_': &[T] | 66 | 30..31 '_': &[T] |
67 | 45..56 '{ loop {} }': T | 67 | 44..55 '{ loop {} }': T |
68 | 47..54 'loop {}': ! | 68 | 46..53 'loop {}': ! |
69 | 52..54 '{}': () | 69 | 51..53 '{}': () |
70 | 65..66 '_': S<&[T]> | 70 | 64..65 '_': S<&[T]> |
71 | 82..93 '{ loop {} }': T | 71 | 81..92 '{ loop {} }': T |
72 | 84..91 'loop {}': ! | 72 | 83..90 'loop {}': ! |
73 | 89..91 '{}': () | 73 | 88..90 '{}': () |
74 | 122..133 '{ loop {} }': *mut [T; _] | 74 | 121..132 '{ loop {} }': *mut [T; _] |
75 | 124..131 'loop {}': ! | 75 | 123..130 'loop {}': ! |
76 | 129..131 '{}': () | 76 | 128..130 '{}': () |
77 | 160..173 '{ gen() }': *mut [U] | 77 | 159..172 '{ gen() }': *mut [U] |
78 | 166..169 'gen': fn gen<U>() -> *mut [U; _] | 78 | 165..168 'gen': fn gen<U>() -> *mut [U; _] |
79 | 166..171 'gen()': *mut [U; _] | 79 | 165..170 'gen()': *mut [U; _] |
80 | 186..420 '{ ...rr); }': () | 80 | 185..419 '{ ...rr); }': () |
81 | 196..199 'arr': &[u8; _] | 81 | 195..198 'arr': &[u8; _] |
82 | 212..216 '&[1]': &[u8; _] | 82 | 211..215 '&[1]': &[u8; _] |
83 | 213..216 '[1]': [u8; _] | 83 | 212..215 '[1]': [u8; _] |
84 | 214..215 '1': u8 | 84 | 213..214 '1': u8 |
85 | 227..228 'a': &[u8] | 85 | 226..227 'a': &[u8] |
86 | 237..240 'arr': &[u8; _] | 86 | 236..239 'arr': &[u8; _] |
87 | 250..251 'b': u8 | 87 | 249..250 'b': u8 |
88 | 254..255 'f': fn f<u8>(&[u8]) -> u8 | 88 | 253..254 'f': fn f<u8>(&[u8]) -> u8 |
89 | 254..260 'f(arr)': u8 | 89 | 253..259 'f(arr)': u8 |
90 | 256..259 'arr': &[u8; _] | 90 | 255..258 'arr': &[u8; _] |
91 | 270..271 'c': &[u8] | 91 | 269..270 'c': &[u8] |
92 | 280..287 '{ arr }': &[u8] | 92 | 279..286 '{ arr }': &[u8] |
93 | 282..285 'arr': &[u8; _] | 93 | 281..284 'arr': &[u8; _] |
94 | 297..298 'd': u8 | 94 | 296..297 'd': u8 |
95 | 301..302 'g': fn g<u8>(S<&[u8]>) -> u8 | 95 | 300..301 'g': fn g<u8>(S<&[u8]>) -> u8 |
96 | 301..316 'g(S { a: arr })': u8 | 96 | 300..315 'g(S { a: arr })': u8 |
97 | 303..315 'S { a: arr }': S<&[u8]> | 97 | 302..314 'S { a: arr }': S<&[u8]> |
98 | 310..313 'arr': &[u8; _] | 98 | 309..312 'arr': &[u8; _] |
99 | 326..327 'e': [&[u8]; _] | 99 | 325..326 'e': [&[u8]; _] |
100 | 341..346 '[arr]': [&[u8]; _] | 100 | 340..345 '[arr]': [&[u8]; _] |
101 | 342..345 'arr': &[u8; _] | 101 | 341..344 'arr': &[u8; _] |
102 | 356..357 'f': [&[u8]; _] | 102 | 355..356 'f': [&[u8]; _] |
103 | 371..379 '[arr; 2]': [&[u8]; _] | 103 | 370..378 '[arr; 2]': [&[u8]; _] |
104 | 372..375 'arr': &[u8; _] | 104 | 371..374 'arr': &[u8; _] |
105 | 377..378 '2': usize | 105 | 376..377 '2': usize |
106 | 389..390 'g': (&[u8], &[u8]) | 106 | 388..389 'g': (&[u8], &[u8]) |
107 | 407..417 '(arr, arr)': (&[u8], &[u8]) | 107 | 406..416 '(arr, arr)': (&[u8], &[u8]) |
108 | 408..411 'arr': &[u8; _] | 108 | 407..410 'arr': &[u8; _] |
109 | 413..416 'arr': &[u8; _] | 109 | 412..415 'arr': &[u8; _] |
110 | "### | 110 | "### |
111 | ); | 111 | ); |
112 | } | 112 | } |
@@ -121,15 +121,15 @@ fn test() { | |||
121 | } | 121 | } |
122 | "#), | 122 | "#), |
123 | @r###" | 123 | @r###" |
124 | 11..76 '{ ...[1]; }': () | 124 | 10..75 '{ ...[1]; }': () |
125 | 21..22 'x': &[isize] | 125 | 20..21 'x': &[isize] |
126 | 35..39 '&[1]': &[isize; _] | 126 | 34..38 '&[1]': &[isize; _] |
127 | 36..39 '[1]': [isize; _] | 127 | 35..38 '[1]': [isize; _] |
128 | 37..38 '1': isize | 128 | 36..37 '1': isize |
129 | 49..50 'x': *const [isize] | 129 | 48..49 'x': *const [isize] |
130 | 69..73 '&[1]': &[isize; _] | 130 | 68..72 '&[1]': &[isize; _] |
131 | 70..73 '[1]': [isize; _] | 131 | 69..72 '[1]': [isize; _] |
132 | 71..72 '1': isize | 132 | 70..71 '1': isize |
133 | "###); | 133 | "###); |
134 | } | 134 | } |
135 | 135 | ||
@@ -155,31 +155,31 @@ fn test(a: A<[u8; 2]>, b: B<[u8; 2]>, c: C<[u8; 2]>) { | |||
155 | } | 155 | } |
156 | "#), | 156 | "#), |
157 | @r###" | 157 | @r###" |
158 | 258..259 'x': A<[T]> | 158 | 257..258 'x': A<[T]> |
159 | 279..284 '{ x }': A<[T]> | 159 | 278..283 '{ x }': A<[T]> |
160 | 281..282 'x': A<[T]> | 160 | 280..281 'x': A<[T]> |
161 | 296..297 'x': B<[T]> | 161 | 295..296 'x': B<[T]> |
162 | 317..322 '{ x }': B<[T]> | 162 | 316..321 '{ x }': B<[T]> |
163 | 319..320 'x': B<[T]> | 163 | 318..319 'x': B<[T]> |
164 | 334..335 'x': C<[T]> | 164 | 333..334 'x': C<[T]> |
165 | 355..360 '{ x }': C<[T]> | 165 | 354..359 '{ x }': C<[T]> |
166 | 357..358 'x': C<[T]> | 166 | 356..357 'x': C<[T]> |
167 | 370..371 'a': A<[u8; _]> | 167 | 369..370 'a': A<[u8; _]> |
168 | 385..386 'b': B<[u8; _]> | 168 | 384..385 'b': B<[u8; _]> |
169 | 400..401 'c': C<[u8; _]> | 169 | 399..400 'c': C<[u8; _]> |
170 | 415..481 '{ ...(c); }': () | 170 | 414..480 '{ ...(c); }': () |
171 | 425..426 'd': A<[{unknown}]> | 171 | 424..425 'd': A<[{unknown}]> |
172 | 429..433 'foo1': fn foo1<{unknown}>(A<[{unknown}]>) -> A<[{unknown}]> | 172 | 428..432 'foo1': fn foo1<{unknown}>(A<[{unknown}]>) -> A<[{unknown}]> |
173 | 429..436 'foo1(a)': A<[{unknown}]> | 173 | 428..435 'foo1(a)': A<[{unknown}]> |
174 | 434..435 'a': A<[u8; _]> | 174 | 433..434 'a': A<[u8; _]> |
175 | 446..447 'e': B<[u8]> | 175 | 445..446 'e': B<[u8]> |
176 | 450..454 'foo2': fn foo2<u8>(B<[u8]>) -> B<[u8]> | 176 | 449..453 'foo2': fn foo2<u8>(B<[u8]>) -> B<[u8]> |
177 | 450..457 'foo2(b)': B<[u8]> | 177 | 449..456 'foo2(b)': B<[u8]> |
178 | 455..456 'b': B<[u8; _]> | 178 | 454..455 'b': B<[u8; _]> |
179 | 467..468 'f': C<[u8]> | 179 | 466..467 'f': C<[u8]> |
180 | 471..475 'foo3': fn foo3<u8>(C<[u8]>) -> C<[u8]> | 180 | 470..474 'foo3': fn foo3<u8>(C<[u8]>) -> C<[u8]> |
181 | 471..478 'foo3(c)': C<[u8]> | 181 | 470..477 'foo3(c)': C<[u8]> |
182 | 476..477 'c': C<[u8; _]> | 182 | 475..476 'c': C<[u8; _]> |
183 | "### | 183 | "### |
184 | ); | 184 | ); |
185 | } | 185 | } |
@@ -198,24 +198,24 @@ fn test() { | |||
198 | } | 198 | } |
199 | "#), | 199 | "#), |
200 | @r###" | 200 | @r###" |
201 | 11..12 'x': &[T] | 201 | 10..11 'x': &[T] |
202 | 28..39 '{ loop {} }': &[T] | 202 | 27..38 '{ loop {} }': &[T] |
203 | 30..37 'loop {}': ! | 203 | 29..36 'loop {}': ! |
204 | 35..37 '{}': () | 204 | 34..36 '{}': () |
205 | 50..126 '{ ... }; }': () | 205 | 49..125 '{ ... }; }': () |
206 | 60..61 'x': &[i32] | 206 | 59..60 'x': &[i32] |
207 | 64..123 'if tru... }': &[i32] | 207 | 63..122 'if tru... }': &[i32] |
208 | 67..71 'true': bool | 208 | 66..70 'true': bool |
209 | 72..97 '{ ... }': &[i32] | 209 | 71..96 '{ ... }': &[i32] |
210 | 82..85 'foo': fn foo<i32>(&[i32]) -> &[i32] | 210 | 81..84 'foo': fn foo<i32>(&[i32]) -> &[i32] |
211 | 82..91 'foo(&[1])': &[i32] | 211 | 81..90 'foo(&[1])': &[i32] |
212 | 86..90 '&[1]': &[i32; _] | 212 | 85..89 '&[1]': &[i32; _] |
213 | 87..90 '[1]': [i32; _] | 213 | 86..89 '[1]': [i32; _] |
214 | 88..89 '1': i32 | 214 | 87..88 '1': i32 |
215 | 103..123 '{ ... }': &[i32; _] | 215 | 102..122 '{ ... }': &[i32; _] |
216 | 113..117 '&[1]': &[i32; _] | 216 | 112..116 '&[1]': &[i32; _] |
217 | 114..117 '[1]': [i32; _] | 217 | 113..116 '[1]': [i32; _] |
218 | 115..116 '1': i32 | 218 | 114..115 '1': i32 |
219 | "### | 219 | "### |
220 | ); | 220 | ); |
221 | } | 221 | } |
@@ -234,24 +234,24 @@ fn test() { | |||
234 | } | 234 | } |
235 | "#), | 235 | "#), |
236 | @r###" | 236 | @r###" |
237 | 11..12 'x': &[T] | 237 | 10..11 'x': &[T] |
238 | 28..39 '{ loop {} }': &[T] | 238 | 27..38 '{ loop {} }': &[T] |
239 | 30..37 'loop {}': ! | 239 | 29..36 'loop {}': ! |
240 | 35..37 '{}': () | 240 | 34..36 '{}': () |
241 | 50..126 '{ ... }; }': () | 241 | 49..125 '{ ... }; }': () |
242 | 60..61 'x': &[i32] | 242 | 59..60 'x': &[i32] |
243 | 64..123 'if tru... }': &[i32] | 243 | 63..122 'if tru... }': &[i32] |
244 | 67..71 'true': bool | 244 | 66..70 'true': bool |
245 | 72..92 '{ ... }': &[i32; _] | 245 | 71..91 '{ ... }': &[i32; _] |
246 | 82..86 '&[1]': &[i32; _] | 246 | 81..85 '&[1]': &[i32; _] |
247 | 83..86 '[1]': [i32; _] | 247 | 82..85 '[1]': [i32; _] |
248 | 84..85 '1': i32 | 248 | 83..84 '1': i32 |
249 | 98..123 '{ ... }': &[i32] | 249 | 97..122 '{ ... }': &[i32] |
250 | 108..111 'foo': fn foo<i32>(&[i32]) -> &[i32] | 250 | 107..110 'foo': fn foo<i32>(&[i32]) -> &[i32] |
251 | 108..117 'foo(&[1])': &[i32] | 251 | 107..116 'foo(&[1])': &[i32] |
252 | 112..116 '&[1]': &[i32; _] | 252 | 111..115 '&[1]': &[i32; _] |
253 | 113..116 '[1]': [i32; _] | 253 | 112..115 '[1]': [i32; _] |
254 | 114..115 '1': i32 | 254 | 113..114 '1': i32 |
255 | "### | 255 | "### |
256 | ); | 256 | ); |
257 | } | 257 | } |
@@ -270,31 +270,31 @@ fn test(i: i32) { | |||
270 | } | 270 | } |
271 | "#), | 271 | "#), |
272 | @r###" | 272 | @r###" |
273 | 11..12 'x': &[T] | 273 | 10..11 'x': &[T] |
274 | 28..39 '{ loop {} }': &[T] | 274 | 27..38 '{ loop {} }': &[T] |
275 | 30..37 'loop {}': ! | 275 | 29..36 'loop {}': ! |
276 | 35..37 '{}': () | 276 | 34..36 '{}': () |
277 | 48..49 'i': i32 | 277 | 47..48 'i': i32 |
278 | 56..150 '{ ... }; }': () | 278 | 55..149 '{ ... }; }': () |
279 | 66..67 'x': &[i32] | 279 | 65..66 'x': &[i32] |
280 | 70..147 'match ... }': &[i32] | 280 | 69..146 'match ... }': &[i32] |
281 | 76..77 'i': i32 | 281 | 75..76 'i': i32 |
282 | 88..89 '2': i32 | 282 | 87..88 '2': i32 |
283 | 88..89 '2': i32 | 283 | 87..88 '2': i32 |
284 | 93..96 'foo': fn foo<i32>(&[i32]) -> &[i32] | 284 | 92..95 'foo': fn foo<i32>(&[i32]) -> &[i32] |
285 | 93..102 'foo(&[2])': &[i32] | 285 | 92..101 'foo(&[2])': &[i32] |
286 | 97..101 '&[2]': &[i32; _] | 286 | 96..100 '&[2]': &[i32; _] |
287 | 98..101 '[2]': [i32; _] | 287 | 97..100 '[2]': [i32; _] |
288 | 99..100 '2': i32 | 288 | 98..99 '2': i32 |
289 | 112..113 '1': i32 | 289 | 111..112 '1': i32 |
290 | 112..113 '1': i32 | 290 | 111..112 '1': i32 |
291 | 117..121 '&[1]': &[i32; _] | 291 | 116..120 '&[1]': &[i32; _] |
292 | 118..121 '[1]': [i32; _] | 292 | 117..120 '[1]': [i32; _] |
293 | 119..120 '1': i32 | 293 | 118..119 '1': i32 |
294 | 131..132 '_': i32 | 294 | 130..131 '_': i32 |
295 | 136..140 '&[3]': &[i32; _] | 295 | 135..139 '&[3]': &[i32; _] |
296 | 137..140 '[3]': [i32; _] | 296 | 136..139 '[3]': [i32; _] |
297 | 138..139 '3': i32 | 297 | 137..138 '3': i32 |
298 | "### | 298 | "### |
299 | ); | 299 | ); |
300 | } | 300 | } |
@@ -313,31 +313,31 @@ fn test(i: i32) { | |||
313 | } | 313 | } |
314 | "#), | 314 | "#), |
315 | @r###" | 315 | @r###" |
316 | 11..12 'x': &[T] | 316 | 10..11 'x': &[T] |
317 | 28..39 '{ loop {} }': &[T] | 317 | 27..38 '{ loop {} }': &[T] |
318 | 30..37 'loop {}': ! | 318 | 29..36 'loop {}': ! |
319 | 35..37 '{}': () | 319 | 34..36 '{}': () |
320 | 48..49 'i': i32 | 320 | 47..48 'i': i32 |
321 | 56..150 '{ ... }; }': () | 321 | 55..149 '{ ... }; }': () |
322 | 66..67 'x': &[i32] | 322 | 65..66 'x': &[i32] |
323 | 70..147 'match ... }': &[i32] | 323 | 69..146 'match ... }': &[i32] |
324 | 76..77 'i': i32 | 324 | 75..76 'i': i32 |
325 | 88..89 '1': i32 | 325 | 87..88 '1': i32 |
326 | 88..89 '1': i32 | 326 | 87..88 '1': i32 |
327 | 93..97 '&[1]': &[i32; _] | 327 | 92..96 '&[1]': &[i32; _] |
328 | 94..97 '[1]': [i32; _] | 328 | 93..96 '[1]': [i32; _] |
329 | 95..96 '1': i32 | 329 | 94..95 '1': i32 |
330 | 107..108 '2': i32 | 330 | 106..107 '2': i32 |
331 | 107..108 '2': i32 | 331 | 106..107 '2': i32 |
332 | 112..115 'foo': fn foo<i32>(&[i32]) -> &[i32] | 332 | 111..114 'foo': fn foo<i32>(&[i32]) -> &[i32] |
333 | 112..121 'foo(&[2])': &[i32] | 333 | 111..120 'foo(&[2])': &[i32] |
334 | 116..120 '&[2]': &[i32; _] | 334 | 115..119 '&[2]': &[i32; _] |
335 | 117..120 '[2]': [i32; _] | 335 | 116..119 '[2]': [i32; _] |
336 | 118..119 '2': i32 | 336 | 117..118 '2': i32 |
337 | 131..132 '_': i32 | 337 | 130..131 '_': i32 |
338 | 136..140 '&[3]': &[i32; _] | 338 | 135..139 '&[3]': &[i32; _] |
339 | 137..140 '[3]': [i32; _] | 339 | 136..139 '[3]': [i32; _] |
340 | 138..139 '3': i32 | 340 | 137..138 '3': i32 |
341 | "### | 341 | "### |
342 | ); | 342 | ); |
343 | } | 343 | } |
@@ -358,24 +358,24 @@ fn test() { | |||
358 | } | 358 | } |
359 | "#), | 359 | "#), |
360 | @r###" | 360 | @r###" |
361 | 11..145 '{ ... }; }': () | 361 | 10..144 '{ ... }; }': () |
362 | 21..22 't': &mut i32 | 362 | 20..21 't': &mut i32 |
363 | 25..31 '&mut 1': &mut i32 | 363 | 24..30 '&mut 1': &mut i32 |
364 | 30..31 '1': i32 | 364 | 29..30 '1': i32 |
365 | 41..42 'x': *const i32 | 365 | 40..41 'x': *const i32 |
366 | 45..142 'match ... }': *const i32 | 366 | 44..141 'match ... }': *const i32 |
367 | 51..52 '1': i32 | 367 | 50..51 '1': i32 |
368 | 63..64 '1': i32 | 368 | 62..63 '1': i32 |
369 | 63..64 '1': i32 | 369 | 62..63 '1': i32 |
370 | 68..69 't': &mut i32 | 370 | 67..68 't': &mut i32 |
371 | 68..81 't as *mut i32': *mut i32 | 371 | 67..80 't as *mut i32': *mut i32 |
372 | 91..92 '2': i32 | 372 | 90..91 '2': i32 |
373 | 91..92 '2': i32 | 373 | 90..91 '2': i32 |
374 | 96..97 't': &mut i32 | 374 | 95..96 't': &mut i32 |
375 | 96..105 't as &i32': &i32 | 375 | 95..104 't as &i32': &i32 |
376 | 115..116 '_': i32 | 376 | 114..115 '_': i32 |
377 | 120..121 't': &mut i32 | 377 | 119..120 't': &mut i32 |
378 | 120..135 't as *const i32': *const i32 | 378 | 119..134 't as *const i32': *const i32 |
379 | "### | 379 | "### |
380 | ); | 380 | ); |
381 | } | 381 | } |
@@ -389,9 +389,9 @@ fn foo() -> u32 { | |||
389 | } | 389 | } |
390 | "#, true), | 390 | "#, true), |
391 | @r###" | 391 | @r###" |
392 | 17..40 '{ ...own; }': u32 | 392 | 16..39 '{ ...own; }': u32 |
393 | 23..37 'return unknown': ! | 393 | 22..36 'return unknown': ! |
394 | 30..37 'unknown': u32 | 394 | 29..36 'unknown': u32 |
395 | "### | 395 | "### |
396 | ); | 396 | ); |
397 | } | 397 | } |
@@ -409,24 +409,24 @@ fn test() { | |||
409 | } | 409 | } |
410 | "#, true), | 410 | "#, true), |
411 | @r###" | 411 | @r###" |
412 | 30..31 'x': &Foo | 412 | 29..30 'x': &Foo |
413 | 39..41 '{}': () | 413 | 38..40 '{}': () |
414 | 52..133 '{ ...oo); }': () | 414 | 51..132 '{ ...oo); }': () |
415 | 58..71 'takes_ref_foo': fn takes_ref_foo(&Foo) | 415 | 57..70 'takes_ref_foo': fn takes_ref_foo(&Foo) |
416 | 58..77 'takes_...(&Foo)': () | 416 | 57..76 'takes_...(&Foo)': () |
417 | 72..76 '&Foo': &Foo | 417 | 71..75 '&Foo': &Foo |
418 | 73..76 'Foo': Foo | 418 | 72..75 'Foo': Foo |
419 | 83..96 'takes_ref_foo': fn takes_ref_foo(&Foo) | 419 | 82..95 'takes_ref_foo': fn takes_ref_foo(&Foo) |
420 | 83..103 'takes_...&&Foo)': () | 420 | 82..102 'takes_...&&Foo)': () |
421 | 97..102 '&&Foo': &&Foo | 421 | 96..101 '&&Foo': &&Foo |
422 | 98..102 '&Foo': &Foo | 422 | 97..101 '&Foo': &Foo |
423 | 99..102 'Foo': Foo | 423 | 98..101 'Foo': Foo |
424 | 109..122 'takes_ref_foo': fn takes_ref_foo(&Foo) | 424 | 108..121 'takes_ref_foo': fn takes_ref_foo(&Foo) |
425 | 109..130 'takes_...&&Foo)': () | 425 | 108..129 'takes_...&&Foo)': () |
426 | 123..129 '&&&Foo': &&&Foo | 426 | 122..128 '&&&Foo': &&&Foo |
427 | 124..129 '&&Foo': &&Foo | 427 | 123..128 '&&Foo': &&Foo |
428 | 125..129 '&Foo': &Foo | 428 | 124..128 '&Foo': &Foo |
429 | 126..129 'Foo': Foo | 429 | 125..128 'Foo': Foo |
430 | "### | 430 | "### |
431 | ); | 431 | ); |
432 | } | 432 | } |
@@ -444,26 +444,26 @@ fn test() { | |||
444 | } | 444 | } |
445 | "#, true), | 445 | "#, true), |
446 | @r###" | 446 | @r###" |
447 | 29..30 'x': &T | 447 | 28..29 'x': &T |
448 | 41..47 '{ *x }': T | 448 | 40..46 '{ *x }': T |
449 | 43..45 '*x': T | 449 | 42..44 '*x': T |
450 | 44..45 'x': &T | 450 | 43..44 'x': &T |
451 | 58..127 '{ ...oo); }': () | 451 | 57..126 '{ ...oo); }': () |
452 | 64..73 'takes_ref': fn takes_ref<Foo>(&Foo) -> Foo | 452 | 63..72 'takes_ref': fn takes_ref<Foo>(&Foo) -> Foo |
453 | 64..79 'takes_ref(&Foo)': Foo | 453 | 63..78 'takes_ref(&Foo)': Foo |
454 | 74..78 '&Foo': &Foo | 454 | 73..77 '&Foo': &Foo |
455 | 75..78 'Foo': Foo | 455 | 74..77 'Foo': Foo |
456 | 85..94 'takes_ref': fn takes_ref<&Foo>(&&Foo) -> &Foo | 456 | 84..93 'takes_ref': fn takes_ref<&Foo>(&&Foo) -> &Foo |
457 | 85..101 'takes_...&&Foo)': &Foo | 457 | 84..100 'takes_...&&Foo)': &Foo |
458 | 95..100 '&&Foo': &&Foo | 458 | 94..99 '&&Foo': &&Foo |
459 | 96..100 '&Foo': &Foo | 459 | 95..99 '&Foo': &Foo |
460 | 97..100 'Foo': Foo | 460 | 96..99 'Foo': Foo |
461 | 107..116 'takes_ref': fn takes_ref<&&Foo>(&&&Foo) -> &&Foo | 461 | 106..115 'takes_ref': fn takes_ref<&&Foo>(&&&Foo) -> &&Foo |
462 | 107..124 'takes_...&&Foo)': &&Foo | 462 | 106..123 'takes_...&&Foo)': &&Foo |
463 | 117..123 '&&&Foo': &&&Foo | 463 | 116..122 '&&&Foo': &&&Foo |
464 | 118..123 '&&Foo': &&Foo | 464 | 117..122 '&&Foo': &&Foo |
465 | 119..123 '&Foo': &Foo | 465 | 118..122 '&Foo': &Foo |
466 | 120..123 'Foo': Foo | 466 | 119..122 'Foo': Foo |
467 | "### | 467 | "### |
468 | ); | 468 | ); |
469 | } | 469 | } |
@@ -483,18 +483,18 @@ fn test() { | |||
483 | } | 483 | } |
484 | "#, true), | 484 | "#, true), |
485 | @r###" | 485 | @r###" |
486 | 127..128 'x': &str | 486 | 126..127 'x': &str |
487 | 136..138 '{}': () | 487 | 135..137 '{}': () |
488 | 169..180 '{ loop {} }': String | 488 | 168..179 '{ loop {} }': String |
489 | 171..178 'loop {}': ! | 489 | 170..177 'loop {}': ! |
490 | 176..178 '{}': () | 490 | 175..177 '{}': () |
491 | 191..236 '{ ... }); }': () | 491 | 190..235 '{ ... }); }': () |
492 | 197..210 'takes_ref_str': fn takes_ref_str(&str) | 492 | 196..209 'takes_ref_str': fn takes_ref_str(&str) |
493 | 197..233 'takes_...g() })': () | 493 | 196..232 'takes_...g() })': () |
494 | 211..232 '&{ ret...ng() }': &String | 494 | 210..231 '&{ ret...ng() }': &String |
495 | 212..232 '{ retu...ng() }': String | 495 | 211..231 '{ retu...ng() }': String |
496 | 214..228 'returns_string': fn returns_string() -> String | 496 | 213..227 'returns_string': fn returns_string() -> String |
497 | 214..230 'return...ring()': String | 497 | 213..229 'return...ring()': String |
498 | "### | 498 | "### |
499 | ); | 499 | ); |
500 | } | 500 | } |
@@ -513,19 +513,19 @@ fn foo() { | |||
513 | } | 513 | } |
514 | "#, true), | 514 | "#, true), |
515 | @r###" | 515 | @r###" |
516 | 10..106 '{ ... }; }': () | 516 | 9..105 '{ ... }; }': () |
517 | 20..21 'x': || -> &u32 | 517 | 19..20 'x': || -> &u32 |
518 | 24..103 '|| { ... }': || -> &u32 | 518 | 23..102 '|| { ... }': || -> &u32 |
519 | 27..103 '{ ... }': &u32 | 519 | 26..102 '{ ... }': &u32 |
520 | 37..82 'if tru... }': () | 520 | 36..81 'if tru... }': () |
521 | 40..44 'true': bool | 521 | 39..43 'true': bool |
522 | 45..82 '{ ... }': () | 522 | 44..81 '{ ... }': () |
523 | 59..71 'return &1u32': ! | 523 | 58..70 'return &1u32': ! |
524 | 66..71 '&1u32': &u32 | 524 | 65..70 '&1u32': &u32 |
525 | 67..71 '1u32': u32 | 525 | 66..70 '1u32': u32 |
526 | 91..97 '&&1u32': &&u32 | 526 | 90..96 '&&1u32': &&u32 |
527 | 92..97 '&1u32': &u32 | 527 | 91..96 '&1u32': &u32 |
528 | 93..97 '1u32': u32 | 528 | 92..96 '1u32': u32 |
529 | "### | 529 | "### |
530 | ); | 530 | ); |
531 | } | 531 | } |
@@ -540,12 +540,12 @@ fn test() { | |||
540 | } | 540 | } |
541 | "#, true), | 541 | "#, true), |
542 | @r###" | 542 | @r###" |
543 | 8..9 'x': u32 | 543 | 7..8 'x': u32 |
544 | 25..30 '{ 1 }': isize | 544 | 24..29 '{ 1 }': isize |
545 | 27..28 '1': isize | 545 | 26..27 '1': isize |
546 | 41..79 '{ ...foo; }': () | 546 | 40..78 '{ ...foo; }': () |
547 | 51..52 'f': fn(u32) -> isize | 547 | 50..51 'f': fn(u32) -> isize |
548 | 73..76 'foo': fn foo(u32) -> isize | 548 | 72..75 'foo': fn foo(u32) -> isize |
549 | "### | 549 | "### |
550 | ); | 550 | ); |
551 | } | 551 | } |
@@ -567,27 +567,27 @@ fn test() { | |||
567 | } | 567 | } |
568 | "#, true), | 568 | "#, true), |
569 | @r###" | 569 | @r###" |
570 | 9..10 'x': u32 | 570 | 8..9 'x': u32 |
571 | 26..31 '{ 1 }': isize | 571 | 25..30 '{ 1 }': isize |
572 | 28..29 '1': isize | 572 | 27..28 '1': isize |
573 | 40..41 'x': u32 | 573 | 39..40 'x': u32 |
574 | 57..62 '{ 2 }': isize | 574 | 56..61 '{ 2 }': isize |
575 | 59..60 '2': isize | 575 | 58..59 '2': isize |
576 | 71..72 'x': u32 | 576 | 70..71 'x': u32 |
577 | 88..93 '{ 3 }': isize | 577 | 87..92 '{ 3 }': isize |
578 | 90..91 '3': isize | 578 | 89..90 '3': isize |
579 | 104..193 '{ ... }; }': () | 579 | 103..192 '{ ... }; }': () |
580 | 114..115 'x': fn(u32) -> isize | 580 | 113..114 'x': fn(u32) -> isize |
581 | 118..190 'match ... }': fn(u32) -> isize | 581 | 117..189 'match ... }': fn(u32) -> isize |
582 | 124..125 '1': i32 | 582 | 123..124 '1': i32 |
583 | 136..137 '1': i32 | 583 | 135..136 '1': i32 |
584 | 136..137 '1': i32 | 584 | 135..136 '1': i32 |
585 | 141..145 'foo1': fn foo1(u32) -> isize | 585 | 140..144 'foo1': fn foo1(u32) -> isize |
586 | 155..156 '2': i32 | 586 | 154..155 '2': i32 |
587 | 155..156 '2': i32 | 587 | 154..155 '2': i32 |
588 | 160..164 'foo2': fn foo2(u32) -> isize | 588 | 159..163 'foo2': fn foo2(u32) -> isize |
589 | 174..175 '_': i32 | 589 | 173..174 '_': i32 |
590 | 179..183 'foo3': fn foo3(u32) -> isize | 590 | 178..182 'foo3': fn foo3(u32) -> isize |
591 | "### | 591 | "### |
592 | ); | 592 | ); |
593 | } | 593 | } |
@@ -601,12 +601,12 @@ fn test() { | |||
601 | } | 601 | } |
602 | "#, true), | 602 | "#, true), |
603 | @r###" | 603 | @r###" |
604 | 11..55 '{ ...1 }; }': () | 604 | 10..54 '{ ...1 }; }': () |
605 | 21..22 'f': fn(u32) -> isize | 605 | 20..21 'f': fn(u32) -> isize |
606 | 43..52 '|x| { 1 }': |u32| -> isize | 606 | 42..51 '|x| { 1 }': |u32| -> isize |
607 | 44..45 'x': u32 | 607 | 43..44 'x': u32 |
608 | 47..52 '{ 1 }': isize | 608 | 46..51 '{ 1 }': isize |
609 | 49..50 '1': isize | 609 | 48..49 '1': isize |
610 | "### | 610 | "### |
611 | ); | 611 | ); |
612 | } | 612 | } |
@@ -624,11 +624,11 @@ impl<TT> S<TT> { | |||
624 | } | 624 | } |
625 | "#, true), | 625 | "#, true), |
626 | @r###" | 626 | @r###" |
627 | 51..55 'self': &S<TT> | 627 | 50..54 'self': &S<TT> |
628 | 64..87 '{ ... }': &TT | 628 | 63..86 '{ ... }': &TT |
629 | 74..81 '&self.t': &TT | 629 | 73..80 '&self.t': &TT |
630 | 75..79 'self': &S<TT> | 630 | 74..78 'self': &S<TT> |
631 | 75..81 'self.t': TT | 631 | 74..80 'self.t': TT |
632 | "### | 632 | "### |
633 | ); | 633 | ); |
634 | } | 634 | } |
@@ -649,13 +649,13 @@ fn test() { | |||
649 | } | 649 | } |
650 | "#, true), | 650 | "#, true), |
651 | @r###" | 651 | @r###" |
652 | 162..199 '{ ... 3]; }': () | 652 | 161..198 '{ ... 3]; }': () |
653 | 172..173 'f': &[usize] | 653 | 171..172 'f': &[usize] |
654 | 186..196 '&[1, 2, 3]': &[usize; _] | 654 | 185..195 '&[1, 2, 3]': &[usize; _] |
655 | 187..196 '[1, 2, 3]': [usize; _] | 655 | 186..195 '[1, 2, 3]': [usize; _] |
656 | 188..189 '1': usize | 656 | 187..188 '1': usize |
657 | 191..192 '2': usize | 657 | 190..191 '2': usize |
658 | 194..195 '3': usize | 658 | 193..194 '3': usize |
659 | "### | 659 | "### |
660 | ); | 660 | ); |
661 | } | 661 | } |
@@ -689,19 +689,19 @@ fn test() { | |||
689 | } | 689 | } |
690 | "#, true), | 690 | "#, true), |
691 | @r###" | 691 | @r###" |
692 | 388..573 '{ ...bj2; }': () | 692 | 387..572 '{ ...bj2; }': () |
693 | 398..401 'obj': &dyn Baz<i8, i16> | 693 | 397..400 'obj': &dyn Baz<i8, i16> |
694 | 423..425 '&S': &S<i8, i16> | 694 | 422..424 '&S': &S<i8, i16> |
695 | 424..425 'S': S<i8, i16> | 695 | 423..424 'S': S<i8, i16> |
696 | 435..438 'obj': &dyn Bar<usize, i8, i16> | 696 | 434..437 'obj': &dyn Bar<usize, i8, i16> |
697 | 460..463 'obj': &dyn Baz<i8, i16> | 697 | 459..462 'obj': &dyn Baz<i8, i16> |
698 | 473..476 'obj': &dyn Foo<i8, usize> | 698 | 472..475 'obj': &dyn Foo<i8, usize> |
699 | 495..498 'obj': &dyn Bar<usize, i8, i16> | 699 | 494..497 'obj': &dyn Bar<usize, i8, i16> |
700 | 508..512 'obj2': &dyn Baz<i8, i16> | 700 | 507..511 'obj2': &dyn Baz<i8, i16> |
701 | 534..536 '&S': &S<i8, i16> | 701 | 533..535 '&S': &S<i8, i16> |
702 | 535..536 'S': S<i8, i16> | 702 | 534..535 'S': S<i8, i16> |
703 | 546..547 '_': &dyn Foo<i8, usize> | 703 | 545..546 '_': &dyn Foo<i8, usize> |
704 | 566..570 'obj2': &dyn Baz<i8, i16> | 704 | 565..569 'obj2': &dyn Baz<i8, i16> |
705 | "### | 705 | "### |
706 | ); | 706 | ); |
707 | } | 707 | } |
@@ -734,12 +734,12 @@ fn test() { | |||
734 | } | 734 | } |
735 | "#, true), | 735 | "#, true), |
736 | @r###" | 736 | @r###" |
737 | 292..348 '{ ...obj; }': () | 737 | 291..347 '{ ...obj; }': () |
738 | 302..305 'obj': &dyn D | 738 | 301..304 'obj': &dyn D |
739 | 316..318 '&S': &S | 739 | 315..317 '&S': &S |
740 | 317..318 'S': S | 740 | 316..317 'S': S |
741 | 328..331 'obj': &dyn A | 741 | 327..330 'obj': &dyn A |
742 | 342..345 'obj': &dyn D | 742 | 341..344 'obj': &dyn D |
743 | "### | 743 | "### |
744 | ); | 744 | ); |
745 | } | 745 | } |