Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/inhabitedness.rs')
-rw-r--r--crates/hir-ty/src/inhabitedness.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/crates/hir-ty/src/inhabitedness.rs b/crates/hir-ty/src/inhabitedness.rs
index 402e9ce969..74d66123ea 100644
--- a/crates/hir-ty/src/inhabitedness.rs
+++ b/crates/hir-ty/src/inhabitedness.rs
@@ -1,7 +1,9 @@
//! Type inhabitedness logic.
use std::ops::ControlFlow::{self, Break, Continue};
-use hir_def::{AdtId, EnumVariantId, ModuleId, VariantId, visibility::Visibility};
+use hir_def::{
+ AdtId, EnumVariantId, ModuleId, VariantId, signatures::VariantFields, visibility::Visibility,
+};
use rustc_hash::FxHashSet;
use rustc_type_ir::{
TypeSuperVisitable, TypeVisitable, TypeVisitor,
@@ -151,7 +153,11 @@ impl<'a, 'db> UninhabitedFrom<'a, 'db> {
let is_enum = matches!(variant, VariantId::EnumVariantId(..));
let field_tys = self.db().field_types(variant);
- let field_vis = if is_enum { None } else { Some(self.db().field_visibilities(variant)) };
+ let field_vis = if is_enum {
+ None
+ } else {
+ Some(VariantFields::field_visibilities(self.db(), variant))
+ };
for (fid, _) in fields.iter() {
self.visit_field(field_vis.as_ref().map(|it| it[fid]), &field_tys[fid].get(), subst)?;