about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_typeck/check/method/confirm.rs16
-rw-r--r--src/test/compile-fail/E0036.rs1
2 files changed, 14 insertions, 3 deletions
diff --git a/src/librustc_typeck/check/method/confirm.rs b/src/librustc_typeck/check/method/confirm.rs
index 22e4018b24f..e81bca3c171 100644
--- a/src/librustc_typeck/check/method/confirm.rs
+++ b/src/librustc_typeck/check/method/confirm.rs
@@ -314,13 +314,23 @@ impl<'a, 'gcx, 'tcx> ConfirmContext<'a, 'gcx, 'tcx> {
             if num_method_types == 0 {
                 struct_span_err!(self.tcx.sess, self.span, E0035,
                                  "does not take type parameters")
-                    .span_label(self.span, "called with unneeded type parameters")
+                    .span_label(self.span, &"called with unneeded type parameters")
                     .emit();
             } else {
-                span_err!(self.tcx.sess, self.span, E0036,
+                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);
+                    num_method_types, num_supplied_types)
+                    .span_label(self.span,
+                                &format!("Passed {} type argument{}, expected {}",
+                                         num_supplied_types,
+                                         if num_supplied_types != 1 {
+                                            "s"
+                                         } else {
+                                            ""
+                                         },
+                                         num_method_types))
+                    .emit();
             }
             supplied_method_types = vec![self.tcx.types.err; num_method_types];
         }
diff --git a/src/test/compile-fail/E0036.rs b/src/test/compile-fail/E0036.rs
index 35fd6e8942f..ecb6dac66f2 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::<i32, i32>(v); //~ ERROR E0036
+                             //~| NOTE Passed 2 type arguments, expected 1
 }