From 1d08b1b0421cc287218196e5fdd144b3e82a482a Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Thu, 18 Jun 2020 13:10:22 +0200 Subject: [PATCH] Clean up E0689 explanation --- src/librustc_error_codes/error_codes/E0689.md | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/librustc_error_codes/error_codes/E0689.md b/src/librustc_error_codes/error_codes/E0689.md index 26c2c15ccfa..a680a204211 100644 --- a/src/librustc_error_codes/error_codes/E0689.md +++ b/src/librustc_error_codes/error_codes/E0689.md @@ -1,13 +1,16 @@ +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: - -```compile_fail,E0689 -2.0.neg(); -``` - -and on numeric bindings without an identified concrete type: +The error happens on numeric literals and on numeric bindings without an +identified concrete type: ```compile_fail,E0689 let x = 2.0; @@ -19,8 +22,8 @@ Because of this, you must give the numeric literal or binding a type: ``` use std::ops::Neg; -let _ = 2.0_f32.neg(); +let _ = 2.0_f32.neg(); // ok! let x: f32 = 2.0; -let _ = x.neg(); -let _ = (2.0 as f32).neg(); +let _ = x.neg(); // ok! +let _ = (2.0 as f32).neg(); // ok! ```