diff options
Diffstat (limited to 'src/test/ui/async-await/issue-61076.rs')
| -rw-r--r-- | src/test/ui/async-await/issue-61076.rs | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/src/test/ui/async-await/issue-61076.rs b/src/test/ui/async-await/issue-61076.rs deleted file mode 100644 index 750fad8393b..00000000000 --- a/src/test/ui/async-await/issue-61076.rs +++ /dev/null @@ -1,97 +0,0 @@ -// edition:2018 - -use core::future::Future; -use core::pin::Pin; -use core::task::{Context, Poll}; - -struct T; - -struct Tuple(i32); - -struct Struct { - a: i32 -} - -impl Struct { - fn method(&self) {} -} - -impl Future for Struct { - type Output = Struct; - fn poll(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<Self::Output> { Poll::Pending } -} - -impl Future for Tuple { - type Output = Tuple; - fn poll(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<Self::Output> { Poll::Pending } -} - -impl Future for T { - type Output = Result<(), ()>; - - fn poll(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<Self::Output> { - Poll::Pending - } -} - -async fn foo() -> Result<(), ()> { - Ok(()) -} - -async fn bar() -> Result<(), ()> { - foo()?; //~ ERROR the `?` operator can only be applied to values that implement `Try` - //~^ NOTE the `?` operator cannot be applied to type `impl Future<Output = Result<(), ()>>` - //~| HELP the trait `Try` is not implemented for `impl Future<Output = Result<(), ()>>` - //~| HELP consider `await`ing on the `Future` - //~| NOTE in this expansion of desugaring of operator `?` - //~| NOTE in this expansion of desugaring of operator `?` - //~| NOTE in this expansion of desugaring of operator `?` - Ok(()) -} - -async fn struct_() -> Struct { - Struct { a: 1 } -} - -async fn tuple() -> Tuple { - //~^ NOTE checked the `Output` of this `async fn`, expected opaque type - //~| NOTE while checking the return type of the `async fn` - //~| NOTE in this expansion of desugaring of `async` block or function - Tuple(1i32) -} - -async fn baz() -> Result<(), ()> { - let t = T; - t?; //~ ERROR the `?` operator can only be applied to values that implement `Try` - //~^ NOTE the `?` operator cannot be applied to type `T` - //~| HELP the trait `Try` is not implemented for `T` - //~| HELP consider `await`ing on the `Future` - //~| NOTE in this expansion of desugaring of operator `?` - //~| NOTE in this expansion of desugaring of operator `?` - //~| NOTE in this expansion of desugaring of operator `?` - - - let _: i32 = tuple().0; //~ ERROR no field `0` - //~^ HELP consider `await`ing on the `Future` - //~| NOTE field not available in `impl Future` - - let _: i32 = struct_().a; //~ ERROR no field `a` - //~^ HELP consider `await`ing on the `Future` - //~| NOTE field not available in `impl Future` - - struct_().method(); //~ ERROR no method named - //~^ NOTE method not found in `impl Future<Output = Struct>` - //~| HELP consider `await`ing on the `Future` - Ok(()) -} - -async fn match_() { - match tuple() { //~ HELP consider `await`ing on the `Future` - //~^ NOTE this expression has type `impl Future<Output = Tuple>` - Tuple(_) => {} //~ ERROR mismatched types - //~^ NOTE expected opaque type, found struct `Tuple` - //~| NOTE expected opaque type `impl Future<Output = Tuple>` - } -} - -fn main() {} |
