error[E0308]: mismatched types
  --> $DIR/stmts-as-exp-105431.rs:11:5
   |
LL | fn test_if() -> i32 {
   |                 --- expected `i32` because of return type
...
LL |     x
   |     ^ expected `i32`, found `()`
   |
help: remove this semicolon to return this value
   |
LL -         3;
LL +         3
   |
help: remove this semicolon to return this value
   |
LL -         4;
LL +         4
   |

error[E0308]: mismatched types
  --> $DIR/stmts-as-exp-105431.rs:15:13
   |
LL |       if true {
   |  _____________^
LL | |         eprintln!("hello");
LL | |         3;
   | |          - help: remove this semicolon to return this value
LL | |     }
   | |_____^ expected `i32`, found `()`

error[E0308]: mismatched types
  --> $DIR/stmts-as-exp-105431.rs:19:10
   |
LL |       else {
   |  __________^
LL | |         4;
   | |          - help: remove this semicolon to return this value
LL | |     }
   | |_____^ expected `i32`, found `()`

error[E0308]: mismatched types
  --> $DIR/stmts-as-exp-105431.rs:30:5
   |
LL | fn test_match() -> i32 {
   |                    --- expected `i32` because of return type
...
LL |     res
   |     ^^^ expected `i32`, found `()`
   |
help: remove this semicolon to return this value
   |
LL -         1 => { 1; }
LL +         1 => { 1 }
   |
help: remove this semicolon to return this value
   |
LL -         _ => { 2; }
LL +         _ => { 2 }
   |

error[E0308]: mismatched types
  --> $DIR/stmts-as-exp-105431.rs:36:14
   |
LL |         1 => { 1; }
   |              ^^^-^^
   |              |  |
   |              |  help: remove this semicolon to return this value
   |              expected `i32`, found `()`

error[E0308]: mismatched types
  --> $DIR/stmts-as-exp-105431.rs:37:14
   |
LL |         _ => { 2; }
   |              ^^^-^^
   |              |  |
   |              |  help: remove this semicolon to return this value
   |              expected `i32`, found `()`

error[E0308]: `match` arms have incompatible types
  --> $DIR/stmts-as-exp-105431.rs:45:16
   |
LL |       let res = match v {
   |  _______________-
LL | |         1 => { if 1 < 2 { 1 } else { 2 } }
   | |                ------------------------- this is found to be of type `{integer}`
LL | |         _ => { 2; }
   | |                ^-
   | |                ||
   | |                |help: consider removing this semicolon
   | |                expected integer, found `()`
LL | |     };
   | |_____- `match` arms have incompatible types

error[E0308]: mismatched types
  --> $DIR/stmts-as-exp-105431.rs:59:5
   |
LL | fn test_if_match_mixed() -> i32 {
   |                             --- expected `i32` because of return type
...
LL |     x
   |     ^ expected `i32`, found `()`
   |
help: remove this semicolon to return this value
   |
LL -         3;
LL +         3
   |
help: remove this semicolon to return this value
   |
LL -         };
LL +         }
   |

error[E0308]: mismatched types
  --> $DIR/stmts-as-exp-105431.rs:72:5
   |
LL | fn test_if_match_mixed_failed() -> i32 {
   |                                    --- expected `i32` because of return type
LL |     let x = if true {
LL |         3;
   |          - help: remove this semicolon to return this value
...
LL |     x
   |     ^ expected `i32`, found `()`

error: aborting due to 9 previous errors

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