Rollup merge of #36103 - zjhmale:fix-E0089, r=jonathandturner

Update E0089 to new error format

Fixes #35227.
Part of #35233.

r? @jonathandturner
This commit is contained in:
Guillaume Gomez 2016-08-30 10:39:08 +02:00 committed by GitHub
commit 9a3cfe9129
2 changed files with 15 additions and 9 deletions

View File

@ -4427,14 +4427,18 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
// use inference variables instead of the provided types.
*segment = None;
} else if !(can_omit && types.len() == 0) && types.len() < required_len {
let qualifier =
if type_defs.len() != required_len { "at least " } else { "" };
span_err!(self.tcx.sess, span, E0089,
"too few type parameters provided: \
expected {}{}, found {}",
qualifier,
count(required_len),
count(types.len()));
let adjust = |len| if len > 1 { "parameters" } else { "parameter" };
let required_param_str = adjust(required_len);
let actual_param_str = adjust(types.len());
struct_span_err!(self.tcx.sess, span, E0089,
"too few type parameters provided: \
expected {} {}, found {} {}",
count(required_len),
required_param_str,
count(types.len()),
actual_param_str)
.span_label(span, &format!("expected {} type {}", required_len, required_param_str))
.emit();
}
if !bindings.is_empty() {

View File

@ -11,5 +11,7 @@
fn foo<T, U>() {}
fn main() {
foo::<f64>(); //~ ERROR E0089
foo::<f64>();
//~^ ERROR E0089
//~| NOTE expected 2 type parameters
}