Skip to content

Commit 5ead973

Browse files
author
Jonathan Turner
committed
Add back in previous logic and remove span shrinking
1 parent 74e5b7d commit 5ead973

File tree

1 file changed

+8
-1
lines changed
  • src/librustc_typeck/check

1 file changed

+8
-1
lines changed

src/librustc_typeck/check/mod.rs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4565,7 +4565,6 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
45654565
// Check provided lifetime parameters.
45664566
let lifetime_defs = segment.map_or(&[][..], |(_, generics)| &generics.regions);
45674567
if lifetimes.len() > lifetime_defs.len() {
4568-
let span = lifetimes[lifetime_defs.len()].span;
45694568
struct_span_err!(self.tcx.sess, span, E0088,
45704569
"too many lifetime parameters provided: \
45714570
expected {}, found {}",
@@ -4574,6 +4573,14 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
45744573
.span_label(span, &format!("unexpected lifetime parameter{}",
45754574
match lifetimes.len() { 1 => "", _ => "s" }))
45764575
.emit();
4576+
} else if lifetimes.len() > 0 && lifetimes.len() < lifetime_defs.len() {
4577+
struct_span_err!(self.tcx.sess, span, E0090,
4578+
"too few lifetime parameters provided: \
4579+
expected {}, found {}",
4580+
count(lifetime_defs.len()),
4581+
count(lifetimes.len()))
4582+
.span_label(span, &format!("too few lifetime parameters"))
4583+
.emit();
45774584
}
45784585

45794586
// The case where there is not enough lifetime parameters is not checked,

0 commit comments

Comments
 (0)