error[E0308]: mismatched types --> $DIR/numeric-cast-2.rs:5:18 | LL | let x: u16 = foo(); | --- ^^^^^ expected `u16`, found `i32` | | | expected due to this | help: you can convert an `i32` to a `u16` and panic if the converted value doesn't fit | LL | let x: u16 = foo().try_into().unwrap(); | ++++++++++++++++++++ error[E0308]: mismatched types --> $DIR/numeric-cast-2.rs:7:18 | LL | let y: i64 = x + x; | --- ^^^^^ expected `i64`, found `u16` | | | expected due to this | help: you can convert a `u16` to an `i64` | LL | let y: i64 = (x + x).into(); | + ++++++++ error[E0308]: mismatched types --> $DIR/numeric-cast-2.rs:9:18 | LL | let z: i32 = x + x; | --- ^^^^^ expected `i32`, found `u16` | | | expected due to this | help: you can convert a `u16` to an `i32` | LL | let z: i32 = (x + x).into(); | + ++++++++ error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0308`.