@@ -313,9 +313,10 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
313
313
}
314
314
315
315
// Prohibit explicit lifetime arguments if late-bound lifetime parameters are present.
316
- let mut reported_late_bound_region_err = None ;
316
+ let mut reported_late_bound_region_err = false ;
317
317
if !infer_lifetimes {
318
318
if let Some ( span_late) = def. has_late_bound_regions {
319
+ reported_late_bound_region_err = true ;
319
320
let msg = "cannot specify lifetime arguments explicitly \
320
321
if late bound lifetime parameters are present";
321
322
let note = "the late bound lifetime parameter is introduced here" ;
@@ -326,7 +327,6 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
326
327
let mut err = tcx. sess . struct_span_err ( span, msg) ;
327
328
err. span_note ( span_late, note) ;
328
329
err. emit ( ) ;
329
- reported_late_bound_region_err = Some ( true ) ;
330
330
} else {
331
331
let mut multispan = MultiSpan :: from_span ( span) ;
332
332
multispan. push_span_label ( span_late, note. to_string ( ) ) ;
@@ -336,7 +336,6 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
336
336
multispan,
337
337
|lint| lint. build ( msg) . emit ( ) ,
338
338
) ;
339
- reported_late_bound_region_err = Some ( false ) ;
340
339
}
341
340
}
342
341
}
@@ -405,10 +404,10 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
405
404
true
406
405
} ;
407
406
408
- let mut arg_count_mismatch = reported_late_bound_region_err. unwrap_or ( false ) ;
407
+ let mut arg_count_mismatch = reported_late_bound_region_err;
409
408
let mut unexpected_spans = vec ! [ ] ;
410
409
411
- if reported_late_bound_region_err. is_none ( )
410
+ if ! reported_late_bound_region_err
412
411
&& ( !infer_lifetimes || arg_counts. lifetimes > param_counts. lifetimes )
413
412
{
414
413
arg_count_mismatch |= check_kind_count (
0 commit comments