From 4414f0d0e0e30f961b26a1f357fb78118be16cc7 Mon Sep 17 00:00:00 2001 From: Mazdak Farrokhzad Date: Thu, 19 Dec 2019 17:33:10 +0100 Subject: [PATCH] is_binding_pat: treat or-pat like tuple-pat --- src/librustc/middle/region.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/librustc/middle/region.rs b/src/librustc/middle/region.rs index b33101ad78b98..e050e5f894255 100644 --- a/src/librustc/middle/region.rs +++ b/src/librustc/middle/region.rs @@ -1173,6 +1173,7 @@ fn resolve_local<'tcx>( /// | VariantName(..., P&, ...) /// | [ ..., P&, ... ] /// | ( ..., P&, ... ) + /// | ... "|" P& "|" ... /// | box P& fn is_binding_pat(pat: &hir::Pat) -> bool { // Note that the code below looks for *explicit* refs only, that is, it won't @@ -1212,6 +1213,7 @@ fn resolve_local<'tcx>( pats3.iter().any(|p| is_binding_pat(&p)) } + PatKind::Or(ref subpats) | PatKind::TupleStruct(_, ref subpats, _) | PatKind::Tuple(ref subpats, _) => { subpats.iter().any(|p| is_binding_pat(&p)) @@ -1221,7 +1223,6 @@ fn resolve_local<'tcx>( is_binding_pat(&subpat) } - PatKind::Or(_) | PatKind::Ref(_, _) | PatKind::Binding(hir::BindingAnnotation::Unannotated, ..) | PatKind::Binding(hir::BindingAnnotation::Mutable, ..) |