From 75e18d485d7fca49d934ac0053b569a9bd591348 Mon Sep 17 00:00:00 2001 From: rvcas Date: Tue, 1 Aug 2023 16:06:05 -0400 Subject: [PATCH] fix: redundant might be wildcard which doesn't match technically --- crates/aiken-lang/src/tipo/environment.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/crates/aiken-lang/src/tipo/environment.rs b/crates/aiken-lang/src/tipo/environment.rs index 4c7f5d38..f15b9ecb 100644 --- a/crates/aiken-lang/src/tipo/environment.rs +++ b/crates/aiken-lang/src/tipo/environment.rs @@ -1451,18 +1451,16 @@ impl<'a> Environment<'a> { if matrix.is_useful(&pattern_stack) { matrix.push(pattern_stack); } else { - let index = matrix + let original = matrix .flatten() .into_iter() .enumerate() .find(|(_, p)| p == pattern_stack.head()) - .map(|(i, _)| i) - .expect("should find index"); - - let typed_pattern = unchecked_patterns[index]; + .and_then(|(index, _)| unchecked_patterns.get(index)) + .map(|typed_pattern| typed_pattern.location()); return Err(Error::RedundantMatchClause { - original: typed_pattern.location(), + original, redundant: unchecked_pattern.location(), }); }