rust-analyzer: rustc_abi::Abi => BackendRepr

This commit is contained in:
Jubilee Young 2024-10-29 13:38:30 -07:00
parent 404d887f49
commit 92faf55954

View file

@ -6,7 +6,7 @@ use base_db::ra_salsa::Cycle;
use chalk_ir::{AdtId, FloatTy, IntTy, TyKind, UintTy}; use chalk_ir::{AdtId, FloatTy, IntTy, TyKind, UintTy};
use hir_def::{ use hir_def::{
layout::{ layout::{
Abi, FieldsShape, Float, Integer, LayoutCalculator, LayoutCalculatorError, LayoutData, BackendRepr, FieldsShape, Float, Integer, LayoutCalculator, LayoutCalculatorError, LayoutData,
Primitive, ReprOptions, Scalar, Size, StructKind, TargetDataLayout, WrappingRange, Primitive, ReprOptions, Scalar, Size, StructKind, TargetDataLayout, WrappingRange,
}, },
LocalFieldId, StructId, LocalFieldId, StructId,
@ -168,7 +168,7 @@ fn layout_of_simd_ty(
// Compute the ABI of the element type: // Compute the ABI of the element type:
let e_ly = db.layout_of_ty(e_ty, env)?; let e_ly = db.layout_of_ty(e_ty, env)?;
let Abi::Scalar(e_abi) = e_ly.abi else { let BackendRepr::Scalar(e_abi) = e_ly.backend_repr else {
return Err(LayoutError::Unknown); return Err(LayoutError::Unknown);
}; };
@ -190,7 +190,7 @@ fn layout_of_simd_ty(
Ok(Arc::new(Layout { Ok(Arc::new(Layout {
variants: Variants::Single { index: struct_variant_idx() }, variants: Variants::Single { index: struct_variant_idx() },
fields, fields,
abi: Abi::Vector { element: e_abi, count: e_len }, backend_repr: BackendRepr::Vector { element: e_abi, count: e_len },
largest_niche: e_ly.largest_niche, largest_niche: e_ly.largest_niche,
size, size,
align, align,
@ -294,10 +294,10 @@ pub fn layout_of_ty_query(
.checked_mul(count, dl) .checked_mul(count, dl)
.ok_or(LayoutError::BadCalc(LayoutCalculatorError::SizeOverflow))?; .ok_or(LayoutError::BadCalc(LayoutCalculatorError::SizeOverflow))?;
let abi = if count != 0 && matches!(element.abi, Abi::Uninhabited) { let backend_repr = if count != 0 && matches!(element.backend_repr, BackendRepr::Uninhabited) {
Abi::Uninhabited BackendRepr::Uninhabited
} else { } else {
Abi::Aggregate { sized: true } BackendRepr::Memory { sized: true }
}; };
let largest_niche = if count != 0 { element.largest_niche } else { None }; let largest_niche = if count != 0 { element.largest_niche } else { None };
@ -305,7 +305,7 @@ pub fn layout_of_ty_query(
Layout { Layout {
variants: Variants::Single { index: struct_variant_idx() }, variants: Variants::Single { index: struct_variant_idx() },
fields: FieldsShape::Array { stride: element.size, count }, fields: FieldsShape::Array { stride: element.size, count },
abi, backend_repr,
largest_niche, largest_niche,
align: element.align, align: element.align,
size, size,
@ -318,7 +318,7 @@ pub fn layout_of_ty_query(
Layout { Layout {
variants: Variants::Single { index: struct_variant_idx() }, variants: Variants::Single { index: struct_variant_idx() },
fields: FieldsShape::Array { stride: element.size, count: 0 }, fields: FieldsShape::Array { stride: element.size, count: 0 },
abi: Abi::Aggregate { sized: false }, backend_repr: BackendRepr::Memory { sized: false },
largest_niche: None, largest_niche: None,
align: element.align, align: element.align,
size: Size::ZERO, size: Size::ZERO,
@ -329,7 +329,7 @@ pub fn layout_of_ty_query(
TyKind::Str => Layout { TyKind::Str => Layout {
variants: Variants::Single { index: struct_variant_idx() }, variants: Variants::Single { index: struct_variant_idx() },
fields: FieldsShape::Array { stride: Size::from_bytes(1), count: 0 }, fields: FieldsShape::Array { stride: Size::from_bytes(1), count: 0 },
abi: Abi::Aggregate { sized: false }, backend_repr: BackendRepr::Memory { sized: false },
largest_niche: None, largest_niche: None,
align: dl.i8_align, align: dl.i8_align,
size: Size::ZERO, size: Size::ZERO,
@ -379,8 +379,8 @@ pub fn layout_of_ty_query(
TyKind::Never => cx.calc.layout_of_never_type(), TyKind::Never => cx.calc.layout_of_never_type(),
TyKind::Dyn(_) | TyKind::Foreign(_) => { TyKind::Dyn(_) | TyKind::Foreign(_) => {
let mut unit = layout_of_unit(&cx)?; let mut unit = layout_of_unit(&cx)?;
match &mut unit.abi { match &mut unit.backend_repr {
Abi::Aggregate { sized } => *sized = false, BackendRepr::Memory { sized } => *sized = false,
_ => return Err(LayoutError::Unknown), _ => return Err(LayoutError::Unknown),
} }
unit unit