--> $DIR/issue-61076.rs:42:5
|
LL | foo()?;
- | ^^^^^^ the `?` operator cannot be applied to type `impl Future`
+ | ^^^^^^ the `?` operator cannot be applied to type `impl Future<Output = Result<(), ()>>`
|
- = help: the trait `Try` is not implemented for `impl Future`
-note: required by `branch`
- --> $SRC_DIR/core/src/ops/try_trait.rs:LL:COL
- |
-LL | fn branch(self) -> ControlFlow<Self::Residual, Self::Output>;
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ = 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:67:5
+ --> $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`
-note: required by `branch`
- --> $SRC_DIR/core/src/ops/try_trait.rs:LL:COL
- |
-LL | fn branch(self) -> ControlFlow<Self::Residual, Self::Output>;
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider `await`ing on the `Future`
|
LL | t.await?;
| ++++++
-error[E0609]: no field `0` on type `impl Future`
- --> $DIR/issue-61076.rs:78:26
+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`
LL | let _: i32 = tuple().await.0;
| ++++++
-error[E0609]: no field `a` on type `impl Future`
- --> $DIR/issue-61076.rs:82:28
+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`
LL | let _: i32 = struct_().await.a;
| ++++++
-error[E0599]: no method named `method` found for opaque type `impl Future` in the current scope
- --> $DIR/issue-61076.rs:86:15
+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`
+ | ^^^^^^ method not found in `impl Future<Output = Struct>`
|
help: consider `await`ing on the `Future` and calling the method on its `Output`
|
| ++++++
error[E0308]: mismatched types
- --> $DIR/issue-61076.rs:94:9
+ --> $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:58:21
+ --> $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`
+ = note: expected opaque type `impl Future<Output = Tuple>`
found struct `Tuple`
help: consider `await`ing on the `Future`
|