diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2021-09-15 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2021-09-15 15:42:15 +0200 |
| commit | ffdabc8be8c3514d97ff24de21e3e4f2d9441a16 (patch) | |
| tree | f9c6d60ae359a4a3e1386db53438f24718f5240a /compiler/rustc_resolve/src | |
| parent | e846f9c44f1e17cac66d7b75e2ca099c87a2dfcb (diff) | |
| download | rust-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.rs | 6 |
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) { |
