2024-02-16 14:02:50 -06:00
|
|
|
//@ compile-flags: --diagnostic-width=40
|
|
|
|
//@ normalize-stderr-test: "long-type-\d+" -> "long-type-hash"
|
2023-01-08 12:41:09 -06:00
|
|
|
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() {
|
|
|
|
}
|