]> git.lizzy.rs Git - rust.git/commitdiff
Free late-bound lifetimes in closures as well
authorMichael Goulet <michael@errs.io>
Sun, 30 Oct 2022 20:51:01 +0000 (20:51 +0000)
committerMichael Goulet <michael@errs.io>
Mon, 31 Oct 2022 01:47:19 +0000 (01:47 +0000)
compiler/rustc_hir_analysis/src/collect/lifetimes.rs

index 3f263a6de24ead04dc1cbaadf4d2a808d57bac12..3d07f3fbc674dbb3d32ba541a95cf0c5c0309698 100644 (file)
@@ -1377,11 +1377,12 @@ fn resolve_lifetime_ref(
             } else if let Some(body_id) = outermost_body {
                 let fn_id = self.tcx.hir().body_owner(body_id);
                 match self.tcx.hir().get(fn_id) {
-                    Node::Item(&hir::Item { kind: hir::ItemKind::Fn(..), .. })
-                    | Node::TraitItem(&hir::TraitItem {
+                    Node::Item(hir::Item { kind: hir::ItemKind::Fn(..), .. })
+                    | Node::TraitItem(hir::TraitItem {
                         kind: hir::TraitItemKind::Fn(..), ..
                     })
-                    | Node::ImplItem(&hir::ImplItem { kind: hir::ImplItemKind::Fn(..), .. }) => {
+                    | Node::ImplItem(hir::ImplItem { kind: hir::ImplItemKind::Fn(..), .. })
+                    | Node::Expr(hir::Expr { kind: hir::ExprKind::Closure(..), .. }) => {
                         let scope = self.tcx.hir().local_def_id(fn_id);
                         def = Region::Free(scope.to_def_id(), def.id().unwrap());
                     }