Skip to content

Commit 9a3cfe9

Browse files
Rollup merge of #36103 - zjhmale:fix-E0089, r=jonathandturner
Update E0089 to new error format Fixes #35227. Part of #35233. r? @jonathandturner
2 parents eb33044 + 01083ba commit 9a3cfe9

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

src/librustc_typeck/check/mod.rs

+12-8
Original file line numberDiff line numberDiff line change
@@ -4427,14 +4427,18 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
44274427
// use inference variables instead of the provided types.
44284428
*segment = None;
44294429
} else if !(can_omit && types.len() == 0) && types.len() < required_len {
4430-
let qualifier =
4431-
if type_defs.len() != required_len { "at least " } else { "" };
4432-
span_err!(self.tcx.sess, span, E0089,
4433-
"too few type parameters provided: \
4434-
expected {}{}, found {}",
4435-
qualifier,
4436-
count(required_len),
4437-
count(types.len()));
4430+
let adjust = |len| if len > 1 { "parameters" } else { "parameter" };
4431+
let required_param_str = adjust(required_len);
4432+
let actual_param_str = adjust(types.len());
4433+
struct_span_err!(self.tcx.sess, span, E0089,
4434+
"too few type parameters provided: \
4435+
expected {} {}, found {} {}",
4436+
count(required_len),
4437+
required_param_str,
4438+
count(types.len()),
4439+
actual_param_str)
4440+
.span_label(span, &format!("expected {} type {}", required_len, required_param_str))
4441+
.emit();
44384442
}
44394443

44404444
if !bindings.is_empty() {

src/test/compile-fail/E0089.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,7 @@
1111
fn foo<T, U>() {}
1212

1313
fn main() {
14-
foo::<f64>(); //~ ERROR E0089
14+
foo::<f64>();
15+
//~^ ERROR E0089
16+
//~| NOTE expected 2 type parameters
1517
}

0 commit comments

Comments
 (0)