error[E0308]: mismatched types
  --> $DIR/coercion-missing-tail-expected-type.rs:4:24
   |
LL | fn plus_one(x: i32) -> i32 {
   |    --------            ^^^ expected `i32`, found `()`
   |    |
   |    implicitly returns `()` as its body has no tail or `return` expression
LL |     x + 1;
   |          - help: consider removing this semicolon

error[E0308]: mismatched types
  --> $DIR/coercion-missing-tail-expected-type.rs:8:13
   |
LL | fn foo() -> Result<u8, u64> {
   |    ---      ^^^^^^^^^^^^^^^ expected enum `std::result::Result`, found `()`
   |    |
   |    implicitly returns `()` as its body has no tail or `return` expression
LL |     Ok(1);
   |          - help: consider removing this semicolon
   |
   = note:   expected enum `std::result::Result<u8, u64>`
           found unit type `()`

error: aborting due to 2 previous errors

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