summary refs log tree commit diff
path: root/compiler/rustc_resolve/src
diff options
context:
space:
mode:
authorTomasz Miąsko <tomasz.miasko@gmail.com>2021-09-15 00:00:00 +0000
committerTomasz Miąsko <tomasz.miasko@gmail.com>2021-09-15 15:42:15 +0200
commitffdabc8be8c3514d97ff24de21e3e4f2d9441a16 (patch)
treef9c6d60ae359a4a3e1386db53438f24718f5240a /compiler/rustc_resolve/src
parente846f9c44f1e17cac66d7b75e2ca099c87a2dfcb (diff)
downloadrust-ffdabc8be8c3514d97ff24de21e3e4f2d9441a16.tar.gz
rust-ffdabc8be8c3514d97ff24de21e3e4f2d9441a16.zip
Check for shadowing issues involving block labels
Diffstat (limited to 'compiler/rustc_resolve/src')
-rw-r--r--compiler/rustc_resolve/src/late/lifetimes.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/compiler/rustc_resolve/src/late/lifetimes.rs b/compiler/rustc_resolve/src/late/lifetimes.rs
index 4c1d537d55f..548c734b865 100644
--- a/compiler/rustc_resolve/src/late/lifetimes.rs
+++ b/compiler/rustc_resolve/src/late/lifetimes.rs
@@ -1652,7 +1652,11 @@ fn extract_labels(ctxt: &mut LifetimeContext<'_, '_>, body: &hir::Body<'_>) {
     }
 
     fn expression_label(ex: &hir::Expr<'_>) -> Option<Ident> {
-        if let hir::ExprKind::Loop(_, Some(label), ..) = ex.kind { Some(label.ident) } else { None }
+        match ex.kind {
+            hir::ExprKind::Loop(_, Some(label), ..) => Some(label.ident),
+            hir::ExprKind::Block(_, Some(label)) => Some(label.ident),
+            _ => None,
+        }
     }
 
     fn check_if_label_shadows_lifetime(tcx: TyCtxt<'_>, mut scope: ScopeRef<'_>, label: Ident) {