All arithmetic operators lower to trait-method calls after type checking. Writing a + b where A does not implement Add is a type error that names the missing trait, not the operator.
Integer arithmetic uses trap-on-overflow semantics in app and lib profiles. Use named methods for explicit control:
Force the type of a literal where inference cannot propagate from a binding annotation.
Suffix
Type
42i8
i8
42i16
i16
42i32
i32
42i64
i64 (default for integer literals)
42u8
u8
42u16
u16
42u32
u32
42u64
u64
1.0f32
f32
1.0f64
f64 (default for float literals)
Unsuffixed integer literals default to i64; unsuffixed float literals default to f64. In a binary expression, an unsuffixed literal may be promoted to the type of its suffixed sibling.