Rust why does operator applied to a reference coerce, but let with an explicit type does not? Consider the following code: