@@ -1862,9 +1862,11 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
1862
1862
let mut bindings = smallvec ! [ ( PatBoundCtx :: Product , Default :: default ( ) ) ] ;
1863
1863
for ( index, ( pat, ty) ) in inputs. enumerate ( ) {
1864
1864
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
+ } ) ;
1868
1870
self . visit_ty ( ty) ;
1869
1871
1870
1872
if let Some ( ref candidates) = self . lifetime_elision_candidates {
@@ -2834,10 +2836,13 @@ impl<'a: 'ast, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
2834
2836
2835
2837
fn resolve_params ( & mut self , params : & ' ast [ Param ] ) {
2836
2838
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 {
2839
2845
self . visit_ty ( ty) ;
2840
- debug ! ( "(resolving function / closure) recorded parameter" ) ;
2841
2846
}
2842
2847
}
2843
2848
0 commit comments