error[E0308]: mismatched types --> $DIR/liveness-return-last-stmt-semi.rs:4:41 | LL | macro_rules! test { () => { fn foo() -> i32 { 1; } } } | --- ^^^ - help: consider removing this semicolon | | | | | expected i32, found () | this function's body doesn't return ... LL | test!(); | -------- in this macro invocation | = note: expected type `i32` found type `()` error[E0308]: mismatched types --> $DIR/liveness-return-last-stmt-semi.rs:7:19 | LL | fn no_return() -> i32 {} | --------- ^^^ expected i32, found () | | | this function's body doesn't return | = note: expected type `i32` found type `()` error[E0308]: mismatched types --> $DIR/liveness-return-last-stmt-semi.rs:9:19 | LL | fn bar(x: u32) -> u32 { | --- ^^^ expected u32, found () | | | this function's body doesn't return LL | x * 2; | - help: consider removing this semicolon | = note: expected type `u32` found type `()` error[E0308]: mismatched types --> $DIR/liveness-return-last-stmt-semi.rs:13:19 | LL | fn baz(x: u64) -> u32 { | --- ^^^ expected u32, found () | | | this function's body doesn't return | = note: expected type `u32` found type `()` error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0308`.