error[E0308]: mismatched types --> $DIR/issue-84976.rs:15:16 | LL | length = { foo(&length) }; | ^^^^^^^^^^^^ expected `u32`, found `i32` | help: you can convert an `i32` to a `u32` and panic if the converted value doesn't fit | LL | length = { foo(&length).try_into().unwrap() }; | ++++++++++++++++++++ error[E0308]: mismatched types --> $DIR/issue-84976.rs:17:14 | LL | let mut length = 0; | - expected due to this value ... LL | length = foo(&length); | ^^^^^^^^^^^^ expected `u32`, found `i32` error[E0308]: mismatched types --> $DIR/issue-84976.rs:21:22 | LL | float_length = { bar(&float_length) }; | ^^^^^^^^^^^^^^^^^^ expected `f32`, found `f64` error[E0308]: mismatched types --> $DIR/issue-84976.rs:23:20 | LL | let mut float_length = 0.0; | --- expected due to this value ... LL | float_length = bar(&float_length); | ^^^^^^^^^^^^^^^^^^ expected `f32`, found `f64` error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0308`.