diff options
| author | Michael Goulet <michael@errs.io> | 2022-11-05 18:25:41 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-12-07 03:10:56 +0000 |
| commit | b45b9489bb3fb918fbe267154f8dcf4fee61854d (patch) | |
| tree | c6128a2fe32597f3f8efe35e7296a500cef56122 /compiler | |
| parent | 023b5136b597053f76941b54eeae668219e6e18d (diff) | |
| download | rust-b45b9489bb3fb918fbe267154f8dcf4fee61854d.tar.gz rust-b45b9489bb3fb918fbe267154f8dcf4fee61854d.zip | |
Compute generator sizes with -Zprint_type_sizes
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_session/src/code_stats.rs | 3 | ||||
| -rw-r--r-- | compiler/rustc_ty_utils/src/layout.rs | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/compiler/rustc_session/src/code_stats.rs b/compiler/rustc_session/src/code_stats.rs index eede4d16ea3..7a6da1b7350 100644 --- a/compiler/rustc_session/src/code_stats.rs +++ b/compiler/rustc_session/src/code_stats.rs @@ -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() { diff --git a/compiler/rustc_ty_utils/src/layout.rs b/compiler/rustc_ty_utils/src/layout.rs index fbc055b5d23..1c65bec6964 100644 --- a/compiler/rustc_ty_utils/src/layout.rs +++ b/compiler/rustc_ty_utils/src/layout.rs @@ -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; |
