@@ -313,9 +313,10 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
313313 }
314314
315315 // 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 ;
317317 if !infer_lifetimes {
318318 if let Some ( span_late) = def. has_late_bound_regions {
319+ reported_late_bound_region_err = true ;
319320 let msg = "cannot specify lifetime arguments explicitly \
320321 if late bound lifetime parameters are present";
321322 let note = "the late bound lifetime parameter is introduced here" ;
@@ -326,7 +327,6 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
326327 let mut err = tcx. sess . struct_span_err ( span, msg) ;
327328 err. span_note ( span_late, note) ;
328329 err. emit ( ) ;
329- reported_late_bound_region_err = Some ( true ) ;
330330 } else {
331331 let mut multispan = MultiSpan :: from_span ( span) ;
332332 multispan. push_span_label ( span_late, note. to_string ( ) ) ;
@@ -336,7 +336,6 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
336336 multispan,
337337 |lint| lint. build ( msg) . emit ( ) ,
338338 ) ;
339- reported_late_bound_region_err = Some ( false ) ;
340339 }
341340 }
342341 }
@@ -405,10 +404,10 @@ impl<'o, 'tcx> dyn AstConv<'tcx> + 'o {
405404 true
406405 } ;
407406
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;
409408 let mut unexpected_spans = vec ! [ ] ;
410409
411- if reported_late_bound_region_err. is_none ( )
410+ if ! reported_late_bound_region_err
412411 && ( !infer_lifetimes || arg_counts. lifetimes > param_counts. lifetimes )
413412 {
414413 arg_count_mismatch |= check_kind_count (
0 commit comments