Skip to content

Commit 035219f

Browse files
authored
Rollup merge of #147134 - workingjubilee:remove-explicit-abialign-deref, r=Zalathar
remove explicit deref of AbiAlign for most methods Much of the compiler calls functions on Align projected from AbiAlign. AbiAlign impls Deref to its inner Align, so we can simplify these away. Also, it will minimize disruption when AbiAlign is removed. For now, preserve usages that might resolve to PartialOrd or PartialEq, as those have odd inference.
2 parents 5426b0f + a805c9b commit 035219f

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

crates/hir-ty/src/layout/tests.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ fn check_size_and_align(
150150
) {
151151
let l = eval_goal(ra_fixture, minicore).unwrap();
152152
assert_eq!(l.size.bytes(), size, "size mismatch");
153-
assert_eq!(l.align.abi.bytes(), align, "align mismatch");
153+
assert_eq!(l.align.bytes(), align, "align mismatch");
154154
}
155155

156156
#[track_caller]
@@ -162,7 +162,7 @@ fn check_size_and_align_expr(
162162
) {
163163
let l = eval_expr(ra_fixture, minicore).unwrap();
164164
assert_eq!(l.size.bytes(), size, "size mismatch");
165-
assert_eq!(l.align.abi.bytes(), align, "align mismatch");
165+
assert_eq!(l.align.bytes(), align, "align mismatch");
166166
}
167167

168168
#[track_caller]

crates/hir-ty/src/mir/eval.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2085,7 +2085,7 @@ impl<'db> Evaluator<'db> {
20852085
if let Some(layout) = self.layout_cache.borrow().get(&ty.to_nextsolver(interner)) {
20862086
return Ok(layout
20872087
.is_sized()
2088-
.then(|| (layout.size.bytes_usize(), layout.align.abi.bytes() as usize)));
2088+
.then(|| (layout.size.bytes_usize(), layout.align.bytes() as usize)));
20892089
}
20902090
if let DefWithBodyId::VariantId(f) = locals.body.owner
20912091
&& let Some((AdtId::EnumId(e), _)) = ty.as_adt()
@@ -2104,7 +2104,7 @@ impl<'db> Evaluator<'db> {
21042104
let layout = layout?;
21052105
Ok(layout
21062106
.is_sized()
2107-
.then(|| (layout.size.bytes_usize(), layout.align.abi.bytes() as usize)))
2107+
.then(|| (layout.size.bytes_usize(), layout.align.bytes() as usize)))
21082108
}
21092109

21102110
/// A version of `self.size_of` which returns error if the type is unsized. `what` argument should
@@ -2797,7 +2797,7 @@ impl<'db> Evaluator<'db> {
27972797
)?;
27982798
// FIXME: there is some leak here
27992799
let size = layout.size.bytes_usize();
2800-
let addr = self.heap_allocate(size, layout.align.abi.bytes() as usize)?;
2800+
let addr = self.heap_allocate(size, layout.align.bytes() as usize)?;
28012801
self.write_memory(addr, &result)?;
28022802
IntervalAndTy { interval: Interval { addr, size }, ty }
28032803
};

crates/hir-ty/src/mir/eval/shim.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -767,7 +767,7 @@ impl Evaluator<'_> {
767767
"align_of generic arg is not provided".into(),
768768
));
769769
};
770-
let align = self.layout(ty.to_nextsolver(interner))?.align.abi.bytes();
770+
let align = self.layout(ty.to_nextsolver(interner))?.align.bytes();
771771
destination.write_from_bytes(self, &align.to_le_bytes()[0..destination.size])
772772
}
773773
"size_of_val" => {
@@ -1431,7 +1431,7 @@ impl Evaluator<'_> {
14311431
field_types.iter().next_back().unwrap().1.clone().substitute(Interner, subst);
14321432
let sized_part_size =
14331433
layout.fields.offset(field_types.iter().count() - 1).bytes_usize();
1434-
let sized_part_align = layout.align.abi.bytes() as usize;
1434+
let sized_part_align = layout.align.bytes() as usize;
14351435
let (unsized_part_size, unsized_part_align) =
14361436
self.size_align_of_unsized(&last_field_ty, metadata, locals)?;
14371437
let align = sized_part_align.max(unsized_part_align) as isize;

crates/hir/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6094,7 +6094,7 @@ impl Layout {
60946094
}
60956095

60966096
pub fn align(&self) -> u64 {
6097-
self.0.align.abi.bytes()
6097+
self.0.align.bytes()
60986098
}
60996099

61006100
pub fn niches(&self) -> Option<u128> {

0 commit comments

Comments
 (0)