summaryrefslogtreecommitdiffstats
path: root/src/test/ui/async-await/issue-61076.stderr
blob: 33839ea59392d111fb98292cfef63ddf1346563f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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`.