@@ -1853,9 +1853,11 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
1853
1853
let mut bindings = smallvec ! [ ( PatBoundCtx :: Product , Default :: default ( ) ) ] ;
1854
1854
for ( index, ( pat, ty) ) in inputs. enumerate ( ) {
1855
1855
debug ! ( ?pat, ?ty) ;
1856
- if let Some ( pat) = pat {
1857
- self . resolve_pattern ( pat, PatternSource :: FnParam , & mut bindings) ;
1858
- }
1856
+ self . with_lifetime_rib ( LifetimeRibKind :: Elided ( LifetimeRes :: Infer ) , |this| {
1857
+ if let Some ( pat) = pat {
1858
+ this. resolve_pattern ( pat, PatternSource :: FnParam , & mut bindings) ;
1859
+ }
1860
+ } ) ;
1859
1861
self . visit_ty ( ty) ;
1860
1862
1861
1863
if let Some ( ref candidates) = self . lifetime_elision_candidates {
@@ -2827,10 +2829,13 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
2827
2829
2828
2830
fn resolve_params ( & mut self , params : & ' ast [ Param ] ) {
2829
2831
let mut bindings = smallvec ! [ ( PatBoundCtx :: Product , Default :: default ( ) ) ] ;
2830
- for Param { pat, ty, .. } in params {
2831
- self . resolve_pattern ( pat, PatternSource :: FnParam , & mut bindings) ;
2832
+ self . with_lifetime_rib ( LifetimeRibKind :: Elided ( LifetimeRes :: Infer ) , |this| {
2833
+ for Param { pat, .. } in params {
2834
+ this. resolve_pattern ( pat, PatternSource :: FnParam , & mut bindings) ;
2835
+ }
2836
+ } ) ;
2837
+ for Param { ty, .. } in params {
2832
2838
self . visit_ty ( ty) ;
2833
- debug ! ( "(resolving function / closure) recorded parameter" ) ;
2834
2839
}
2835
2840
}
2836
2841
0 commit comments