Skip to content

Commit

Permalink
Rollup merge of #89329 - tmiasko:print-type-sizes-no-fields, r=jackh726
Browse files Browse the repository at this point in the history
print-type-sizes: skip field printing for primitives

Fixes #86528.
  • Loading branch information
Manishearth committed Oct 6, 2021
2 parents b4615b5 + 25b6f9b commit b87a9a8
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 3 deletions.
7 changes: 5 additions & 2 deletions compiler/rustc_middle/src/ty/layout.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1826,8 +1826,11 @@ impl<'tcx> LayoutCx<'tcx, TyCtxt<'tcx>> {

match layout.variants {
Variants::Single { index } => {
debug!("print-type-size `{:#?}` variant {}", layout, adt_def.variants[index].ident);
if !adt_def.variants.is_empty() {
if !adt_def.variants.is_empty() && layout.fields != FieldsShape::Primitive {
debug!(
"print-type-size `{:#?}` variant {}",
layout, adt_def.variants[index].ident
);
let variant_def = &adt_def.variants[index];
let fields: Vec<_> = variant_def.fields.iter().map(|f| f.ident.name).collect();
record(
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/print_type_sizes/uninhabited.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@
fn start(_: isize, _: *const *const u8) -> isize {
let _x: Option<!> = None;
let _y: Result<u32, !> = Ok(42);
0
let _z: Result<!, !> = loop {};
}
1 change: 1 addition & 0 deletions src/test/ui/print_type_sizes/uninhabited.stdout
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ print-type-size variant `Ok`: 4 bytes
print-type-size field `.0`: 4 bytes
print-type-size type: `std::option::Option<!>`: 0 bytes, alignment: 1 bytes
print-type-size variant `None`: 0 bytes
print-type-size type: `std::result::Result<!, !>`: 0 bytes, alignment: 1 bytes

0 comments on commit b87a9a8

Please sign in to comment.