34 lines
646 B
Rust
34 lines
646 B
Rust
|
//@ compile-flags: --diagnostic-width=40
|
||
|
//@ normalize-stderr-test: "long-type-\d+" -> "long-type-hash"
|
||
|
trait Future {
|
||
|
type Error;
|
||
|
}
|
||
|
|
||
|
impl<T, E> Future for Result<T, E> {
|
||
|
type Error = E;
|
||
|
}
|
||
|
|
||
|
impl<T> Future for Option<T> {
|
||
|
type Error = ();
|
||
|
}
|
||
|
|
||
|
struct Foo;
|
||
|
|
||
|
fn foo() -> Box<dyn Future<Error=Foo>> {
|
||
|
Box::new( //~ ERROR E0271
|
||
|
Ok::<_, ()>(
|
||
|
Err::<(), _>(
|
||
|
Ok::<_, ()>(
|
||
|
Err::<(), _>(
|
||
|
Ok::<_, ()>(
|
||
|
Err::<(), _>(Some(5))
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
)
|
||
|
}
|
||
|
fn main() {
|
||
|
}
|