diff options
author | Dawer <[email protected]> | 2021-05-06 09:15:40 +0100 |
---|---|---|
committer | Dawer <[email protected]> | 2021-05-31 20:03:46 +0100 |
commit | de6f430140a49e3ecf34dcb914326bb5b9789772 (patch) | |
tree | 1f493d2e613d3aaa03ae2f3b70b563937f476378 /crates/hir_ty/src/diagnostics/pattern/usefulness.rs | |
parent | 975109051caf05de6d166779589e299d9aca9cd5 (diff) |
Fix panics on pattern_arena.borrow with ugly cloning
Diffstat (limited to 'crates/hir_ty/src/diagnostics/pattern/usefulness.rs')
-rw-r--r-- | crates/hir_ty/src/diagnostics/pattern/usefulness.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/crates/hir_ty/src/diagnostics/pattern/usefulness.rs b/crates/hir_ty/src/diagnostics/pattern/usefulness.rs index 28b9e71f8..3bfb7afed 100644 --- a/crates/hir_ty/src/diagnostics/pattern/usefulness.rs +++ b/crates/hir_ty/src/diagnostics/pattern/usefulness.rs | |||
@@ -94,12 +94,12 @@ impl PatIdExt for PatId { | |||
94 | fn expand_or_pat(self, cx: &MatchCheckCtx<'_>) -> Vec<Self> { | 94 | fn expand_or_pat(self, cx: &MatchCheckCtx<'_>) -> Vec<Self> { |
95 | fn expand(pat: PatId, vec: &mut Vec<PatId>, mut pat_arena: &mut PatternArena) { | 95 | fn expand(pat: PatId, vec: &mut Vec<PatId>, mut pat_arena: &mut PatternArena) { |
96 | if let PatKind::Or { pats } = pat_arena[pat].kind.as_ref() { | 96 | if let PatKind::Or { pats } = pat_arena[pat].kind.as_ref() { |
97 | // for pat in pats { | 97 | let pats = pats.clone(); |
98 | // // TODO(iDawer): Ugh, I want to go back to references (PatId -> &Pat) | 98 | for pat in pats { |
99 | // let pat = pat_arena.alloc(pat.clone()); | 99 | // TODO(iDawer): Ugh, I want to go back to references (PatId -> &Pat) |
100 | // expand(pat, vec, pat_arena); | 100 | let pat = pat_arena.alloc(pat.clone()); |
101 | // } | 101 | expand(pat, vec, pat_arena); |
102 | todo!() | 102 | } |
103 | } else { | 103 | } else { |
104 | vec.push(pat) | 104 | vec.push(pat) |
105 | } | 105 | } |