summaryrefslogtreecommitdiffstats
path: root/tests/ui/suggestions/opaque-type-error.stderr
blob: 133ffb058739250011df2fe7c15174346a1213d9 (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
error[E0308]: `if` and `else` have incompatible types
  --> $DIR/opaque-type-error.rs:20:9
   |
LL |   fn thing_one() -> impl Future<Output = Result<(), ()>> {
   |                     ------------------------------------ the expected opaque type
...
LL |   fn thing_two() -> impl Future<Output = Result<(), ()>> {
   |                     ------------------------------------ the found opaque type
...
LL | /     if true {
LL | |         thing_one()
   | |         ----------- expected because of this
LL | |     } else {
LL | |         thing_two()
   | |         ^^^^^^^^^^^ expected opaque type, found a different opaque type
LL | |     }.await
   | |_____- `if` and `else` have incompatible types
   |
   = note: expected opaque type `impl Future<Output = Result<(), ()>>` (opaque type at <$DIR/opaque-type-error.rs:8:19>)
              found opaque type `impl Future<Output = Result<(), ()>>` (opaque type at <$DIR/opaque-type-error.rs:12:19>)
   = note: distinct uses of `impl Trait` result in different opaque types
help: consider `await`ing on both `Future`s
   |
LL ~         thing_one().await
LL |     } else {
LL ~         thing_two().await
   |

error: aborting due to previous error

For more information about this error, try `rustc --explain E0308`.