]> git.proxmox.com Git - rustc.git/blob - tests/ui/type-alias-impl-trait/issue-89952.rs
f0ba9fa7cec29b516830cdecb9414858d80dd26f
[rustc.git] / tests / ui / type-alias-impl-trait / issue-89952.rs
1 // check-pass
2
3 #![feature(impl_trait_in_assoc_type)]
4
5 trait SomeTrait {}
6 impl SomeTrait for () {}
7
8 trait MyFuture {
9 type Output;
10 }
11 impl<T> MyFuture for T {
12 type Output = T;
13 }
14
15 trait ReturnsFuture {
16 type Output: SomeTrait;
17 type Future: MyFuture<Output = Result<Self::Output, ()>>;
18 fn func() -> Self::Future;
19 }
20
21 struct Foo;
22
23 impl ReturnsFuture for Foo {
24 type Output = impl SomeTrait;
25 type Future = impl MyFuture<Output = Result<Self::Output, ()>>;
26 fn func() -> Self::Future {
27 Result::<(), ()>::Err(())
28 }
29 }
30
31 fn main() {}