2024-06-17 15:14:07 +00:00
|
|
|
//@ revisions: ascii unicode
|
2025-01-31 03:26:56 +00:00
|
|
|
//@[ascii] compile-flags: --diagnostic-width=40 -Zwrite-long-types-to-disk=yes
|
|
|
|
|
//@[unicode] compile-flags: -Zunstable-options --error-format=human-unicode --diagnostic-width=40 -Zwrite-long-types-to-disk=yes
|
2023-01-08 18:41:09 +00: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>> {
|
2024-06-17 15:14:07 +00:00
|
|
|
Box::new( //[ascii]~ ERROR E0271
|
2023-01-08 18:41:09 +00:00
|
|
|
Ok::<_, ()>(
|
|
|
|
|
Err::<(), _>(
|
|
|
|
|
Ok::<_, ()>(
|
|
|
|
|
Err::<(), _>(
|
|
|
|
|
Ok::<_, ()>(
|
|
|
|
|
Err::<(), _>(Some(5))
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
fn main() {
|
|
|
|
|
}
|