Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/mir/eval.rs')
-rw-r--r--crates/hir-ty/src/mir/eval.rs27
1 files changed, 15 insertions, 12 deletions
diff --git a/crates/hir-ty/src/mir/eval.rs b/crates/hir-ty/src/mir/eval.rs
index 597e6a3ef0..45b4385568 100644
--- a/crates/hir-ty/src/mir/eval.rs
+++ b/crates/hir-ty/src/mir/eval.rs
@@ -661,19 +661,19 @@ impl Evaluator<'_> {
.lang_item(crate_id, LangItem::Fn)
.and_then(|x| x.as_trait())
.and_then(|x| {
- db.trait_data(x).method_by_name(&Name::new_symbol_root(sym::call.clone()))
+ db.trait_items(x).method_by_name(&Name::new_symbol_root(sym::call.clone()))
}),
cached_fn_mut_trait_func: db
.lang_item(crate_id, LangItem::FnMut)
.and_then(|x| x.as_trait())
.and_then(|x| {
- db.trait_data(x).method_by_name(&Name::new_symbol_root(sym::call_mut.clone()))
+ db.trait_items(x).method_by_name(&Name::new_symbol_root(sym::call_mut.clone()))
}),
cached_fn_once_trait_func: db
.lang_item(crate_id, LangItem::FnOnce)
.and_then(|x| x.as_trait())
.and_then(|x| {
- db.trait_data(x).method_by_name(&Name::new_symbol_root(sym::call_once.clone()))
+ db.trait_items(x).method_by_name(&Name::new_symbol_root(sym::call_once.clone()))
}),
})
}
@@ -1641,7 +1641,8 @@ impl Evaluator<'_> {
match &layout.variants {
Variants::Empty => unreachable!(),
Variants::Single { index } => {
- let r = self.const_eval_discriminant(self.db.enum_data(e).variants[index.0].0)?;
+ let r =
+ self.const_eval_discriminant(self.db.enum_variants(e).variants[index.0].0)?;
Ok(r)
}
Variants::Multiple { tag, tag_encoding, variants, .. } => {
@@ -1666,7 +1667,7 @@ impl Evaluator<'_> {
.unwrap_or(*untagged_variant)
.0;
let result =
- self.const_eval_discriminant(self.db.enum_data(e).variants[idx].0)?;
+ self.const_eval_discriminant(self.db.enum_variants(e).variants[idx].0)?;
Ok(result)
}
}
@@ -1760,7 +1761,7 @@ impl Evaluator<'_> {
AdtId::EnumId(_) => not_supported!("unsizing enums"),
};
let Some((last_field, _)) =
- self.db.struct_data(id).variant_data.fields().iter().next_back()
+ self.db.variant_data(id.into()).fields().iter().next_back()
else {
not_supported!("unsizing struct without field");
};
@@ -2242,10 +2243,10 @@ impl Evaluator<'_> {
}
chalk_ir::TyKind::Adt(adt, subst) => match adt.0 {
AdtId::StructId(s) => {
- let data = this.db.struct_data(s);
+ let data = this.db.variant_data(s.into());
let layout = this.layout(ty)?;
let field_types = this.db.field_types(s.into());
- for (f, _) in data.variant_data.fields().iter() {
+ for (f, _) in data.fields().iter() {
let offset = layout
.fields
.offset(u32::from(f.into_raw()) as usize)
@@ -2271,7 +2272,7 @@ impl Evaluator<'_> {
bytes,
e,
) {
- let data = &this.db.enum_variant_data(v).variant_data;
+ let data = &this.db.variant_data(v.into());
let field_types = this.db.field_types(v.into());
for (f, _) in data.fields().iter() {
let offset =
@@ -2818,7 +2819,9 @@ impl Evaluator<'_> {
) -> Result<()> {
let Some(drop_fn) = (|| {
let drop_trait = self.db.lang_item(self.crate_id, LangItem::Drop)?.as_trait()?;
- self.db.trait_data(drop_trait).method_by_name(&Name::new_symbol_root(sym::drop.clone()))
+ self.db
+ .trait_items(drop_trait)
+ .method_by_name(&Name::new_symbol_root(sym::drop.clone()))
})() else {
// in some tests we don't have drop trait in minicore, and
// we can ignore drop in them.
@@ -2848,7 +2851,7 @@ impl Evaluator<'_> {
return Ok(());
}
let layout = self.layout_adt(id.0, subst.clone())?;
- match data.variant_data.as_ref() {
+ match self.db.variant_data(s.into()).as_ref() {
VariantData::Record { fields, .. }
| VariantData::Tuple { fields, .. } => {
let field_types = self.db.field_types(s.into());
@@ -2928,7 +2931,7 @@ pub fn render_const_using_debug_impl(
not_supported!("core::fmt::Debug not found");
};
let Some(debug_fmt_fn) =
- db.trait_data(debug_trait).method_by_name(&Name::new_symbol_root(sym::fmt.clone()))
+ db.trait_items(debug_trait).method_by_name(&Name::new_symbol_root(sym::fmt.clone()))
else {
not_supported!("core::fmt::Debug::fmt not found");
};