diff options
| author | Omer Sheikh <ojsheikh@gmail.com> | 2016-08-05 20:54:04 +0500 |
|---|---|---|
| committer | Omer Sheikh <ojsheikh@gmail.com> | 2016-08-05 21:02:27 +0500 |
| commit | 3575812e449e8a174b67023ee0879f573f8a6d1f (patch) | |
| tree | b8eb1f2223afaae2d4c843d81e4443b08ee31d81 /src | |
| parent | 4c02363852e6ce41cf2da1b43a32cb7780a9b067 (diff) | |
| download | rust-3575812e449e8a174b67023ee0879f573f8a6d1f.tar.gz rust-3575812e449e8a174b67023ee0879f573f8a6d1f.zip | |
Update E0107 message to new format
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_typeck/astconv.rs | 22 | ||||
| -rw-r--r-- | src/test/compile-fail/E0107.rs | 8 |
2 files changed, 25 insertions, 5 deletions
diff --git a/src/librustc_typeck/astconv.rs b/src/librustc_typeck/astconv.rs index 3b2bca4ab39..e3f4f82b0ef 100644 --- a/src/librustc_typeck/astconv.rs +++ b/src/librustc_typeck/astconv.rs @@ -2266,9 +2266,25 @@ fn check_type_argument_count(tcx: TyCtxt, span: Span, supplied: usize, } fn report_lifetime_number_error(tcx: TyCtxt, span: Span, number: usize, expected: usize) { - span_err!(tcx.sess, span, E0107, - "wrong number of lifetime parameters: expected {}, found {}", - expected, number); + let label = if number < expected { + if expected == 1 { + format!("expected {} lifetime parameter", expected) + } else { + format!("expected {} lifetime parameters", expected) + } + } else { + let additional = number - expected; + if additional == 1 { + "unexpected lifetime parameter".to_string() + } else { + format!("{} unexpected lifetime parameters", additional) + } + }; + struct_span_err!(tcx.sess, span, E0107, + "wrong number of lifetime parameters: expected {}, found {}", + expected, number) + .span_label(span, &label) + .emit(); } // A helper struct for conveniently grouping a set of bounds which we pass to diff --git a/src/test/compile-fail/E0107.rs b/src/test/compile-fail/E0107.rs index d27b70865bb..6a5456c0109 100644 --- a/src/test/compile-fail/E0107.rs +++ b/src/test/compile-fail/E0107.rs @@ -17,8 +17,12 @@ enum Bar { } struct Baz<'a> { - foo: Foo, //~ ERROR E0107 - bar: Bar<'a>, //~ ERROR E0107 + foo: Foo, + //~^ ERROR E0107 + //~| expected 1 lifetime parameter + bar: Bar<'a>, + //~^ ERROR E0107 + //~| unexpected lifetime parameter } fn main() { |
