diff options
Diffstat (limited to 'src/test/ui/generic-associated-types/bugs/issue-91762.rs')
-rw-r--r-- | src/test/ui/generic-associated-types/bugs/issue-91762.rs | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/src/test/ui/generic-associated-types/bugs/issue-91762.rs b/src/test/ui/generic-associated-types/bugs/issue-91762.rs deleted file mode 100644 index dec668bec..000000000 --- a/src/test/ui/generic-associated-types/bugs/issue-91762.rs +++ /dev/null @@ -1,29 +0,0 @@ -// check-fail -// known-bug - -// We almost certainly want this to pass, but -// it's particularly difficult currently, because we need a way of specifying -// that `<Self::Base as Functor>::With<T> = Self` without using that when we have -// a `U`. See `https://github.com/rust-lang/rust/pull/92728` for a (hacky) -// solution. This might be better to just wait for Chalk. - -pub trait Functor { - type With<T>; - - fn fmap<T, U>(this: Self::With<T>) -> Self::With<U>; -} - -pub trait FunctorExt<T>: Sized { - type Base: Functor<With<T> = Self>; - - fn fmap<U>(self) { - let arg: <Self::Base as Functor>::With<T>; - let ret: <Self::Base as Functor>::With<U>; - - arg = self; - ret = <Self::Base as Functor>::fmap(arg); - //~^ type annotations needed - } -} - -fn main() {} |