diff options
Diffstat (limited to 'src/test/ui/impl-trait/issues/issue-62742.rs')
-rw-r--r-- | src/test/ui/impl-trait/issues/issue-62742.rs | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/src/test/ui/impl-trait/issues/issue-62742.rs b/src/test/ui/impl-trait/issues/issue-62742.rs deleted file mode 100644 index 041bd0e38..000000000 --- a/src/test/ui/impl-trait/issues/issue-62742.rs +++ /dev/null @@ -1,32 +0,0 @@ -use std::marker::PhantomData; - -fn _alias_check() { - WrongImpl::foo(0i32); - //~^ ERROR the trait bound `RawImpl<_>: Raw<_>` is not satisfied - WrongImpl::<()>::foo(0i32); - //~^ ERROR the trait bound `RawImpl<()>: Raw<()>` is not satisfied - //~| ERROR trait bounds were not satisfied - CorrectImpl::foo(0i32); -} - -pub trait Raw<T: ?Sized> { - type Value; -} - -pub type WrongImpl<T> = SafeImpl<T, RawImpl<T>>; - -pub type CorrectImpl<T> = SafeImpl<[T], RawImpl<T>>; - -pub struct RawImpl<T>(PhantomData<T>); - -impl<T> Raw<[T]> for RawImpl<T> { - type Value = T; -} - -pub struct SafeImpl<T: ?Sized, A: Raw<T>>(PhantomData<(A, T)>); - -impl<T: ?Sized, A: Raw<T>> SafeImpl<T, A> { - pub fn foo(value: A::Value) {} -} - -fn main() {} |