diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index 4bb36aa639c..f11bb3175da 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -4372,14 +4372,17 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { if i < type_count { substs.types.push(space, t); } else if i == type_count { - span_err!(self.tcx.sess, typ.span, E0087, - "too many type parameters provided: \ - expected at most {} parameter{}, \ - found {} parameter{}", - type_count, - if type_count == 1 {""} else {"s"}, - data.types.len(), - if data.types.len() == 1 {""} else {"s"}); + struct_span_err!(self.tcx.sess, typ.span, E0087, + "too many type parameters provided: \ + expected at most {} parameter{}, \ + found {} parameter{}", + type_count, + if type_count == 1 {""} else {"s"}, + data.types.len(), + if data.types.len() == 1 {""} else {"s"}) + .span_label(typ.span , &format!("expected {} parameter{}", + type_count, + if type_count == 1 {""} else {"s"})).emit(); substs.types.truncate(space, 0); break; } diff --git a/src/test/compile-fail/E0087.rs b/src/test/compile-fail/E0087.rs index ec559fc8389..63115f093c3 100644 --- a/src/test/compile-fail/E0087.rs +++ b/src/test/compile-fail/E0087.rs @@ -12,4 +12,5 @@ fn foo() {} fn main() { foo::(); //~ ERROR E0087 + //~^ NOTE expected }