error[E0308]: mismatched types --> $DIR/tail-typeck.rs:3:26 | LL | fn f() -> isize { return g(); } | ----- ^^^ expected `isize`, found `usize` | | | expected `isize` because of return type | help: you can convert a `usize` to an `isize` and panic if the converted value doesn't fit | LL | fn f() -> isize { return g().try_into().unwrap(); } | ++++++++++++++++++++ error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.