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