summaryrefslogtreecommitdiffstats
path: root/src/test/ui/async-await/issue-61076.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/async-await/issue-61076.stderr')
-rw-r--r--src/test/ui/async-await/issue-61076.stderr82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/test/ui/async-await/issue-61076.stderr b/src/test/ui/async-await/issue-61076.stderr
new file mode 100644
index 000000000..33839ea59
--- /dev/null
+++ b/src/test/ui/async-await/issue-61076.stderr
@@ -0,0 +1,82 @@
+error[E0277]: the `?` operator can only be applied to values that implement `Try`
+ --> $DIR/issue-61076.rs:42:5
+ |
+LL | foo()?;
+ | ^^^^^^ 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`
+ |
+LL | foo().await?;
+ | ++++++
+
+error[E0277]: the `?` operator can only be applied to values that implement `Try`
+ --> $DIR/issue-61076.rs:65:5
+ |
+LL | t?;
+ | ^^ the `?` operator cannot be applied to type `T`
+ |
+ = help: the trait `Try` is not implemented for `T`
+help: consider `await`ing on the `Future`
+ |
+LL | t.await?;
+ | ++++++
+
+error[E0609]: no field `0` on type `impl Future<Output = Tuple>`
+ --> $DIR/issue-61076.rs:74:26
+ |
+LL | let _: i32 = tuple().0;
+ | ^ field not available in `impl Future`, but it is available in its `Output`
+ |
+help: consider `await`ing on the `Future` and access the field of its `Output`
+ |
+LL | let _: i32 = tuple().await.0;
+ | ++++++
+
+error[E0609]: no field `a` on type `impl Future<Output = Struct>`
+ --> $DIR/issue-61076.rs:78:28
+ |
+LL | let _: i32 = struct_().a;
+ | ^ field not available in `impl Future`, but it is available in its `Output`
+ |
+help: consider `await`ing on the `Future` and access the field of its `Output`
+ |
+LL | let _: i32 = struct_().await.a;
+ | ++++++
+
+error[E0599]: no method named `method` found for opaque type `impl Future<Output = Struct>` in the current scope
+ --> $DIR/issue-61076.rs:82:15
+ |
+LL | struct_().method();
+ | ^^^^^^ method not found in `impl Future<Output = Struct>`
+ |
+help: consider `await`ing on the `Future` and calling the method on its `Output`
+ |
+LL | struct_().await.method();
+ | ++++++
+
+error[E0308]: mismatched types
+ --> $DIR/issue-61076.rs:91:9
+ |
+LL | match tuple() {
+ | ------- this expression has type `impl Future<Output = Tuple>`
+LL |
+LL | Tuple(_) => {}
+ | ^^^^^^^^ expected opaque type, found struct `Tuple`
+ |
+note: while checking the return type of the `async fn`
+ --> $DIR/issue-61076.rs:56:21
+ |
+LL | async fn tuple() -> Tuple {
+ | ^^^^^ checked the `Output` of this `async fn`, expected opaque type
+ = note: expected opaque type `impl Future<Output = Tuple>`
+ found struct `Tuple`
+help: consider `await`ing on the `Future`
+ |
+LL | match tuple().await {
+ | ++++++
+
+error: aborting due to 6 previous errors
+
+Some errors have detailed explanations: E0277, E0308, E0599, E0609.
+For more information about an error, try `rustc --explain E0277`.