mirror of
https://github.com/rust-lang/rust.git
synced 2025-11-25 10:16:53 +00:00
When encountering an unmet trait bound, point at local type that doesn't implement the trait: ``` error[E0277]: the trait bound `Bar<T>: Foo` is not satisfied --> $DIR/issue-64855.rs:9:19 | LL | pub struct Bar<T>(<Self as Foo>::Type) where Self: ; | ^^^^^^^^^^^^^^^^^^^ unsatisfied trait bound | help: the trait `Foo` is not implemented for `Bar<T>` --> $DIR/issue-64855.rs:9:1 | LL | pub struct Bar<T>(<Self as Foo>::Type) where Self: ; | ^^^^^^^^^^^^^^^^^ ```
82 lines
2.6 KiB
Plaintext
82 lines
2.6 KiB
Plaintext
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:62:5
|
|
|
|
|
LL | t?;
|
|
| ^^ the `?` operator cannot be applied to type `T`
|
|
|
|
|
help: the trait `Try` is not implemented for `T`
|
|
--> $DIR/issue-61076.rs:7:1
|
|
|
|
|
LL | struct 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:69: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` to access the field
|
|
|
|
|
LL | let _: i32 = tuple().await.0;
|
|
| ++++++
|
|
|
|
error[E0609]: no field `a` on type `impl Future<Output = Struct>`
|
|
--> $DIR/issue-61076.rs:73: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` to access the field
|
|
|
|
|
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:77: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:86:9
|
|
|
|
|
LL | match tuple() {
|
|
| ------- this expression has type `impl Future<Output = Tuple>`
|
|
LL |
|
|
LL | Tuple(_) => {}
|
|
| ^^^^^^^^ expected future, found `Tuple`
|
|
|
|
|
= 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`.
|