| A method was called on an ambiguous numeric type. |
| |
| Erroneous code example: |
| |
| ```compile_fail,E0689 |
| 2.0.neg(); // error! |
| ``` |
| |
| This error indicates that the numeric value for the method being passed exists |
| but the type of the numeric value or binding could not be identified. |
| |
| The error happens on numeric literals and on numeric bindings without an |
| identified concrete type: |
| |
| ```compile_fail,E0689 |
| let x = 2.0; |
| x.neg(); // same error as above |
| ``` |
| |
| Because of this, you must give the numeric literal or binding a type: |
| |
| ``` |
| use std::ops::Neg; |
| |
| let _ = 2.0_f32.neg(); // ok! |
| let x: f32 = 2.0; |
| let _ = x.neg(); // ok! |
| let _ = (2.0 as f32).neg(); // ok! |
| ``` |