From 06176a14e32a3e6832aaf094b5aa225879e11c75 Mon Sep 17 00:00:00 2001 From: Neil Xu Date: Tue, 9 Aug 2016 22:42:17 -0700 Subject: [PATCH] Update error E0035 and E0036 Updated tests fixes typo Fix to account for plurals --- src/librustc_typeck/check/method/confirm.rs | 16 ++++++++++------ src/test/compile-fail/E0035.rs | 1 + src/test/compile-fail/E0036.rs | 1 + 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/librustc_typeck/check/method/confirm.rs b/src/librustc_typeck/check/method/confirm.rs index 9e0b38fd9fe51..72121caf290e1 100644 --- a/src/librustc_typeck/check/method/confirm.rs +++ b/src/librustc_typeck/check/method/confirm.rs @@ -312,13 +312,17 @@ impl<'a, 'gcx, 'tcx> ConfirmContext<'a, 'gcx, 'tcx> { if num_supplied_types > 0 && num_supplied_types != num_method_types { if num_method_types == 0 { - span_err!(self.tcx.sess, self.span, E0035, - "does not take type parameters"); + struct_span_err!(self.tcx.sess, self.span, E0035, + "does not take type parameters") + .span_label(self.span, &format!("called with unneeded type parameters")) + .emit(); } else { - span_err!(self.tcx.sess, self.span, E0036, - "incorrect number of type parameters given for this method: \ - expected {}, found {}", - num_method_types, num_supplied_types); + struct_span_err!(self.tcx.sess, self.span, E0036, + "incorrect number of type parameters given for this method: expected {}, found {}", + num_method_types, num_supplied_types) + .span_label(self.span, &format!("Passed {} type argument(s), expected {}", + num_supplied_types, num_method_types)) + .emit(); } supplied_method_types = vec![self.tcx.types.err; num_method_types]; } diff --git a/src/test/compile-fail/E0035.rs b/src/test/compile-fail/E0035.rs index 43f46e3578c20..f0068be06aba7 100644 --- a/src/test/compile-fail/E0035.rs +++ b/src/test/compile-fail/E0035.rs @@ -17,4 +17,5 @@ impl Test { fn main() { let x = Test; x.method::(); //~ ERROR E0035 + //~| NOTE called with unneeded type parameters } diff --git a/src/test/compile-fail/E0036.rs b/src/test/compile-fail/E0036.rs index 35fd6e8942fe7..816c6bbb22d8b 100644 --- a/src/test/compile-fail/E0036.rs +++ b/src/test/compile-fail/E0036.rs @@ -20,4 +20,5 @@ fn main() { let x = Test; let v = &[0]; x.method::(v); //~ ERROR E0036 + //~| NOTE Passed 2 type arguments, expected 1 }