error[E0308]: mismatched types
  --> $DIR/type-mismatch-signature-deduction.rs:13:9
   |
LL |         5
   |         ^ expected enum `Result`, found integer
   |
   = note: expected type `Result<{integer}, _>`
              found type `{integer}`
note: return type inferred to be `Result<{integer}, _>` here
  --> $DIR/type-mismatch-signature-deduction.rs:8:20
   |
LL |             return Ok(6);
   |                    ^^^^^

error[E0271]: type mismatch resolving `<[generator@$DIR/type-mismatch-signature-deduction.rs:6:5: 14:6] as Generator>::Return == i32`
  --> $DIR/type-mismatch-signature-deduction.rs:5:13
   |
LL | fn foo() -> impl Generator<Return = i32> {
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `i32`, found enum `Result`
   |
   = note: expected type `i32`
              found enum `Result<{integer}, _>`

error: aborting due to 2 previous errors

Some errors have detailed explanations: E0271, E0308.
For more information about an error, try `rustc --explain E0271`.
