diff options
| author | zjhmale <zjhmale@gmail.com> | 2016-08-29 22:31:08 +0800 |
|---|---|---|
| committer | zjhmale <zjhmale@gmail.com> | 2016-08-30 01:36:58 +0800 |
| commit | 01083baec26591a0b48752b3003fd73f4e07631e (patch) | |
| tree | 0e5da0a7df02ec3ace6571776c6af18dfd8b45b7 /src | |
| parent | 86dde9bbda92c02c61282b5df5d38338a798ef3b (diff) | |
| download | rust-01083baec26591a0b48752b3003fd73f4e07631e.tar.gz rust-01083baec26591a0b48752b3003fd73f4e07631e.zip | |
Update E0089 to new error format
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_typeck/check/mod.rs | 20 | ||||
| -rw-r--r-- | src/test/compile-fail/E0089.rs | 4 |
2 files changed, 15 insertions, 9 deletions
diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index fb24971c425..a8463833099 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -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() { diff --git a/src/test/compile-fail/E0089.rs b/src/test/compile-fail/E0089.rs index 3b52f76bf09..9ce36523709 100644 --- a/src/test/compile-fail/E0089.rs +++ b/src/test/compile-fail/E0089.rs @@ -11,5 +11,7 @@ fn foo<T, U>() {} fn main() { - foo::<f64>(); //~ ERROR E0089 + foo::<f64>(); +//~^ ERROR E0089 +//~| NOTE expected 2 type parameters } |
