The manual says that the precedence of `as` operator is lower than that of the binary `*` operator. Thus I would not expect the following to compile (but it does):
let a: u16 = 1; let b: u32 = 2; let r = a * b as u16; Since multiplication is supposed to have precedence over casting, I would expect the last line to be equivalent to: let r = (a * b) as u16; ...which doesn't compile because `a` and `b` have different types. Here the compiler clearly first converts `b` to u16 and then multiplies `a` with the result of that conversion: let r = a * b as u16; ...but that should happen only if the `as` operator has a higher precedence than the binary `*` operator. _______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev