@@ -342,7 +342,8 @@ impl<'tcx> MirBorrowckCtxt<'_, 'tcx> {
342342 argument_index,
343343 ) ;
344344
345- self . highlight_if_we_can_match_hir_ty_from_argument ( fr, arg_ty, argument_index)
345+ self . get_argument_hir_ty_for_highlighting ( argument_index)
346+ . and_then ( |arg_hir_ty| self . highlight_if_we_can_match_hir_ty ( fr, arg_ty, arg_hir_ty) )
346347 . or_else ( || {
347348 // `highlight_if_we_cannot_match_hir_ty` needs to know the number we will give to
348349 // the anonymous region. If it succeeds, the `synthesize_region_name` call below
@@ -356,12 +357,10 @@ impl<'tcx> MirBorrowckCtxt<'_, 'tcx> {
356357 } )
357358 }
358359
359- fn highlight_if_we_can_match_hir_ty_from_argument (
360+ fn get_argument_hir_ty_for_highlighting (
360361 & self ,
361- needle_fr : RegionVid ,
362- argument_ty : Ty < ' tcx > ,
363362 argument_index : usize ,
364- ) -> Option < RegionNameHighlight > {
363+ ) -> Option < & hir :: Ty < ' tcx > > {
365364 let mir_hir_id = self . infcx . tcx . hir ( ) . as_local_hir_id ( self . mir_def_id ) ;
366365 let fn_decl = self . infcx . tcx . hir ( ) . fn_decl_by_hir_id ( mir_hir_id) ?;
367366 let argument_hir_ty: & hir:: Ty < ' _ > = fn_decl. inputs . get ( argument_index) ?;
@@ -373,7 +372,7 @@ impl<'tcx> MirBorrowckCtxt<'_, 'tcx> {
373372 // (`give_name_if_anonymous_region_appears_in_arguments`).
374373 hir:: TyKind :: Infer => None ,
375374
376- _ => self . highlight_if_we_can_match_hir_ty ( needle_fr , argument_ty , argument_hir_ty) ,
375+ _ => Some ( argument_hir_ty) ,
377376 }
378377 }
379378
0 commit comments