Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/tests/traits.rs')
| -rw-r--r-- | crates/hir-ty/src/tests/traits.rs | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/crates/hir-ty/src/tests/traits.rs b/crates/hir-ty/src/tests/traits.rs index fb07e718d1..a98cff2a08 100644 --- a/crates/hir-ty/src/tests/traits.rs +++ b/crates/hir-ty/src/tests/traits.rs @@ -4692,119 +4692,6 @@ fn f<T: Send, U>() { } #[test] -fn associated_type_impl_trait() { - check_types( - r#" -trait Foo {} -struct S1; -impl Foo for S1 {} - -trait Bar { - type Item; - fn bar(&self) -> Self::Item; -} -struct S2; -impl Bar for S2 { - type Item = impl Foo; - fn bar(&self) -> Self::Item { - S1 - } -} - -fn test() { - let x = S2.bar(); - //^ impl Foo + ?Sized -} - "#, - ); -} - -#[test] -fn associated_type_impl_traits_complex() { - check_types( - r#" -struct Unary<T>(T); -struct Binary<T, U>(T, U); - -trait Foo {} -struct S1; -impl Foo for S1 {} - -trait Bar { - type Item; - fn bar(&self) -> Unary<Self::Item>; -} -struct S2; -impl Bar for S2 { - type Item = Unary<impl Foo>; - fn bar(&self) -> Unary<<Self as Bar>::Item> { - Unary(Unary(S1)) - } -} - -trait Baz { - type Target1; - type Target2; - fn baz(&self) -> Binary<Self::Target1, Self::Target2>; -} -struct S3; -impl Baz for S3 { - type Target1 = impl Foo; - type Target2 = Unary<impl Bar>; - fn baz(&self) -> Binary<Self::Target1, Self::Target2> { - Binary(S1, Unary(S2)) - } -} - -fn test() { - let x = S3.baz(); - //^ Binary<impl Foo + ?Sized, Unary<impl Bar + ?Sized>> - let y = x.1.0.bar(); - //^ Unary<Bar::Item<impl Bar + ?Sized>> -} - "#, - ); -} - -#[test] -fn associated_type_with_impl_trait_in_tuple() { - check_no_mismatches( - r#" -pub trait Iterator { - type Item; -} - -pub trait Value {} - -fn bar<I: Iterator<Item = (usize, impl Value)>>() {} - -fn foo() { - bar(); -} -"#, - ); -} - -#[test] -fn associated_type_with_impl_trait_in_nested_tuple() { - check_no_mismatches( - r#" -pub trait Iterator { - type Item; -} - -pub trait Value {} - -fn bar<I: Iterator<Item = ((impl Value, usize), u32)>>() {} - -fn foo() { - bar(); -} -"#, - ); -} - -#[test] fn dyn_trait_with_lifetime_in_rpit() { check_types( r#" |