I believe that this only works for literal type inference, i.e.:
let a: f32 = 0.0;
let b: f64 = 0.0;
let this_works: f32 = &0.0 + 0.0;
let this_doesnt: f32 = &a + b;
And that's a good thing IMO, implicit promotion rules in C are one of my least favourite features of the language. It makes it so easy to write seemingly innocuous code that's completely broken.