diff options
| author | Guillaume Gomez <guillaume1.gomez@gmail.com> | 2016-08-30 10:39:08 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-08-30 10:39:08 +0200 |
| commit | 9a3cfe91291c78c8c1e3fc75e274693b523dece6 (patch) | |
| tree | 432620c658bf420428f46aefaa2a964f44eae618 | |
| parent | eb3304444951f6480a0e014ae57cc47eb61b1239 (diff) | |
| parent | 01083baec26591a0b48752b3003fd73f4e07631e (diff) | |
| download | rust-9a3cfe91291c78c8c1e3fc75e274693b523dece6.tar.gz rust-9a3cfe91291c78c8c1e3fc75e274693b523dece6.zip | |
Rollup merge of #36103 - zjhmale:fix-E0089, r=jonathandturner
Update E0089 to new error format Fixes #35227. Part of #35233. r? @jonathandturner
| -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 } |
