diff options
Diffstat (limited to 'crates/ra_hir_ty/src/tests/traits.rs')
-rw-r--r-- | crates/ra_hir_ty/src/tests/traits.rs | 1106 |
1 files changed, 553 insertions, 553 deletions
diff --git a/crates/ra_hir_ty/src/tests/traits.rs b/crates/ra_hir_ty/src/tests/traits.rs index a46f03b7f..f51cdd496 100644 --- a/crates/ra_hir_ty/src/tests/traits.rs +++ b/crates/ra_hir_ty/src/tests/traits.rs | |||
@@ -256,16 +256,16 @@ fn test() { | |||
256 | } | 256 | } |
257 | "#), | 257 | "#), |
258 | @r###" | 258 | @r###" |
259 | [86; 87) 't': T | 259 | 86..87 't': T |
260 | [92; 94) '{}': () | 260 | 92..94 '{}': () |
261 | [105; 144) '{ ...(s); }': () | 261 | 105..144 '{ ...(s); }': () |
262 | [115; 116) 's': S<u32> | 262 | 115..116 's': S<u32> |
263 | [119; 120) 'S': S<u32>(u32) -> S<u32> | 263 | 119..120 'S': S<u32>(u32) -> S<u32> |
264 | [119; 129) 'S(unknown)': S<u32> | 264 | 119..129 'S(unknown)': S<u32> |
265 | [121; 128) 'unknown': u32 | 265 | 121..128 'unknown': u32 |
266 | [135; 138) 'foo': fn foo<S<u32>>(S<u32>) | 266 | 135..138 'foo': fn foo<S<u32>>(S<u32>) |
267 | [135; 141) 'foo(s)': () | 267 | 135..141 'foo(s)': () |
268 | [139; 140) 's': S<u32> | 268 | 139..140 's': S<u32> |
269 | "### | 269 | "### |
270 | ); | 270 | ); |
271 | } | 271 | } |
@@ -284,17 +284,17 @@ fn test() { | |||
284 | } | 284 | } |
285 | "#), | 285 | "#), |
286 | @r###" | 286 | @r###" |
287 | [87; 88) 't': T | 287 | 87..88 't': T |
288 | [98; 100) '{}': () | 288 | 98..100 '{}': () |
289 | [111; 163) '{ ...(s); }': () | 289 | 111..163 '{ ...(s); }': () |
290 | [121; 122) 's': S<u32> | 290 | 121..122 's': S<u32> |
291 | [125; 126) 'S': S<u32>(u32) -> S<u32> | 291 | 125..126 'S': S<u32>(u32) -> S<u32> |
292 | [125; 135) 'S(unknown)': S<u32> | 292 | 125..135 'S(unknown)': S<u32> |
293 | [127; 134) 'unknown': u32 | 293 | 127..134 'unknown': u32 |
294 | [145; 146) 'x': u32 | 294 | 145..146 'x': u32 |
295 | [154; 157) 'foo': fn foo<u32, S<u32>>(S<u32>) -> u32 | 295 | 154..157 'foo': fn foo<u32, S<u32>>(S<u32>) -> u32 |
296 | [154; 160) 'foo(s)': u32 | 296 | 154..160 'foo(s)': u32 |
297 | [158; 159) 's': S<u32> | 297 | 158..159 's': S<u32> |
298 | "### | 298 | "### |
299 | ); | 299 | ); |
300 | } | 300 | } |
@@ -312,12 +312,12 @@ trait Trait { | |||
312 | } | 312 | } |
313 | "#), | 313 | "#), |
314 | @r###" | 314 | @r###" |
315 | [27; 31) 'self': &Self | 315 | 27..31 'self': &Self |
316 | [53; 57) 'self': &Self | 316 | 53..57 'self': &Self |
317 | [62; 97) '{ ... }': () | 317 | 62..97 '{ ... }': () |
318 | [76; 77) 'x': i64 | 318 | 76..77 'x': i64 |
319 | [80; 84) 'self': &Self | 319 | 80..84 'self': &Self |
320 | [80; 90) 'self.foo()': i64 | 320 | 80..90 'self.foo()': i64 |
321 | "### | 321 | "### |
322 | ); | 322 | ); |
323 | } | 323 | } |
@@ -337,12 +337,12 @@ trait Trait: SuperTrait { | |||
337 | } | 337 | } |
338 | "#), | 338 | "#), |
339 | @r###" | 339 | @r###" |
340 | [32; 36) 'self': &Self | 340 | 32..36 'self': &Self |
341 | [86; 90) 'self': &Self | 341 | 86..90 'self': &Self |
342 | [95; 130) '{ ... }': () | 342 | 95..130 '{ ... }': () |
343 | [109; 110) 'x': i64 | 343 | 109..110 'x': i64 |
344 | [113; 117) 'self': &Self | 344 | 113..117 'self': &Self |
345 | [113; 123) 'self.foo()': i64 | 345 | 113..123 'self.foo()': i64 |
346 | "### | 346 | "### |
347 | ); | 347 | ); |
348 | } | 348 | } |
@@ -364,15 +364,15 @@ fn test<T: Iterable>() { | |||
364 | } | 364 | } |
365 | "#), | 365 | "#), |
366 | @r###" | 366 | @r###" |
367 | [108; 261) '{ ...ter; }': () | 367 | 108..261 '{ ...ter; }': () |
368 | [118; 119) 'x': u32 | 368 | 118..119 'x': u32 |
369 | [145; 146) '1': u32 | 369 | 145..146 '1': u32 |
370 | [156; 157) 'y': Iterable::Item<T> | 370 | 156..157 'y': Iterable::Item<T> |
371 | [183; 192) 'no_matter': Iterable::Item<T> | 371 | 183..192 'no_matter': Iterable::Item<T> |
372 | [202; 203) 'z': Iterable::Item<T> | 372 | 202..203 'z': Iterable::Item<T> |
373 | [215; 224) 'no_matter': Iterable::Item<T> | 373 | 215..224 'no_matter': Iterable::Item<T> |
374 | [234; 235) 'a': Iterable::Item<T> | 374 | 234..235 'a': Iterable::Item<T> |
375 | [249; 258) 'no_matter': Iterable::Item<T> | 375 | 249..258 'no_matter': Iterable::Item<T> |
376 | "### | 376 | "### |
377 | ); | 377 | ); |
378 | } | 378 | } |
@@ -396,25 +396,25 @@ fn test() { | |||
396 | } | 396 | } |
397 | "#), | 397 | "#), |
398 | @r###" | 398 | @r###" |
399 | [106; 107) 't': T | 399 | 106..107 't': T |
400 | [123; 125) '{}': () | 400 | 123..125 '{}': () |
401 | [147; 148) 't': T | 401 | 147..148 't': T |
402 | [178; 180) '{}': () | 402 | 178..180 '{}': () |
403 | [202; 203) 't': T | 403 | 202..203 't': T |
404 | [221; 223) '{}': () | 404 | 221..223 '{}': () |
405 | [234; 300) '{ ...(S); }': () | 405 | 234..300 '{ ...(S); }': () |
406 | [244; 245) 'x': u32 | 406 | 244..245 'x': u32 |
407 | [248; 252) 'foo1': fn foo1<S>(S) -> <S as Iterable>::Item | 407 | 248..252 'foo1': fn foo1<S>(S) -> <S as Iterable>::Item |
408 | [248; 255) 'foo1(S)': u32 | 408 | 248..255 'foo1(S)': u32 |
409 | [253; 254) 'S': S | 409 | 253..254 'S': S |
410 | [265; 266) 'y': u32 | 410 | 265..266 'y': u32 |
411 | [269; 273) 'foo2': fn foo2<S>(S) -> <S as Iterable>::Item | 411 | 269..273 'foo2': fn foo2<S>(S) -> <S as Iterable>::Item |
412 | [269; 276) 'foo2(S)': u32 | 412 | 269..276 'foo2(S)': u32 |
413 | [274; 275) 'S': S | 413 | 274..275 'S': S |
414 | [286; 287) 'z': u32 | 414 | 286..287 'z': u32 |
415 | [290; 294) 'foo3': fn foo3<S>(S) -> <S as Iterable>::Item | 415 | 290..294 'foo3': fn foo3<S>(S) -> <S as Iterable>::Item |
416 | [290; 297) 'foo3(S)': u32 | 416 | 290..297 'foo3(S)': u32 |
417 | [295; 296) 'S': S | 417 | 295..296 'S': S |
418 | "### | 418 | "### |
419 | ); | 419 | ); |
420 | } | 420 | } |
@@ -431,9 +431,9 @@ fn test<T: Iterable<Item=u32>>() { | |||
431 | } | 431 | } |
432 | "#), | 432 | "#), |
433 | @r###" | 433 | @r###" |
434 | [67; 100) '{ ...own; }': () | 434 | 67..100 '{ ...own; }': () |
435 | [77; 78) 'y': u32 | 435 | 77..78 'y': u32 |
436 | [90; 97) 'unknown': u32 | 436 | 90..97 'unknown': u32 |
437 | "### | 437 | "### |
438 | ); | 438 | ); |
439 | } | 439 | } |
@@ -446,13 +446,13 @@ const A: u32 = 1 + 1; | |||
446 | static B: u64 = { let x = 1; x }; | 446 | static B: u64 = { let x = 1; x }; |
447 | "#), | 447 | "#), |
448 | @r###" | 448 | @r###" |
449 | [16; 17) '1': u32 | 449 | 16..17 '1': u32 |
450 | [16; 21) '1 + 1': u32 | 450 | 16..21 '1 + 1': u32 |
451 | [20; 21) '1': u32 | 451 | 20..21 '1': u32 |
452 | [39; 55) '{ let ...1; x }': u64 | 452 | 39..55 '{ let ...1; x }': u64 |
453 | [45; 46) 'x': u64 | 453 | 45..46 'x': u64 |
454 | [49; 50) '1': u64 | 454 | 49..50 '1': u64 |
455 | [52; 53) 'x': u64 | 455 | 52..53 'x': u64 |
456 | "### | 456 | "### |
457 | ); | 457 | ); |
458 | } | 458 | } |
@@ -469,17 +469,17 @@ fn test() -> u64 { | |||
469 | } | 469 | } |
470 | "#), | 470 | "#), |
471 | @r###" | 471 | @r###" |
472 | [38; 87) '{ ... a.1 }': u64 | 472 | 38..87 '{ ... a.1 }': u64 |
473 | [48; 49) 'a': S | 473 | 48..49 'a': S |
474 | [52; 53) 'S': S(i32, u64) -> S | 474 | 52..53 'S': S(i32, u64) -> S |
475 | [52; 59) 'S(4, 6)': S | 475 | 52..59 'S(4, 6)': S |
476 | [54; 55) '4': i32 | 476 | 54..55 '4': i32 |
477 | [57; 58) '6': u64 | 477 | 57..58 '6': u64 |
478 | [69; 70) 'b': i32 | 478 | 69..70 'b': i32 |
479 | [73; 74) 'a': S | 479 | 73..74 'a': S |
480 | [73; 76) 'a.0': i32 | 480 | 73..76 'a.0': i32 |
481 | [82; 83) 'a': S | 481 | 82..83 'a': S |
482 | [82; 85) 'a.1': u64 | 482 | 82..85 'a.1': u64 |
483 | "### | 483 | "### |
484 | ); | 484 | ); |
485 | } | 485 | } |
@@ -496,24 +496,24 @@ fn test() -> u64 { | |||
496 | } | 496 | } |
497 | "#), | 497 | "#), |
498 | @r###" | 498 | @r###" |
499 | [44; 102) '{ ...0(2) }': u64 | 499 | 44..102 '{ ...0(2) }': u64 |
500 | [54; 55) 'a': S | 500 | 54..55 'a': S |
501 | [58; 59) 'S': S(fn(u32) -> u64) -> S | 501 | 58..59 'S': S(fn(u32) -> u64) -> S |
502 | [58; 68) 'S(|i| 2*i)': S | 502 | 58..68 'S(|i| 2*i)': S |
503 | [60; 67) '|i| 2*i': |u32| -> u64 | 503 | 60..67 '|i| 2*i': |u32| -> u64 |
504 | [61; 62) 'i': u32 | 504 | 61..62 'i': u32 |
505 | [64; 65) '2': u32 | 505 | 64..65 '2': u32 |
506 | [64; 67) '2*i': u32 | 506 | 64..67 '2*i': u32 |
507 | [66; 67) 'i': u32 | 507 | 66..67 'i': u32 |
508 | [78; 79) 'b': u64 | 508 | 78..79 'b': u64 |
509 | [82; 83) 'a': S | 509 | 82..83 'a': S |
510 | [82; 85) 'a.0': fn(u32) -> u64 | 510 | 82..85 'a.0': fn(u32) -> u64 |
511 | [82; 88) 'a.0(4)': u64 | 511 | 82..88 'a.0(4)': u64 |
512 | [86; 87) '4': u32 | 512 | 86..87 '4': u32 |
513 | [94; 95) 'a': S | 513 | 94..95 'a': S |
514 | [94; 97) 'a.0': fn(u32) -> u64 | 514 | 94..97 'a.0': fn(u32) -> u64 |
515 | [94; 100) 'a.0(2)': u64 | 515 | 94..100 'a.0(2)': u64 |
516 | [98; 99) '2': u32 | 516 | 98..99 '2': u32 |
517 | "### | 517 | "### |
518 | ); | 518 | ); |
519 | } | 519 | } |
@@ -523,12 +523,12 @@ fn indexing_arrays() { | |||
523 | assert_snapshot!( | 523 | assert_snapshot!( |
524 | infer("fn main() { &mut [9][2]; }"), | 524 | infer("fn main() { &mut [9][2]; }"), |
525 | @r###" | 525 | @r###" |
526 | [10; 26) '{ &mut...[2]; }': () | 526 | 10..26 '{ &mut...[2]; }': () |
527 | [12; 23) '&mut [9][2]': &mut {unknown} | 527 | 12..23 '&mut [9][2]': &mut {unknown} |
528 | [17; 20) '[9]': [i32; _] | 528 | 17..20 '[9]': [i32; _] |
529 | [17; 23) '[9][2]': {unknown} | 529 | 17..23 '[9][2]': {unknown} |
530 | [18; 19) '9': i32 | 530 | 18..19 '9': i32 |
531 | [21; 22) '2': i32 | 531 | 21..22 '2': i32 |
532 | "### | 532 | "### |
533 | ) | 533 | ) |
534 | } | 534 | } |
@@ -944,34 +944,34 @@ fn test(x: impl Trait<u64>, y: &impl Trait<u32>) { | |||
944 | } | 944 | } |
945 | "#, true), | 945 | "#, true), |
946 | @r###" | 946 | @r###" |
947 | [30; 34) 'self': &Self | 947 | 30..34 'self': &Self |
948 | [55; 59) 'self': &Self | 948 | 55..59 'self': &Self |
949 | [78; 79) 'x': impl Trait<u16> | 949 | 78..79 'x': impl Trait<u16> |
950 | [98; 100) '{}': () | 950 | 98..100 '{}': () |
951 | [155; 156) 'x': impl Trait<u64> | 951 | 155..156 'x': impl Trait<u64> |
952 | [175; 176) 'y': &impl Trait<u32> | 952 | 175..176 'y': &impl Trait<u32> |
953 | [196; 324) '{ ...2(); }': () | 953 | 196..324 '{ ...2(); }': () |
954 | [202; 203) 'x': impl Trait<u64> | 954 | 202..203 'x': impl Trait<u64> |
955 | [209; 210) 'y': &impl Trait<u32> | 955 | 209..210 'y': &impl Trait<u32> |
956 | [220; 221) 'z': S<u16> | 956 | 220..221 'z': S<u16> |
957 | [224; 225) 'S': S<u16>(u16) -> S<u16> | 957 | 224..225 'S': S<u16>(u16) -> S<u16> |
958 | [224; 228) 'S(1)': S<u16> | 958 | 224..228 'S(1)': S<u16> |
959 | [226; 227) '1': u16 | 959 | 226..227 '1': u16 |
960 | [234; 237) 'bar': fn bar(S<u16>) | 960 | 234..237 'bar': fn bar(S<u16>) |
961 | [234; 240) 'bar(z)': () | 961 | 234..240 'bar(z)': () |
962 | [238; 239) 'z': S<u16> | 962 | 238..239 'z': S<u16> |
963 | [246; 247) 'x': impl Trait<u64> | 963 | 246..247 'x': impl Trait<u64> |
964 | [246; 253) 'x.foo()': u64 | 964 | 246..253 'x.foo()': u64 |
965 | [259; 260) 'y': &impl Trait<u32> | 965 | 259..260 'y': &impl Trait<u32> |
966 | [259; 266) 'y.foo()': u32 | 966 | 259..266 'y.foo()': u32 |
967 | [272; 273) 'z': S<u16> | 967 | 272..273 'z': S<u16> |
968 | [272; 279) 'z.foo()': u16 | 968 | 272..279 'z.foo()': u16 |
969 | [285; 286) 'x': impl Trait<u64> | 969 | 285..286 'x': impl Trait<u64> |
970 | [285; 293) 'x.foo2()': i64 | 970 | 285..293 'x.foo2()': i64 |
971 | [299; 300) 'y': &impl Trait<u32> | 971 | 299..300 'y': &impl Trait<u32> |
972 | [299; 307) 'y.foo2()': i64 | 972 | 299..307 'y.foo2()': i64 |
973 | [313; 314) 'z': S<u16> | 973 | 313..314 'z': S<u16> |
974 | [313; 321) 'z.foo2()': i64 | 974 | 313..321 'z.foo2()': i64 |
975 | "### | 975 | "### |
976 | ); | 976 | ); |
977 | } | 977 | } |
@@ -1005,39 +1005,39 @@ fn test() { | |||
1005 | } | 1005 | } |
1006 | "#, true), | 1006 | "#, true), |
1007 | @r###" | 1007 | @r###" |
1008 | [156; 157) 'x': impl Trait | 1008 | 156..157 'x': impl Trait |
1009 | [176; 187) '{ loop {} }': T | 1009 | 176..187 '{ loop {} }': T |
1010 | [178; 185) 'loop {}': ! | 1010 | 178..185 'loop {}': ! |
1011 | [183; 185) '{}': () | 1011 | 183..185 '{}': () |
1012 | [200; 201) 'x': impl Trait | 1012 | 200..201 'x': impl Trait |
1013 | [220; 231) '{ loop {} }': T | 1013 | 220..231 '{ loop {} }': T |
1014 | [222; 229) 'loop {}': ! | 1014 | 222..229 'loop {}': ! |
1015 | [227; 229) '{}': () | 1015 | 227..229 '{}': () |
1016 | [301; 510) '{ ... i32 }': () | 1016 | 301..510 '{ ... i32 }': () |
1017 | [307; 315) 'Foo::bar': fn bar<{unknown}, {unknown}>(S) -> {unknown} | 1017 | 307..315 'Foo::bar': fn bar<{unknown}, {unknown}>(S) -> {unknown} |
1018 | [307; 318) 'Foo::bar(S)': {unknown} | 1018 | 307..318 'Foo::bar(S)': {unknown} |
1019 | [316; 317) 'S': S | 1019 | 316..317 'S': S |
1020 | [324; 339) '<F as Foo>::bar': fn bar<F, {unknown}>(S) -> {unknown} | 1020 | 324..339 '<F as Foo>::bar': fn bar<F, {unknown}>(S) -> {unknown} |
1021 | [324; 342) '<F as ...bar(S)': {unknown} | 1021 | 324..342 '<F as ...bar(S)': {unknown} |
1022 | [340; 341) 'S': S | 1022 | 340..341 'S': S |
1023 | [348; 354) 'F::bar': fn bar<F, {unknown}>(S) -> {unknown} | 1023 | 348..354 'F::bar': fn bar<F, {unknown}>(S) -> {unknown} |
1024 | [348; 357) 'F::bar(S)': {unknown} | 1024 | 348..357 'F::bar(S)': {unknown} |
1025 | [355; 356) 'S': S | 1025 | 355..356 'S': S |
1026 | [363; 378) 'Foo::bar::<u32>': fn bar<{unknown}, u32>(S) -> u32 | 1026 | 363..378 'Foo::bar::<u32>': fn bar<{unknown}, u32>(S) -> u32 |
1027 | [363; 381) 'Foo::b...32>(S)': u32 | 1027 | 363..381 'Foo::b...32>(S)': u32 |
1028 | [379; 380) 'S': S | 1028 | 379..380 'S': S |
1029 | [387; 409) '<F as ...:<u32>': fn bar<F, u32>(S) -> u32 | 1029 | 387..409 '<F as ...:<u32>': fn bar<F, u32>(S) -> u32 |
1030 | [387; 412) '<F as ...32>(S)': u32 | 1030 | 387..412 '<F as ...32>(S)': u32 |
1031 | [410; 411) 'S': S | 1031 | 410..411 'S': S |
1032 | [419; 422) 'foo': fn foo<{unknown}>(S) -> {unknown} | 1032 | 419..422 'foo': fn foo<{unknown}>(S) -> {unknown} |
1033 | [419; 425) 'foo(S)': {unknown} | 1033 | 419..425 'foo(S)': {unknown} |
1034 | [423; 424) 'S': S | 1034 | 423..424 'S': S |
1035 | [431; 441) 'foo::<u32>': fn foo<u32>(S) -> u32 | 1035 | 431..441 'foo::<u32>': fn foo<u32>(S) -> u32 |
1036 | [431; 444) 'foo::<u32>(S)': u32 | 1036 | 431..444 'foo::<u32>(S)': u32 |
1037 | [442; 443) 'S': S | 1037 | 442..443 'S': S |
1038 | [450; 465) 'foo::<u32, i32>': fn foo<u32>(S) -> u32 | 1038 | 450..465 'foo::<u32, i32>': fn foo<u32>(S) -> u32 |
1039 | [450; 468) 'foo::<...32>(S)': u32 | 1039 | 450..468 'foo::<...32>(S)': u32 |
1040 | [466; 467) 'S': S | 1040 | 466..467 'S': S |
1041 | "### | 1041 | "### |
1042 | ); | 1042 | ); |
1043 | } | 1043 | } |
@@ -1062,24 +1062,24 @@ fn test() { | |||
1062 | } | 1062 | } |
1063 | "#, true), | 1063 | "#, true), |
1064 | @r###" | 1064 | @r###" |
1065 | [88; 92) 'self': F<T> | 1065 | 88..92 'self': F<T> |
1066 | [94; 95) 'x': impl Trait | 1066 | 94..95 'x': impl Trait |
1067 | [119; 130) '{ loop {} }': (T, U) | 1067 | 119..130 '{ loop {} }': (T, U) |
1068 | [121; 128) 'loop {}': ! | 1068 | 121..128 'loop {}': ! |
1069 | [126; 128) '{}': () | 1069 | 126..128 '{}': () |
1070 | [144; 284) '{ ...ored }': () | 1070 | 144..284 '{ ...ored }': () |
1071 | [150; 151) 'F': F<{unknown}> | 1071 | 150..151 'F': F<{unknown}> |
1072 | [150; 158) 'F.foo(S)': ({unknown}, {unknown}) | 1072 | 150..158 'F.foo(S)': ({unknown}, {unknown}) |
1073 | [156; 157) 'S': S | 1073 | 156..157 'S': S |
1074 | [164; 172) 'F::<u32>': F<u32> | 1074 | 164..172 'F::<u32>': F<u32> |
1075 | [164; 179) 'F::<u32>.foo(S)': (u32, {unknown}) | 1075 | 164..179 'F::<u32>.foo(S)': (u32, {unknown}) |
1076 | [177; 178) 'S': S | 1076 | 177..178 'S': S |
1077 | [185; 193) 'F::<u32>': F<u32> | 1077 | 185..193 'F::<u32>': F<u32> |
1078 | [185; 207) 'F::<u3...32>(S)': (u32, i32) | 1078 | 185..207 'F::<u3...32>(S)': (u32, i32) |
1079 | [205; 206) 'S': S | 1079 | 205..206 'S': S |
1080 | [213; 221) 'F::<u32>': F<u32> | 1080 | 213..221 'F::<u32>': F<u32> |
1081 | [213; 240) 'F::<u3...32>(S)': (u32, i32) | 1081 | 213..240 'F::<u3...32>(S)': (u32, i32) |
1082 | [238; 239) 'S': S | 1082 | 238..239 'S': S |
1083 | "### | 1083 | "### |
1084 | ); | 1084 | ); |
1085 | } | 1085 | } |
@@ -1098,13 +1098,13 @@ fn test() { | |||
1098 | } | 1098 | } |
1099 | "#, true), | 1099 | "#, true), |
1100 | @r###" | 1100 | @r###" |
1101 | [23; 24) 'x': impl Trait | 1101 | 23..24 'x': impl Trait |
1102 | [38; 49) '{ loop {} }': () | 1102 | 38..49 '{ loop {} }': () |
1103 | [40; 47) 'loop {}': ! | 1103 | 40..47 'loop {}': ! |
1104 | [45; 47) '{}': () | 1104 | 45..47 '{}': () |
1105 | [91; 124) '{ ...foo; }': () | 1105 | 91..124 '{ ...foo; }': () |
1106 | [101; 102) 'f': fn(S) | 1106 | 101..102 'f': fn(S) |
1107 | [118; 121) 'foo': fn foo(S) | 1107 | 118..121 'foo': fn foo(S) |
1108 | "### | 1108 | "### |
1109 | ); | 1109 | ); |
1110 | } | 1110 | } |
@@ -1133,29 +1133,29 @@ fn test(x: impl Trait<u64>, y: &impl Trait<u64>) { | |||
1133 | } | 1133 | } |
1134 | "#), | 1134 | "#), |
1135 | @r###" | 1135 | @r###" |
1136 | [30; 34) 'self': &Self | 1136 | 30..34 'self': &Self |
1137 | [55; 59) 'self': &Self | 1137 | 55..59 'self': &Self |
1138 | [99; 101) '{}': () | 1138 | 99..101 '{}': () |
1139 | [111; 112) 'x': impl Trait<u64> | 1139 | 111..112 'x': impl Trait<u64> |
1140 | [131; 132) 'y': &impl Trait<u64> | 1140 | 131..132 'y': &impl Trait<u64> |
1141 | [152; 269) '{ ...2(); }': () | 1141 | 152..269 '{ ...2(); }': () |
1142 | [158; 159) 'x': impl Trait<u64> | 1142 | 158..159 'x': impl Trait<u64> |
1143 | [165; 166) 'y': &impl Trait<u64> | 1143 | 165..166 'y': &impl Trait<u64> |
1144 | [176; 177) 'z': impl Trait<u64> | 1144 | 176..177 'z': impl Trait<u64> |
1145 | [180; 183) 'bar': fn bar() -> impl Trait<u64> | 1145 | 180..183 'bar': fn bar() -> impl Trait<u64> |
1146 | [180; 185) 'bar()': impl Trait<u64> | 1146 | 180..185 'bar()': impl Trait<u64> |
1147 | [191; 192) 'x': impl Trait<u64> | 1147 | 191..192 'x': impl Trait<u64> |
1148 | [191; 198) 'x.foo()': u64 | 1148 | 191..198 'x.foo()': u64 |
1149 | [204; 205) 'y': &impl Trait<u64> | 1149 | 204..205 'y': &impl Trait<u64> |
1150 | [204; 211) 'y.foo()': u64 | 1150 | 204..211 'y.foo()': u64 |
1151 | [217; 218) 'z': impl Trait<u64> | 1151 | 217..218 'z': impl Trait<u64> |
1152 | [217; 224) 'z.foo()': u64 | 1152 | 217..224 'z.foo()': u64 |
1153 | [230; 231) 'x': impl Trait<u64> | 1153 | 230..231 'x': impl Trait<u64> |
1154 | [230; 238) 'x.foo2()': i64 | 1154 | 230..238 'x.foo2()': i64 |
1155 | [244; 245) 'y': &impl Trait<u64> | 1155 | 244..245 'y': &impl Trait<u64> |
1156 | [244; 252) 'y.foo2()': i64 | 1156 | 244..252 'y.foo2()': i64 |
1157 | [258; 259) 'z': impl Trait<u64> | 1157 | 258..259 'z': impl Trait<u64> |
1158 | [258; 266) 'z.foo2()': i64 | 1158 | 258..266 'z.foo2()': i64 |
1159 | "### | 1159 | "### |
1160 | ); | 1160 | ); |
1161 | } | 1161 | } |
@@ -1183,29 +1183,29 @@ fn test(x: dyn Trait<u64>, y: &dyn Trait<u64>) { | |||
1183 | } | 1183 | } |
1184 | "#), | 1184 | "#), |
1185 | @r###" | 1185 | @r###" |
1186 | [30; 34) 'self': &Self | 1186 | 30..34 'self': &Self |
1187 | [55; 59) 'self': &Self | 1187 | 55..59 'self': &Self |
1188 | [98; 100) '{}': () | 1188 | 98..100 '{}': () |
1189 | [110; 111) 'x': dyn Trait<u64> | 1189 | 110..111 'x': dyn Trait<u64> |
1190 | [129; 130) 'y': &dyn Trait<u64> | 1190 | 129..130 'y': &dyn Trait<u64> |
1191 | [149; 266) '{ ...2(); }': () | 1191 | 149..266 '{ ...2(); }': () |
1192 | [155; 156) 'x': dyn Trait<u64> | 1192 | 155..156 'x': dyn Trait<u64> |
1193 | [162; 163) 'y': &dyn Trait<u64> | 1193 | 162..163 'y': &dyn Trait<u64> |
1194 | [173; 174) 'z': dyn Trait<u64> | 1194 | 173..174 'z': dyn Trait<u64> |
1195 | [177; 180) 'bar': fn bar() -> dyn Trait<u64> | 1195 | 177..180 'bar': fn bar() -> dyn Trait<u64> |
1196 | [177; 182) 'bar()': dyn Trait<u64> | 1196 | 177..182 'bar()': dyn Trait<u64> |
1197 | [188; 189) 'x': dyn Trait<u64> | 1197 | 188..189 'x': dyn Trait<u64> |
1198 | [188; 195) 'x.foo()': u64 | 1198 | 188..195 'x.foo()': u64 |
1199 | [201; 202) 'y': &dyn Trait<u64> | 1199 | 201..202 'y': &dyn Trait<u64> |
1200 | [201; 208) 'y.foo()': u64 | 1200 | 201..208 'y.foo()': u64 |
1201 | [214; 215) 'z': dyn Trait<u64> | 1201 | 214..215 'z': dyn Trait<u64> |
1202 | [214; 221) 'z.foo()': u64 | 1202 | 214..221 'z.foo()': u64 |
1203 | [227; 228) 'x': dyn Trait<u64> | 1203 | 227..228 'x': dyn Trait<u64> |
1204 | [227; 235) 'x.foo2()': i64 | 1204 | 227..235 'x.foo2()': i64 |
1205 | [241; 242) 'y': &dyn Trait<u64> | 1205 | 241..242 'y': &dyn Trait<u64> |
1206 | [241; 249) 'y.foo2()': i64 | 1206 | 241..249 'y.foo2()': i64 |
1207 | [255; 256) 'z': dyn Trait<u64> | 1207 | 255..256 'z': dyn Trait<u64> |
1208 | [255; 263) 'z.foo2()': i64 | 1208 | 255..263 'z.foo2()': i64 |
1209 | "### | 1209 | "### |
1210 | ); | 1210 | ); |
1211 | } | 1211 | } |
@@ -1231,17 +1231,17 @@ fn test(s: S<u32, i32>) { | |||
1231 | } | 1231 | } |
1232 | "#), | 1232 | "#), |
1233 | @r###" | 1233 | @r###" |
1234 | [33; 37) 'self': &Self | 1234 | 33..37 'self': &Self |
1235 | [103; 107) 'self': &S<T, U> | 1235 | 103..107 'self': &S<T, U> |
1236 | [129; 140) '{ loop {} }': &dyn Trait<T, U> | 1236 | 129..140 '{ loop {} }': &dyn Trait<T, U> |
1237 | [131; 138) 'loop {}': ! | 1237 | 131..138 'loop {}': ! |
1238 | [136; 138) '{}': () | 1238 | 136..138 '{}': () |
1239 | [176; 180) 'self': &Self | 1239 | 176..180 'self': &Self |
1240 | [252; 253) 's': S<u32, i32> | 1240 | 252..253 's': S<u32, i32> |
1241 | [268; 290) '{ ...z(); }': () | 1241 | 268..290 '{ ...z(); }': () |
1242 | [274; 275) 's': S<u32, i32> | 1242 | 274..275 's': S<u32, i32> |
1243 | [274; 281) 's.bar()': &dyn Trait<u32, i32> | 1243 | 274..281 's.bar()': &dyn Trait<u32, i32> |
1244 | [274; 287) 's.bar().baz()': (u32, i32) | 1244 | 274..287 's.bar().baz()': (u32, i32) |
1245 | "### | 1245 | "### |
1246 | ); | 1246 | ); |
1247 | } | 1247 | } |
@@ -1265,22 +1265,22 @@ fn test(x: Trait, y: &Trait) -> u64 { | |||
1265 | } | 1265 | } |
1266 | "#), | 1266 | "#), |
1267 | @r###" | 1267 | @r###" |
1268 | [27; 31) 'self': &Self | 1268 | 27..31 'self': &Self |
1269 | [61; 63) '{}': () | 1269 | 61..63 '{}': () |
1270 | [73; 74) 'x': dyn Trait | 1270 | 73..74 'x': dyn Trait |
1271 | [83; 84) 'y': &dyn Trait | 1271 | 83..84 'y': &dyn Trait |
1272 | [101; 176) '{ ...o(); }': () | 1272 | 101..176 '{ ...o(); }': () |
1273 | [107; 108) 'x': dyn Trait | 1273 | 107..108 'x': dyn Trait |
1274 | [114; 115) 'y': &dyn Trait | 1274 | 114..115 'y': &dyn Trait |
1275 | [125; 126) 'z': dyn Trait | 1275 | 125..126 'z': dyn Trait |
1276 | [129; 132) 'bar': fn bar() -> dyn Trait | 1276 | 129..132 'bar': fn bar() -> dyn Trait |
1277 | [129; 134) 'bar()': dyn Trait | 1277 | 129..134 'bar()': dyn Trait |
1278 | [140; 141) 'x': dyn Trait | 1278 | 140..141 'x': dyn Trait |
1279 | [140; 147) 'x.foo()': u64 | 1279 | 140..147 'x.foo()': u64 |
1280 | [153; 154) 'y': &dyn Trait | 1280 | 153..154 'y': &dyn Trait |
1281 | [153; 160) 'y.foo()': u64 | 1281 | 153..160 'y.foo()': u64 |
1282 | [166; 167) 'z': dyn Trait | 1282 | 166..167 'z': dyn Trait |
1283 | [166; 173) 'z.foo()': u64 | 1283 | 166..173 'z.foo()': u64 |
1284 | "### | 1284 | "### |
1285 | ); | 1285 | ); |
1286 | } | 1286 | } |
@@ -1294,13 +1294,13 @@ fn test(a: impl Trait + 'lifetime, b: impl 'lifetime, c: impl (Trait), d: impl ( | |||
1294 | } | 1294 | } |
1295 | "#), | 1295 | "#), |
1296 | @r###" | 1296 | @r###" |
1297 | [24; 25) 'a': impl Trait + {error} | 1297 | 24..25 'a': impl Trait + {error} |
1298 | [51; 52) 'b': impl {error} | 1298 | 51..52 'b': impl {error} |
1299 | [70; 71) 'c': impl Trait | 1299 | 70..71 'c': impl Trait |
1300 | [87; 88) 'd': impl {error} | 1300 | 87..88 'd': impl {error} |
1301 | [108; 109) 'e': impl {error} | 1301 | 108..109 'e': impl {error} |
1302 | [124; 125) 'f': impl Trait + {error} | 1302 | 124..125 'f': impl Trait + {error} |
1303 | [148; 151) '{ }': () | 1303 | 148..151 '{ }': () |
1304 | "### | 1304 | "### |
1305 | ); | 1305 | ); |
1306 | } | 1306 | } |
@@ -1349,41 +1349,41 @@ fn test<T: Trait<Type = u32>>(x: T, y: impl Trait<Type = i64>) { | |||
1349 | } | 1349 | } |
1350 | "#), | 1350 | "#), |
1351 | @r###" | 1351 | @r###" |
1352 | [50; 51) 't': T | 1352 | 50..51 't': T |
1353 | [78; 80) '{}': () | 1353 | 78..80 '{}': () |
1354 | [112; 113) 't': T | 1354 | 112..113 't': T |
1355 | [123; 125) '{}': () | 1355 | 123..125 '{}': () |
1356 | [155; 156) 't': T | 1356 | 155..156 't': T |
1357 | [166; 169) '{t}': T | 1357 | 166..169 '{t}': T |
1358 | [167; 168) 't': T | 1358 | 167..168 't': T |
1359 | [257; 258) 'x': T | 1359 | 257..258 'x': T |
1360 | [263; 264) 'y': impl Trait<Type = i64> | 1360 | 263..264 'y': impl Trait<Type = i64> |
1361 | [290; 398) '{ ...r>); }': () | 1361 | 290..398 '{ ...r>); }': () |
1362 | [296; 299) 'get': fn get<T>(T) -> <T as Trait>::Type | 1362 | 296..299 'get': fn get<T>(T) -> <T as Trait>::Type |
1363 | [296; 302) 'get(x)': u32 | 1363 | 296..302 'get(x)': u32 |
1364 | [300; 301) 'x': T | 1364 | 300..301 'x': T |
1365 | [308; 312) 'get2': fn get2<u32, T>(T) -> u32 | 1365 | 308..312 'get2': fn get2<u32, T>(T) -> u32 |
1366 | [308; 315) 'get2(x)': u32 | 1366 | 308..315 'get2(x)': u32 |
1367 | [313; 314) 'x': T | 1367 | 313..314 'x': T |
1368 | [321; 324) 'get': fn get<impl Trait<Type = i64>>(impl Trait<Type = i64>) -> <impl Trait<Type = i64> as Trait>::Type | 1368 | 321..324 'get': fn get<impl Trait<Type = i64>>(impl Trait<Type = i64>) -> <impl Trait<Type = i64> as Trait>::Type |
1369 | [321; 327) 'get(y)': i64 | 1369 | 321..327 'get(y)': i64 |
1370 | [325; 326) 'y': impl Trait<Type = i64> | 1370 | 325..326 'y': impl Trait<Type = i64> |
1371 | [333; 337) 'get2': fn get2<i64, impl Trait<Type = i64>>(impl Trait<Type = i64>) -> i64 | 1371 | 333..337 'get2': fn get2<i64, impl Trait<Type = i64>>(impl Trait<Type = i64>) -> i64 |
1372 | [333; 340) 'get2(y)': i64 | 1372 | 333..340 'get2(y)': i64 |
1373 | [338; 339) 'y': impl Trait<Type = i64> | 1373 | 338..339 'y': impl Trait<Type = i64> |
1374 | [346; 349) 'get': fn get<S<u64>>(S<u64>) -> <S<u64> as Trait>::Type | 1374 | 346..349 'get': fn get<S<u64>>(S<u64>) -> <S<u64> as Trait>::Type |
1375 | [346; 357) 'get(set(S))': u64 | 1375 | 346..357 'get(set(S))': u64 |
1376 | [350; 353) 'set': fn set<S<u64>>(S<u64>) -> S<u64> | 1376 | 350..353 'set': fn set<S<u64>>(S<u64>) -> S<u64> |
1377 | [350; 356) 'set(S)': S<u64> | 1377 | 350..356 'set(S)': S<u64> |
1378 | [354; 355) 'S': S<u64> | 1378 | 354..355 'S': S<u64> |
1379 | [363; 367) 'get2': fn get2<u64, S<u64>>(S<u64>) -> u64 | 1379 | 363..367 'get2': fn get2<u64, S<u64>>(S<u64>) -> u64 |
1380 | [363; 375) 'get2(set(S))': u64 | 1380 | 363..375 'get2(set(S))': u64 |
1381 | [368; 371) 'set': fn set<S<u64>>(S<u64>) -> S<u64> | 1381 | 368..371 'set': fn set<S<u64>>(S<u64>) -> S<u64> |
1382 | [368; 374) 'set(S)': S<u64> | 1382 | 368..374 'set(S)': S<u64> |
1383 | [372; 373) 'S': S<u64> | 1383 | 372..373 'S': S<u64> |
1384 | [381; 385) 'get2': fn get2<str, S<str>>(S<str>) -> str | 1384 | 381..385 'get2': fn get2<str, S<str>>(S<str>) -> str |
1385 | [381; 395) 'get2(S::<str>)': str | 1385 | 381..395 'get2(S::<str>)': str |
1386 | [386; 394) 'S::<str>': S<str> | 1386 | 386..394 'S::<str>': S<str> |
1387 | "### | 1387 | "### |
1388 | ); | 1388 | ); |
1389 | } | 1389 | } |
@@ -1448,11 +1448,11 @@ fn test<T: Trait1<Type = u32>>(x: T) { | |||
1448 | } | 1448 | } |
1449 | "#), | 1449 | "#), |
1450 | @r###" | 1450 | @r###" |
1451 | [62; 66) 'self': Self | 1451 | 62..66 'self': Self |
1452 | [164; 165) 'x': T | 1452 | 164..165 'x': T |
1453 | [170; 186) '{ ...o(); }': () | 1453 | 170..186 '{ ...o(); }': () |
1454 | [176; 177) 'x': T | 1454 | 176..177 'x': T |
1455 | [176; 183) 'x.foo()': u32 | 1455 | 176..183 'x.foo()': u32 |
1456 | "### | 1456 | "### |
1457 | ); | 1457 | ); |
1458 | } | 1458 | } |
@@ -1494,15 +1494,15 @@ fn test<T: Trait1, U: Trait2>(x: T, y: U) { | |||
1494 | } | 1494 | } |
1495 | "#), | 1495 | "#), |
1496 | @r###" | 1496 | @r###" |
1497 | [50; 54) 'self': &Self | 1497 | 50..54 'self': &Self |
1498 | [63; 65) '{}': () | 1498 | 63..65 '{}': () |
1499 | [182; 183) 'x': T | 1499 | 182..183 'x': T |
1500 | [188; 189) 'y': U | 1500 | 188..189 'y': U |
1501 | [194; 223) '{ ...o(); }': () | 1501 | 194..223 '{ ...o(); }': () |
1502 | [200; 201) 'x': T | 1502 | 200..201 'x': T |
1503 | [200; 207) 'x.foo()': u32 | 1503 | 200..207 'x.foo()': u32 |
1504 | [213; 214) 'y': U | 1504 | 213..214 'y': U |
1505 | [213; 220) 'y.foo()': u32 | 1505 | 213..220 'y.foo()': u32 |
1506 | "### | 1506 | "### |
1507 | ); | 1507 | ); |
1508 | } | 1508 | } |
@@ -1523,12 +1523,12 @@ fn test(x: &impl Trait1) { | |||
1523 | } | 1523 | } |
1524 | "#), | 1524 | "#), |
1525 | @r###" | 1525 | @r###" |
1526 | [50; 54) 'self': &Self | 1526 | 50..54 'self': &Self |
1527 | [63; 65) '{}': () | 1527 | 63..65 '{}': () |
1528 | [116; 117) 'x': &impl Trait1 | 1528 | 116..117 'x': &impl Trait1 |
1529 | [133; 149) '{ ...o(); }': () | 1529 | 133..149 '{ ...o(); }': () |
1530 | [139; 140) 'x': &impl Trait1 | 1530 | 139..140 'x': &impl Trait1 |
1531 | [139; 146) 'x.foo()': u32 | 1531 | 139..146 'x.foo()': u32 |
1532 | "### | 1532 | "### |
1533 | ); | 1533 | ); |
1534 | } | 1534 | } |
@@ -1546,10 +1546,10 @@ fn test<T: A>(x: T) { | |||
1546 | } | 1546 | } |
1547 | "#), | 1547 | "#), |
1548 | @r###" | 1548 | @r###" |
1549 | [44; 45) 'x': T | 1549 | 44..45 'x': T |
1550 | [50; 66) '{ ...o(); }': () | 1550 | 50..66 '{ ...o(); }': () |
1551 | [56; 57) 'x': T | 1551 | 56..57 'x': T |
1552 | [56; 63) 'x.foo()': {unknown} | 1552 | 56..63 'x.foo()': {unknown} |
1553 | "### | 1553 | "### |
1554 | ); | 1554 | ); |
1555 | } | 1555 | } |
@@ -1573,17 +1573,17 @@ fn test() { | |||
1573 | } | 1573 | } |
1574 | "#), | 1574 | "#), |
1575 | @r###" | 1575 | @r###" |
1576 | [103; 104) 't': T | 1576 | 103..104 't': T |
1577 | [114; 116) '{}': () | 1577 | 114..116 '{}': () |
1578 | [146; 147) 't': T | 1578 | 146..147 't': T |
1579 | [157; 160) '{t}': T | 1579 | 157..160 '{t}': T |
1580 | [158; 159) 't': T | 1580 | 158..159 't': T |
1581 | [259; 280) '{ ...S)); }': () | 1581 | 259..280 '{ ...S)); }': () |
1582 | [265; 269) 'get2': fn get2<u64, S<u64>>(S<u64>) -> u64 | 1582 | 265..269 'get2': fn get2<u64, S<u64>>(S<u64>) -> u64 |
1583 | [265; 277) 'get2(set(S))': u64 | 1583 | 265..277 'get2(set(S))': u64 |
1584 | [270; 273) 'set': fn set<S<u64>>(S<u64>) -> S<u64> | 1584 | 270..273 'set': fn set<S<u64>>(S<u64>) -> S<u64> |
1585 | [270; 276) 'set(S)': S<u64> | 1585 | 270..276 'set(S)': S<u64> |
1586 | [274; 275) 'S': S<u64> | 1586 | 274..275 'S': S<u64> |
1587 | "### | 1587 | "### |
1588 | ); | 1588 | ); |
1589 | } | 1589 | } |
@@ -1603,15 +1603,15 @@ fn test<F: FnOnce(u32, u64) -> u128>(f: F) { | |||
1603 | } | 1603 | } |
1604 | "#), | 1604 | "#), |
1605 | @r###" | 1605 | @r###" |
1606 | [57; 61) 'self': Self | 1606 | 57..61 'self': Self |
1607 | [63; 67) 'args': Args | 1607 | 63..67 'args': Args |
1608 | [150; 151) 'f': F | 1608 | 150..151 'f': F |
1609 | [156; 184) '{ ...2)); }': () | 1609 | 156..184 '{ ...2)); }': () |
1610 | [162; 163) 'f': F | 1610 | 162..163 'f': F |
1611 | [162; 181) 'f.call...1, 2))': u128 | 1611 | 162..181 'f.call...1, 2))': u128 |
1612 | [174; 180) '(1, 2)': (u32, u64) | 1612 | 174..180 '(1, 2)': (u32, u64) |
1613 | [175; 176) '1': u32 | 1613 | 175..176 '1': u32 |
1614 | [178; 179) '2': u64 | 1614 | 178..179 '2': u64 |
1615 | "### | 1615 | "### |
1616 | ); | 1616 | ); |
1617 | } | 1617 | } |
@@ -1638,32 +1638,32 @@ fn test() { | |||
1638 | } | 1638 | } |
1639 | "#), | 1639 | "#), |
1640 | @r###" | 1640 | @r###" |
1641 | [148; 152) 'self': Option<T> | 1641 | 148..152 'self': Option<T> |
1642 | [154; 155) 'f': F | 1642 | 154..155 'f': F |
1643 | [173; 175) '{}': () | 1643 | 173..175 '{}': () |
1644 | [189; 308) '{ ... 1); }': () | 1644 | 189..308 '{ ... 1); }': () |
1645 | [199; 200) 'x': Option<u32> | 1645 | 199..200 'x': Option<u32> |
1646 | [203; 215) 'Option::Some': Some<u32>(u32) -> Option<u32> | 1646 | 203..215 'Option::Some': Some<u32>(u32) -> Option<u32> |
1647 | [203; 221) 'Option...(1u32)': Option<u32> | 1647 | 203..221 'Option...(1u32)': Option<u32> |
1648 | [216; 220) '1u32': u32 | 1648 | 216..220 '1u32': u32 |
1649 | [227; 228) 'x': Option<u32> | 1649 | 227..228 'x': Option<u32> |
1650 | [227; 243) 'x.map(...v + 1)': Option<u32> | 1650 | 227..243 'x.map(...v + 1)': Option<u32> |
1651 | [233; 242) '|v| v + 1': |u32| -> u32 | 1651 | 233..242 '|v| v + 1': |u32| -> u32 |
1652 | [234; 235) 'v': u32 | 1652 | 234..235 'v': u32 |
1653 | [237; 238) 'v': u32 | 1653 | 237..238 'v': u32 |
1654 | [237; 242) 'v + 1': u32 | 1654 | 237..242 'v + 1': u32 |
1655 | [241; 242) '1': u32 | 1655 | 241..242 '1': u32 |
1656 | [249; 250) 'x': Option<u32> | 1656 | 249..250 'x': Option<u32> |
1657 | [249; 265) 'x.map(... 1u64)': Option<u64> | 1657 | 249..265 'x.map(... 1u64)': Option<u64> |
1658 | [255; 264) '|_v| 1u64': |u32| -> u64 | 1658 | 255..264 '|_v| 1u64': |u32| -> u64 |
1659 | [256; 258) '_v': u32 | 1659 | 256..258 '_v': u32 |
1660 | [260; 264) '1u64': u64 | 1660 | 260..264 '1u64': u64 |
1661 | [275; 276) 'y': Option<i64> | 1661 | 275..276 'y': Option<i64> |
1662 | [292; 293) 'x': Option<u32> | 1662 | 292..293 'x': Option<u32> |
1663 | [292; 305) 'x.map(|_v| 1)': Option<i64> | 1663 | 292..305 'x.map(|_v| 1)': Option<i64> |
1664 | [298; 304) '|_v| 1': |u32| -> i64 | 1664 | 298..304 '|_v| 1': |u32| -> i64 |
1665 | [299; 301) '_v': u32 | 1665 | 299..301 '_v': u32 |
1666 | [303; 304) '1': i64 | 1666 | 303..304 '1': i64 |
1667 | "### | 1667 | "### |
1668 | ); | 1668 | ); |
1669 | } | 1669 | } |
@@ -1684,26 +1684,26 @@ fn test<F: FnOnce(u32) -> u64>(f: F) { | |||
1684 | } | 1684 | } |
1685 | "#), | 1685 | "#), |
1686 | @r###" | 1686 | @r###" |
1687 | [73; 74) 'f': F | 1687 | 73..74 'f': F |
1688 | [79; 155) '{ ...+ v; }': () | 1688 | 79..155 '{ ...+ v; }': () |
1689 | [85; 86) 'f': F | 1689 | 85..86 'f': F |
1690 | [85; 89) 'f(1)': {unknown} | 1690 | 85..89 'f(1)': {unknown} |
1691 | [87; 88) '1': i32 | 1691 | 87..88 '1': i32 |
1692 | [99; 100) 'g': |u64| -> i32 | 1692 | 99..100 'g': |u64| -> i32 |
1693 | [103; 112) '|v| v + 1': |u64| -> i32 | 1693 | 103..112 '|v| v + 1': |u64| -> i32 |
1694 | [104; 105) 'v': u64 | 1694 | 104..105 'v': u64 |
1695 | [107; 108) 'v': u64 | 1695 | 107..108 'v': u64 |
1696 | [107; 112) 'v + 1': i32 | 1696 | 107..112 'v + 1': i32 |
1697 | [111; 112) '1': i32 | 1697 | 111..112 '1': i32 |
1698 | [118; 119) 'g': |u64| -> i32 | 1698 | 118..119 'g': |u64| -> i32 |
1699 | [118; 125) 'g(1u64)': i32 | 1699 | 118..125 'g(1u64)': i32 |
1700 | [120; 124) '1u64': u64 | 1700 | 120..124 '1u64': u64 |
1701 | [135; 136) 'h': |u128| -> u128 | 1701 | 135..136 'h': |u128| -> u128 |
1702 | [139; 152) '|v| 1u128 + v': |u128| -> u128 | 1702 | 139..152 '|v| 1u128 + v': |u128| -> u128 |
1703 | [140; 141) 'v': u128 | 1703 | 140..141 'v': u128 |
1704 | [143; 148) '1u128': u128 | 1704 | 143..148 '1u128': u128 |
1705 | [143; 152) '1u128 + v': u128 | 1705 | 143..152 '1u128 + v': u128 |
1706 | [151; 152) 'v': u128 | 1706 | 151..152 'v': u128 |
1707 | "### | 1707 | "### |
1708 | ); | 1708 | ); |
1709 | } | 1709 | } |
@@ -1736,54 +1736,54 @@ fn test() { | |||
1736 | } | 1736 | } |
1737 | "#), | 1737 | "#), |
1738 | @r###" | 1738 | @r###" |
1739 | [95; 96) 'x': T | 1739 | 95..96 'x': T |
1740 | [101; 102) 'f': F | 1740 | 101..102 'f': F |
1741 | [112; 114) '{}': () | 1741 | 112..114 '{}': () |
1742 | [148; 149) 'f': F | 1742 | 148..149 'f': F |
1743 | [154; 155) 'x': T | 1743 | 154..155 'x': T |
1744 | [165; 167) '{}': () | 1744 | 165..167 '{}': () |
1745 | [202; 206) 'self': S | 1745 | 202..206 'self': S |
1746 | [254; 258) 'self': S | 1746 | 254..258 'self': S |
1747 | [260; 261) 'x': T | 1747 | 260..261 'x': T |
1748 | [266; 267) 'f': F | 1748 | 266..267 'f': F |
1749 | [277; 279) '{}': () | 1749 | 277..279 '{}': () |
1750 | [317; 321) 'self': S | 1750 | 317..321 'self': S |
1751 | [323; 324) 'f': F | 1751 | 323..324 'f': F |
1752 | [329; 330) 'x': T | 1752 | 329..330 'x': T |
1753 | [340; 342) '{}': () | 1753 | 340..342 '{}': () |
1754 | [356; 515) '{ ... S); }': () | 1754 | 356..515 '{ ... S); }': () |
1755 | [366; 368) 'x1': u64 | 1755 | 366..368 'x1': u64 |
1756 | [371; 375) 'foo1': fn foo1<S, u64, |S| -> u64>(S, |S| -> u64) -> u64 | 1756 | 371..375 'foo1': fn foo1<S, u64, |S| -> u64>(S, |S| -> u64) -> u64 |
1757 | [371; 394) 'foo1(S...hod())': u64 | 1757 | 371..394 'foo1(S...hod())': u64 |
1758 | [376; 377) 'S': S | 1758 | 376..377 'S': S |
1759 | [379; 393) '|s| s.method()': |S| -> u64 | 1759 | 379..393 '|s| s.method()': |S| -> u64 |
1760 | [380; 381) 's': S | 1760 | 380..381 's': S |
1761 | [383; 384) 's': S | 1761 | 383..384 's': S |
1762 | [383; 393) 's.method()': u64 | 1762 | 383..393 's.method()': u64 |
1763 | [404; 406) 'x2': u64 | 1763 | 404..406 'x2': u64 |
1764 | [409; 413) 'foo2': fn foo2<S, u64, |S| -> u64>(|S| -> u64, S) -> u64 | 1764 | 409..413 'foo2': fn foo2<S, u64, |S| -> u64>(|S| -> u64, S) -> u64 |
1765 | [409; 432) 'foo2(|...(), S)': u64 | 1765 | 409..432 'foo2(|...(), S)': u64 |
1766 | [414; 428) '|s| s.method()': |S| -> u64 | 1766 | 414..428 '|s| s.method()': |S| -> u64 |
1767 | [415; 416) 's': S | 1767 | 415..416 's': S |
1768 | [418; 419) 's': S | 1768 | 418..419 's': S |
1769 | [418; 428) 's.method()': u64 | 1769 | 418..428 's.method()': u64 |
1770 | [430; 431) 'S': S | 1770 | 430..431 'S': S |
1771 | [442; 444) 'x3': u64 | 1771 | 442..444 'x3': u64 |
1772 | [447; 448) 'S': S | 1772 | 447..448 'S': S |
1773 | [447; 472) 'S.foo1...hod())': u64 | 1773 | 447..472 'S.foo1...hod())': u64 |
1774 | [454; 455) 'S': S | 1774 | 454..455 'S': S |
1775 | [457; 471) '|s| s.method()': |S| -> u64 | 1775 | 457..471 '|s| s.method()': |S| -> u64 |
1776 | [458; 459) 's': S | 1776 | 458..459 's': S |
1777 | [461; 462) 's': S | 1777 | 461..462 's': S |
1778 | [461; 471) 's.method()': u64 | 1778 | 461..471 's.method()': u64 |
1779 | [482; 484) 'x4': u64 | 1779 | 482..484 'x4': u64 |
1780 | [487; 488) 'S': S | 1780 | 487..488 'S': S |
1781 | [487; 512) 'S.foo2...(), S)': u64 | 1781 | 487..512 'S.foo2...(), S)': u64 |
1782 | [494; 508) '|s| s.method()': |S| -> u64 | 1782 | 494..508 '|s| s.method()': |S| -> u64 |
1783 | [495; 496) 's': S | 1783 | 495..496 's': S |
1784 | [498; 499) 's': S | 1784 | 498..499 's': S |
1785 | [498; 508) 's.method()': u64 | 1785 | 498..508 's.method()': u64 |
1786 | [510; 511) 'S': S | 1786 | 510..511 'S': S |
1787 | "### | 1787 | "### |
1788 | ); | 1788 | ); |
1789 | } | 1789 | } |
@@ -1858,18 +1858,18 @@ impl Trait for S2 { | |||
1858 | } | 1858 | } |
1859 | "#, | 1859 | "#, |
1860 | ), @r###" | 1860 | ), @r###" |
1861 | [54; 58) 'self': &Self | 1861 | 54..58 'self': &Self |
1862 | [60; 61) 'x': Trait::Item<Self> | 1862 | 60..61 'x': Trait::Item<Self> |
1863 | [140; 144) 'self': &S | 1863 | 140..144 'self': &S |
1864 | [146; 147) 'x': u32 | 1864 | 146..147 'x': u32 |
1865 | [161; 175) '{ let y = x; }': () | 1865 | 161..175 '{ let y = x; }': () |
1866 | [167; 168) 'y': u32 | 1866 | 167..168 'y': u32 |
1867 | [171; 172) 'x': u32 | 1867 | 171..172 'x': u32 |
1868 | [242; 246) 'self': &S2 | 1868 | 242..246 'self': &S2 |
1869 | [248; 249) 'x': i32 | 1869 | 248..249 'x': i32 |
1870 | [265; 279) '{ let y = x; }': () | 1870 | 265..279 '{ let y = x; }': () |
1871 | [271; 272) 'y': i32 | 1871 | 271..272 'y': i32 |
1872 | [275; 276) 'x': i32 | 1872 | 275..276 'x': i32 |
1873 | "###); | 1873 | "###); |
1874 | } | 1874 | } |
1875 | 1875 | ||
@@ -2077,15 +2077,15 @@ impl TokenStream for Rustc { | |||
2077 | } | 2077 | } |
2078 | "#, true), | 2078 | "#, true), |
2079 | @r###" | 2079 | @r###" |
2080 | [1115; 1126) '{ loop {} }': T | 2080 | 1115..1126 '{ loop {} }': T |
2081 | [1117; 1124) 'loop {}': ! | 2081 | 1117..1124 'loop {}': ! |
2082 | [1122; 1124) '{}': () | 2082 | 1122..1124 '{}': () |
2083 | [1190; 1253) '{ ... }': {unknown} | 2083 | 1190..1253 '{ ... }': {unknown} |
2084 | [1204; 1209) 'group': {unknown} | 2084 | 1204..1209 'group': {unknown} |
2085 | [1225; 1229) 'make': fn make<{unknown}>() -> {unknown} | 2085 | 1225..1229 'make': fn make<{unknown}>() -> {unknown} |
2086 | [1225; 1231) 'make()': {unknown} | 2086 | 1225..1231 'make()': {unknown} |
2087 | [1241; 1245) 'make': fn make<{unknown}>() -> {unknown} | 2087 | 1241..1245 'make': fn make<{unknown}>() -> {unknown} |
2088 | [1241; 1247) 'make()': {unknown} | 2088 | 1241..1247 'make()': {unknown} |
2089 | "### | 2089 | "### |
2090 | ); | 2090 | ); |
2091 | } | 2091 | } |
@@ -2112,37 +2112,37 @@ fn test() -> impl Trait<i32> { | |||
2112 | } | 2112 | } |
2113 | "#, true), | 2113 | "#, true), |
2114 | @r###" | 2114 | @r###" |
2115 | [27; 28) 'x': impl Trait<u32> | 2115 | 27..28 'x': impl Trait<u32> |
2116 | [47; 58) '{ loop {} }': () | 2116 | 47..58 '{ loop {} }': () |
2117 | [49; 56) 'loop {}': ! | 2117 | 49..56 'loop {}': ! |
2118 | [54; 56) '{}': () | 2118 | 54..56 '{}': () |
2119 | [69; 70) 'x': impl Trait<T> | 2119 | 69..70 'x': impl Trait<T> |
2120 | [92; 103) '{ loop {} }': T | 2120 | 92..103 '{ loop {} }': T |
2121 | [94; 101) 'loop {}': ! | 2121 | 94..101 'loop {}': ! |
2122 | [99; 101) '{}': () | 2122 | 99..101 '{}': () |
2123 | [172; 183) '{ loop {} }': T | 2123 | 172..183 '{ loop {} }': T |
2124 | [174; 181) 'loop {}': ! | 2124 | 174..181 'loop {}': ! |
2125 | [179; 181) '{}': () | 2125 | 179..181 '{}': () |
2126 | [214; 310) '{ ...t()) }': S<{unknown}> | 2126 | 214..310 '{ ...t()) }': S<{unknown}> |
2127 | [224; 226) 's1': S<u32> | 2127 | 224..226 's1': S<u32> |
2128 | [229; 230) 'S': S<u32>(u32) -> S<u32> | 2128 | 229..230 'S': S<u32>(u32) -> S<u32> |
2129 | [229; 241) 'S(default())': S<u32> | 2129 | 229..241 'S(default())': S<u32> |
2130 | [231; 238) 'default': fn default<u32>() -> u32 | 2130 | 231..238 'default': fn default<u32>() -> u32 |
2131 | [231; 240) 'default()': u32 | 2131 | 231..240 'default()': u32 |
2132 | [247; 250) 'foo': fn foo(S<u32>) | 2132 | 247..250 'foo': fn foo(S<u32>) |
2133 | [247; 254) 'foo(s1)': () | 2133 | 247..254 'foo(s1)': () |
2134 | [251; 253) 's1': S<u32> | 2134 | 251..253 's1': S<u32> |
2135 | [264; 265) 'x': i32 | 2135 | 264..265 'x': i32 |
2136 | [273; 276) 'bar': fn bar<i32>(S<i32>) -> i32 | 2136 | 273..276 'bar': fn bar<i32>(S<i32>) -> i32 |
2137 | [273; 290) 'bar(S(...lt()))': i32 | 2137 | 273..290 'bar(S(...lt()))': i32 |
2138 | [277; 278) 'S': S<i32>(i32) -> S<i32> | 2138 | 277..278 'S': S<i32>(i32) -> S<i32> |
2139 | [277; 289) 'S(default())': S<i32> | 2139 | 277..289 'S(default())': S<i32> |
2140 | [279; 286) 'default': fn default<i32>() -> i32 | 2140 | 279..286 'default': fn default<i32>() -> i32 |
2141 | [279; 288) 'default()': i32 | 2141 | 279..288 'default()': i32 |
2142 | [296; 297) 'S': S<{unknown}>({unknown}) -> S<{unknown}> | 2142 | 296..297 'S': S<{unknown}>({unknown}) -> S<{unknown}> |
2143 | [296; 308) 'S(default())': S<{unknown}> | 2143 | 296..308 'S(default())': S<{unknown}> |
2144 | [298; 305) 'default': fn default<{unknown}>() -> {unknown} | 2144 | 298..305 'default': fn default<{unknown}>() -> {unknown} |
2145 | [298; 307) 'default()': {unknown} | 2145 | 298..307 'default()': {unknown} |
2146 | "### | 2146 | "### |
2147 | ); | 2147 | ); |
2148 | } | 2148 | } |
@@ -2176,15 +2176,15 @@ fn main() { | |||
2176 | } | 2176 | } |
2177 | "#), | 2177 | "#), |
2178 | @r###" | 2178 | @r###" |
2179 | [147; 149) '_v': F | 2179 | 147..149 '_v': F |
2180 | [192; 195) '{ }': () | 2180 | 192..195 '{ }': () |
2181 | [207; 238) '{ ... }); }': () | 2181 | 207..238 '{ ... }); }': () |
2182 | [213; 223) 'f::<(), _>': fn f<(), |&()| -> ()>(|&()| -> ()) | 2182 | 213..223 'f::<(), _>': fn f<(), |&()| -> ()>(|&()| -> ()) |
2183 | [213; 235) 'f::<()... z; })': () | 2183 | 213..235 'f::<()... z; })': () |
2184 | [224; 234) '|z| { z; }': |&()| -> () | 2184 | 224..234 '|z| { z; }': |&()| -> () |
2185 | [225; 226) 'z': &() | 2185 | 225..226 'z': &() |
2186 | [228; 234) '{ z; }': () | 2186 | 228..234 '{ z; }': () |
2187 | [230; 231) 'z': &() | 2187 | 230..231 'z': &() |
2188 | "### | 2188 | "### |
2189 | ); | 2189 | ); |
2190 | } | 2190 | } |
@@ -2337,46 +2337,46 @@ fn main() { | |||
2337 | } | 2337 | } |
2338 | "#), | 2338 | "#), |
2339 | @r###" | 2339 | @r###" |
2340 | [240; 244) 'self': Self | 2340 | 240..244 'self': Self |
2341 | [246; 247) 'f': F | 2341 | 246..247 'f': F |
2342 | [331; 342) '{ loop {} }': FilterMap<Self, F> | 2342 | 331..342 '{ loop {} }': FilterMap<Self, F> |
2343 | [333; 340) 'loop {}': ! | 2343 | 333..340 'loop {}': ! |
2344 | [338; 340) '{}': () | 2344 | 338..340 '{}': () |
2345 | [363; 367) 'self': Self | 2345 | 363..367 'self': Self |
2346 | [369; 370) 'f': F | 2346 | 369..370 'f': F |
2347 | [419; 430) '{ loop {} }': () | 2347 | 419..430 '{ loop {} }': () |
2348 | [421; 428) 'loop {}': ! | 2348 | 421..428 'loop {}': ! |
2349 | [426; 428) '{}': () | 2349 | 426..428 '{}': () |
2350 | [539; 543) 'self': Self | 2350 | 539..543 'self': Self |
2351 | [868; 872) 'self': I | 2351 | 868..872 'self': I |
2352 | [879; 899) '{ ... }': I | 2352 | 879..899 '{ ... }': I |
2353 | [889; 893) 'self': I | 2353 | 889..893 'self': I |
2354 | [958; 969) '{ loop {} }': Vec<T> | 2354 | 958..969 '{ loop {} }': Vec<T> |
2355 | [960; 967) 'loop {}': ! | 2355 | 960..967 'loop {}': ! |
2356 | [965; 967) '{}': () | 2356 | 965..967 '{}': () |
2357 | [1156; 1287) '{ ... }); }': () | 2357 | 1156..1287 '{ ... }); }': () |
2358 | [1162; 1177) 'Vec::<i32>::new': fn new<i32>() -> Vec<i32> | 2358 | 1162..1177 'Vec::<i32>::new': fn new<i32>() -> Vec<i32> |
2359 | [1162; 1179) 'Vec::<...:new()': Vec<i32> | 2359 | 1162..1179 'Vec::<...:new()': Vec<i32> |
2360 | [1162; 1191) 'Vec::<...iter()': IntoIter<i32> | 2360 | 1162..1191 'Vec::<...iter()': IntoIter<i32> |
2361 | [1162; 1256) 'Vec::<...one })': FilterMap<IntoIter<i32>, |i32| -> Option<u32>> | 2361 | 1162..1256 'Vec::<...one })': FilterMap<IntoIter<i32>, |i32| -> Option<u32>> |
2362 | [1162; 1284) 'Vec::<... y; })': () | 2362 | 1162..1284 'Vec::<... y; })': () |
2363 | [1210; 1255) '|x| if...None }': |i32| -> Option<u32> | 2363 | 1210..1255 '|x| if...None }': |i32| -> Option<u32> |
2364 | [1211; 1212) 'x': i32 | 2364 | 1211..1212 'x': i32 |
2365 | [1214; 1255) 'if x >...None }': Option<u32> | 2365 | 1214..1255 'if x >...None }': Option<u32> |
2366 | [1217; 1218) 'x': i32 | 2366 | 1217..1218 'x': i32 |
2367 | [1217; 1222) 'x > 0': bool | 2367 | 1217..1222 'x > 0': bool |
2368 | [1221; 1222) '0': i32 | 2368 | 1221..1222 '0': i32 |
2369 | [1223; 1241) '{ Some...u32) }': Option<u32> | 2369 | 1223..1241 '{ Some...u32) }': Option<u32> |
2370 | [1225; 1229) 'Some': Some<u32>(u32) -> Option<u32> | 2370 | 1225..1229 'Some': Some<u32>(u32) -> Option<u32> |
2371 | [1225; 1239) 'Some(x as u32)': Option<u32> | 2371 | 1225..1239 'Some(x as u32)': Option<u32> |
2372 | [1230; 1231) 'x': i32 | 2372 | 1230..1231 'x': i32 |
2373 | [1230; 1238) 'x as u32': u32 | 2373 | 1230..1238 'x as u32': u32 |
2374 | [1247; 1255) '{ None }': Option<u32> | 2374 | 1247..1255 '{ None }': Option<u32> |
2375 | [1249; 1253) 'None': Option<u32> | 2375 | 1249..1253 'None': Option<u32> |
2376 | [1273; 1283) '|y| { y; }': |u32| -> () | 2376 | 1273..1283 '|y| { y; }': |u32| -> () |
2377 | [1274; 1275) 'y': u32 | 2377 | 1274..1275 'y': u32 |
2378 | [1277; 1283) '{ y; }': () | 2378 | 1277..1283 '{ y; }': () |
2379 | [1279; 1280) 'y': u32 | 2379 | 1279..1280 'y': u32 |
2380 | "### | 2380 | "### |
2381 | ); | 2381 | ); |
2382 | } | 2382 | } |
@@ -2428,13 +2428,13 @@ fn test(x: &dyn Foo) { | |||
2428 | } | 2428 | } |
2429 | "#, true), | 2429 | "#, true), |
2430 | @r###" | 2430 | @r###" |
2431 | [22; 23) 'x': &dyn Foo | 2431 | 22..23 'x': &dyn Foo |
2432 | [35; 37) '{}': () | 2432 | 35..37 '{}': () |
2433 | [47; 48) 'x': &dyn Foo | 2433 | 47..48 'x': &dyn Foo |
2434 | [60; 75) '{ foo(x); }': () | 2434 | 60..75 '{ foo(x); }': () |
2435 | [66; 69) 'foo': fn foo(&dyn Foo) | 2435 | 66..69 'foo': fn foo(&dyn Foo) |
2436 | [66; 72) 'foo(x)': () | 2436 | 66..72 'foo(x)': () |
2437 | [70; 71) 'x': &dyn Foo | 2437 | 70..71 'x': &dyn Foo |
2438 | "### | 2438 | "### |
2439 | ); | 2439 | ); |
2440 | } | 2440 | } |