aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/tests/coercion.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/ra_hir_ty/src/tests/coercion.rs')
-rw-r--r--crates/ra_hir_ty/src/tests/coercion.rs42
1 files changed, 23 insertions, 19 deletions
diff --git a/crates/ra_hir_ty/src/tests/coercion.rs b/crates/ra_hir_ty/src/tests/coercion.rs
index a2601c68a..5a1c6ccc3 100644
--- a/crates/ra_hir_ty/src/tests/coercion.rs
+++ b/crates/ra_hir_ty/src/tests/coercion.rs
@@ -664,6 +664,8 @@ fn test() {
664fn coerce_unsize_trait_object() { 664fn coerce_unsize_trait_object() {
665 assert_snapshot!( 665 assert_snapshot!(
666 infer_with_mismatches(r#" 666 infer_with_mismatches(r#"
667#[lang = "sized"]
668pub trait Sized {}
667#[lang = "unsize"] 669#[lang = "unsize"]
668pub trait Unsize<T> {} 670pub trait Unsize<T> {}
669#[lang = "coerce_unsized"] 671#[lang = "coerce_unsized"]
@@ -689,19 +691,19 @@ fn test() {
689} 691}
690"#, true), 692"#, true),
691 @r###" 693 @r###"
692 387..572 '{ ...bj2; }': () 694 424..609 '{ ...bj2; }': ()
693 397..400 'obj': &dyn Baz<i8, i16> 695 434..437 'obj': &dyn Baz<i8, i16>
694 422..424 '&S': &S<i8, i16> 696 459..461 '&S': &S<i8, i16>
695 423..424 'S': S<i8, i16> 697 460..461 'S': S<i8, i16>
696 434..437 'obj': &dyn Bar<usize, i8, i16> 698 471..474 'obj': &dyn Bar<usize, i8, i16>
697 459..462 'obj': &dyn Baz<i8, i16> 699 496..499 'obj': &dyn Baz<i8, i16>
698 472..475 'obj': &dyn Foo<i8, usize> 700 509..512 'obj': &dyn Foo<i8, usize>
699 494..497 'obj': &dyn Bar<usize, i8, i16> 701 531..534 'obj': &dyn Bar<usize, i8, i16>
700 507..511 'obj2': &dyn Baz<i8, i16> 702 544..548 'obj2': &dyn Baz<i8, i16>
701 533..535 '&S': &S<i8, i16> 703 570..572 '&S': &S<i8, i16>
702 534..535 'S': S<i8, i16> 704 571..572 'S': S<i8, i16>
703 545..546 '_': &dyn Foo<i8, usize> 705 582..583 '_': &dyn Foo<i8, usize>
704 565..569 'obj2': &dyn Baz<i8, i16> 706 602..606 'obj2': &dyn Baz<i8, i16>
705 "### 707 "###
706 ); 708 );
707} 709}
@@ -710,6 +712,8 @@ fn test() {
710fn coerce_unsize_super_trait_cycle() { 712fn coerce_unsize_super_trait_cycle() {
711 assert_snapshot!( 713 assert_snapshot!(
712 infer_with_mismatches(r#" 714 infer_with_mismatches(r#"
715#[lang = "sized"]
716pub trait Sized {}
713#[lang = "unsize"] 717#[lang = "unsize"]
714pub trait Unsize<T> {} 718pub trait Unsize<T> {}
715#[lang = "coerce_unsized"] 719#[lang = "coerce_unsized"]
@@ -734,12 +738,12 @@ fn test() {
734} 738}
735"#, true), 739"#, true),
736 @r###" 740 @r###"
737 291..347 '{ ...obj; }': () 741 328..384 '{ ...obj; }': ()
738 301..304 'obj': &dyn D 742 338..341 'obj': &dyn D
739 315..317 '&S': &S 743 352..354 '&S': &S
740 316..317 'S': S 744 353..354 'S': S
741 327..330 'obj': &dyn A 745 364..367 'obj': &dyn A
742 341..344 'obj': &dyn D 746 378..381 'obj': &dyn D
743 "### 747 "###
744 ); 748 );
745} 749}