@@ -1862,9 +1862,11 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
18621862 let mut bindings = smallvec ! [ ( PatBoundCtx :: Product , Default :: default ( ) ) ] ;
18631863 for ( index, ( pat, ty) ) in inputs. enumerate ( ) {
18641864 debug ! ( ?pat, ?ty) ;
1865- if let Some ( pat) = pat {
1866- self . resolve_pattern ( pat, PatternSource :: FnParam , & mut bindings) ;
1867- }
1865+ self . with_lifetime_rib ( LifetimeRibKind :: Elided ( LifetimeRes :: Infer ) , |this| {
1866+ if let Some ( pat) = pat {
1867+ this. resolve_pattern ( pat, PatternSource :: FnParam , & mut bindings) ;
1868+ }
1869+ } ) ;
18681870 self . visit_ty ( ty) ;
18691871
18701872 if let Some ( ref candidates) = self . lifetime_elision_candidates {
@@ -2834,10 +2836,13 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
28342836
28352837 fn resolve_params ( & mut self , params : & ' ast [ Param ] ) {
28362838 let mut bindings = smallvec ! [ ( PatBoundCtx :: Product , Default :: default ( ) ) ] ;
2837- for Param { pat, ty, .. } in params {
2838- self . resolve_pattern ( pat, PatternSource :: FnParam , & mut bindings) ;
2839+ self . with_lifetime_rib ( LifetimeRibKind :: Elided ( LifetimeRes :: Infer ) , |this| {
2840+ for Param { pat, .. } in params {
2841+ this. resolve_pattern ( pat, PatternSource :: FnParam , & mut bindings) ;
2842+ }
2843+ } ) ;
2844+ for Param { ty, .. } in params {
28392845 self . visit_ty ( ty) ;
2840- debug ! ( "(resolving function / closure) recorded parameter" ) ;
28412846 }
28422847 }
28432848
0 commit comments