Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/layout/adt.rs')
-rw-r--r--crates/hir-ty/src/layout/adt.rs14
1 files changed, 7 insertions, 7 deletions
diff --git a/crates/hir-ty/src/layout/adt.rs b/crates/hir-ty/src/layout/adt.rs
index ab9c07779c..9f453162e3 100644
--- a/crates/hir-ty/src/layout/adt.rs
+++ b/crates/hir-ty/src/layout/adt.rs
@@ -44,23 +44,23 @@ pub fn layout_of_adt_query(
AdtId::StructId(s) => {
let data = db.struct_data(s);
let mut r = SmallVec::<[_; 1]>::new();
- r.push(handle_variant(s.into(), &data.variant_data)?);
+ r.push(handle_variant(s.into(), &db.variant_data(s.into()))?);
(r, data.repr.unwrap_or_default())
}
AdtId::UnionId(id) => {
let data = db.union_data(id);
let mut r = SmallVec::new();
- r.push(handle_variant(id.into(), &data.variant_data)?);
+ r.push(handle_variant(id.into(), &db.variant_data(id.into()))?);
(r, data.repr.unwrap_or_default())
}
AdtId::EnumId(e) => {
- let data = db.enum_data(e);
- let r = data
+ let variants = db.enum_variants(e);
+ let r = variants
.variants
.iter()
- .map(|&(v, _)| handle_variant(v.into(), &db.enum_variant_data(v).variant_data))
+ .map(|&(v, _)| handle_variant(v.into(), &db.variant_data(v.into())))
.collect::<Result<SmallVec<_>, _>>()?;
- (r, data.repr.unwrap_or_default())
+ (r, db.enum_data(e).repr.unwrap_or_default())
}
};
let variants = variants
@@ -80,7 +80,7 @@ pub fn layout_of_adt_query(
|min, max| repr_discr(dl, &repr, min, max).unwrap_or((Integer::I8, false)),
variants.iter_enumerated().filter_map(|(id, _)| {
let AdtId::EnumId(e) = def else { return None };
- let d = db.const_eval_discriminant(db.enum_data(e).variants[id.0].0).ok()?;
+ let d = db.const_eval_discriminant(db.enum_variants(e).variants[id.0].0).ok()?;
Some((id, d))
}),
// FIXME: The current code for niche-filling relies on variant indices