Compute generator sizes with -Zprint_type_sizes

This commit is contained in:
Michael Goulet 2022-11-05 18:25:41 +00:00
parent 023b5136b5
commit b45b9489bb
6 changed files with 74 additions and 1 deletions

View file

@ -33,6 +33,7 @@ pub enum DataTypeKind {
Union,
Enum,
Closure,
Generator,
}
#[derive(PartialEq, Eq, Hash, Debug)]
@ -113,7 +114,7 @@ impl CodeStats {
let mut max_variant_size = discr_size;
let struct_like = match kind {
DataTypeKind::Struct | DataTypeKind::Closure => true,
DataTypeKind::Struct | DataTypeKind::Closure | DataTypeKind::Generator => true,
DataTypeKind::Enum | DataTypeKind::Union => false,
};
for (i, variant_info) in variants.into_iter().enumerate() {

View file

@ -826,6 +826,12 @@ fn record_layout_for_printing_outlined<'tcx>(
return;
}
ty::Generator(..) => {
debug!("print-type-size t: `{:?}` record generator", layout.ty);
record(DataTypeKind::Generator, false, None, vec![]);
return;
}
_ => {
debug!("print-type-size t: `{:?}` skip non-nominal", layout.ty);
return;