This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +9
-10
lines changed Expand file tree Collapse file tree 1 file changed +9
-10
lines changed Original file line number Diff line number Diff line change @@ -460,13 +460,19 @@ fn check_fn_args<'cx, 'tcx: 'cx>(
460460 }
461461 None
462462 } ) {
463- if !lifetime. is_anonymous ( )
463+ if let LifetimeName :: Param ( param_def_id) = lifetime. res
464+ && !lifetime. is_anonymous ( )
464465 && fn_sig
465466 . output ( )
466467 . walk ( )
467468 . filter_map ( |arg| {
468469 arg. as_region ( ) . and_then ( |lifetime| match lifetime. kind ( ) {
469- ty:: ReEarlyParam ( r) => Some ( r. def_id ) ,
470+ ty:: ReEarlyParam ( r) => Some (
471+ cx. tcx
472+ . generics_of ( cx. tcx . parent ( param_def_id. to_def_id ( ) ) )
473+ . region_param ( r, cx. tcx )
474+ . def_id ,
475+ ) ,
470476 ty:: ReBound ( _, r) => r. kind . get_id ( ) ,
471477 ty:: ReLateParam ( r) => r. bound_region . get_id ( ) ,
472478 ty:: ReStatic
@@ -476,14 +482,7 @@ fn check_fn_args<'cx, 'tcx: 'cx>(
476482 | ty:: ReError ( _) => None ,
477483 } )
478484 } )
479- . any ( |def_id| {
480- matches ! (
481- lifetime. res,
482- LifetimeName :: Param ( param_def_id) if def_id
483- . as_local( )
484- . is_some_and( |def_id| def_id == param_def_id) ,
485- )
486- } )
485+ . any ( |def_id| def_id. as_local ( ) . is_some_and ( |def_id| def_id == param_def_id) )
487486 {
488487 // `&Cow<'a, T>` when the return type uses 'a is okay
489488 return None ;
You can’t perform that action at this time.
0 commit comments