Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/mir/lower/pattern_matching.rs')
-rw-r--r--crates/hir-ty/src/mir/lower/pattern_matching.rs24
1 files changed, 10 insertions, 14 deletions
diff --git a/crates/hir-ty/src/mir/lower/pattern_matching.rs b/crates/hir-ty/src/mir/lower/pattern_matching.rs
index 98c2e7c63b..bbb513b24c 100644
--- a/crates/hir-ty/src/mir/lower/pattern_matching.rs
+++ b/crates/hir-ty/src/mir/lower/pattern_matching.rs
@@ -524,22 +524,9 @@ impl MirLowerCtx<'_> {
);
current = next;
}
- let enum_data = self.db.enum_data(v.parent);
self.pattern_matching_variant_fields(
shape,
- &enum_data.variants[v.local_id].variant_data,
- variant,
- current,
- current_else,
- &cond_place,
- mode,
- )?
- }
- VariantId::StructId(s) => {
- let struct_data = self.db.struct_data(s);
- self.pattern_matching_variant_fields(
- shape,
- &struct_data.variant_data,
+ &self.db.enum_variant_data(v).variant_data,
variant,
current,
current_else,
@@ -547,6 +534,15 @@ impl MirLowerCtx<'_> {
mode,
)?
}
+ VariantId::StructId(s) => self.pattern_matching_variant_fields(
+ shape,
+ &self.db.struct_data(s).variant_data,
+ variant,
+ current,
+ current_else,
+ &cond_place,
+ mode,
+ )?,
VariantId::UnionId(_) => {
return Err(MirLowerError::TypeError("pattern matching on union"))
}