about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorKevin Butler <haqkrs@gmail.com>2015-11-09 00:11:56 +0000
committerKevin Butler <haqkrs@gmail.com>2015-11-09 01:01:51 +0000
commit8bad0311904b61766862da572bc3d5e2adebdb36 (patch)
treef2e1dca297c5bba7683d4091bdee66e34980ca31 /src
parent5b4986fa5753b9662c8baab1c31b9b79bc84ca19 (diff)
downloadrust-8bad0311904b61766862da572bc3d5e2adebdb36.tar.gz
rust-8bad0311904b61766862da572bc3d5e2adebdb36.zip
librustc_typeck: give more information when supplied wrong number of type-params for methods
Diffstat (limited to 'src')
-rw-r--r--src/librustc_typeck/check/method/confirm.rs3
-rw-r--r--src/test/compile-fail/trait-test-2.rs3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/librustc_typeck/check/method/confirm.rs b/src/librustc_typeck/check/method/confirm.rs
index 72131627aa5..d038890b908 100644
--- a/src/librustc_typeck/check/method/confirm.rs
+++ b/src/librustc_typeck/check/method/confirm.rs
@@ -351,7 +351,8 @@ impl<'a,'tcx> ConfirmContext<'a,'tcx> {
                 method_types);
         } else if num_supplied_types != num_method_types {
             span_err!(self.tcx().sess, self.span, E0036,
-                "incorrect number of type parameters given for this method");
+                "incorrect number of type parameters given for this method: expected {}, found {}",
+                num_method_types, num_supplied_types);
             final_substs.types.replace(
                 subst::FnSpace,
                 vec![self.tcx().types.err; num_method_types]);
diff --git a/src/test/compile-fail/trait-test-2.rs b/src/test/compile-fail/trait-test-2.rs
index 13fe314fbcd..73be7cf0dc0 100644
--- a/src/test/compile-fail/trait-test-2.rs
+++ b/src/test/compile-fail/trait-test-2.rs
@@ -16,7 +16,8 @@ impl bar for u32 { fn dup(&self) -> u32 { *self } fn blah<X>(&self) {} }
 
 fn main() {
     10.dup::<i32>(); //~ ERROR does not take type parameters
-    10.blah::<i32, i32>(); //~ ERROR incorrect number of type parameters
+    10.blah::<i32, i32>();
+    //~^ ERROR incorrect number of type parameters given for this method: expected 1, found 2
     (box 10 as Box<bar>).dup();
     //~^ ERROR E0038
     //~| ERROR E0038