From 7afcf9fcd14af52e53e38ffe60b1eac9b3232b21 Mon Sep 17 00:00:00 2001 From: Camille GILLOT Date: Fri, 18 Feb 2022 19:34:24 +0100 Subject: [PATCH] Add generator_kind table. --- compiler/rustc_metadata/src/rmeta/decoder.rs | 7 ------- compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs | 2 +- compiler/rustc_metadata/src/rmeta/encoder.rs | 3 ++- compiler/rustc_metadata/src/rmeta/mod.rs | 3 ++- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/compiler/rustc_metadata/src/rmeta/decoder.rs b/compiler/rustc_metadata/src/rmeta/decoder.rs index 6f9cd871e9175..f43dcea343d64 100644 --- a/compiler/rustc_metadata/src/rmeta/decoder.rs +++ b/compiler/rustc_metadata/src/rmeta/decoder.rs @@ -1439,13 +1439,6 @@ impl<'a, 'tcx> CrateMetadataRef<'a> { } } - fn generator_kind(self, id: DefIndex) -> Option { - match self.kind(id) { - EntryKind::Generator(data) => Some(data), - _ => None, - } - } - #[inline] fn def_key(self, index: DefIndex) -> DefKey { *self diff --git a/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs b/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs index d53631d49d38d..192ad9608b87c 100644 --- a/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs +++ b/compiler/rustc_metadata/src/rmeta/decoder/cstore_impl.rs @@ -140,6 +140,7 @@ provide! { <'tcx> tcx, def_id, other, cdata, rendered_const => { table } asyncness => { table } fn_arg_names => { table } + generator_kind => { table } trait_def => { cdata.get_trait_def(def_id.index, tcx.sess) } adt_def => { cdata.get_adt_def(def_id.index, tcx) } @@ -153,7 +154,6 @@ provide! { <'tcx> tcx, def_id, other, cdata, is_const_fn_raw => { cdata.is_const_fn_raw(def_id.index) } is_foreign_item => { cdata.is_foreign_item(def_id.index) } static_mutability => { cdata.static_mutability(def_id.index) } - generator_kind => { cdata.generator_kind(def_id.index) } item_attrs => { tcx.arena.alloc_from_iter(cdata.get_item_attrs(def_id.index, tcx.sess)) } trait_of_item => { cdata.get_trait_of_item(def_id.index) } is_mir_available => { cdata.is_item_mir_available(def_id.index) } diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs index 9821a63dfaaca..da8995df1ac9e 100644 --- a/compiler/rustc_metadata/src/rmeta/encoder.rs +++ b/compiler/rustc_metadata/src/rmeta/encoder.rs @@ -1569,7 +1569,8 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> { match ty.kind() { ty::Generator(..) => { let data = self.tcx.generator_kind(def_id).unwrap(); - record!(self.tables.kind[def_id.to_def_id()] <- EntryKind::Generator(data)); + record!(self.tables.kind[def_id.to_def_id()] <- EntryKind::Generator); + record!(self.tables.generator_kind[def_id.to_def_id()] <- data); } ty::Closure(..) => { diff --git a/compiler/rustc_metadata/src/rmeta/mod.rs b/compiler/rustc_metadata/src/rmeta/mod.rs index b3255f6f570e9..da17d9d4c6706 100644 --- a/compiler/rustc_metadata/src/rmeta/mod.rs +++ b/compiler/rustc_metadata/src/rmeta/mod.rs @@ -312,6 +312,7 @@ define_tables! { rendered_const: Table, asyncness: Table, fn_arg_names: Table, + generator_kind: Table, trait_item_def_id: Table>, inherent_impls: Table>, @@ -352,7 +353,7 @@ enum EntryKind { MacroDef(Lazy), ProcMacro(MacroKind), Closure, - Generator(hir::GeneratorKind), + Generator, Trait(Lazy), Impl, AssocFn(Lazy),