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`.