]> git.lizzy.rs Git - rust.git/commitdiff
Rollup merge of #107189 - cjgillot:meta-adt, r=compiler-errors
authorMatthias Krüger <matthias.krueger@famsik.de>
Thu, 26 Jan 2023 14:02:21 +0000 (15:02 +0100)
committerGitHub <noreply@github.com>
Thu, 26 Jan 2023 14:02:21 +0000 (15:02 +0100)
Encode info for Adt in a single place.

Split from https://github.com/rust-lang/rust/pull/98867

1  2 
compiler/rustc_metadata/src/rmeta/encoder.rs

index 97f0457ba711677e0ea326bb1d099460da3672b9,0dba9a32f9cee933c098232b3b00e604c9dfbad1..29eba278750b1299c434d73570f05c518aab76eb
@@@ -1529,36 -1501,9 +1515,9 @@@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> 
              hir::ItemKind::OpaqueTy(ref opaque) => {
                  self.encode_explicit_item_bounds(def_id);
                  if matches!(opaque.origin, hir::OpaqueTyOrigin::TyAlias) {
 -                    self.tables.is_type_alias_impl_trait.set(def_id.index, ());
 +                    self.tables.is_type_alias_impl_trait.set_nullable(def_id.index, true);
                  }
              }
-             hir::ItemKind::Enum(..) => {
-                 let adt_def = self.tcx.adt_def(def_id);
-                 record!(self.tables.repr_options[def_id] <- adt_def.repr());
-             }
-             hir::ItemKind::Struct(..) => {
-                 let adt_def = self.tcx.adt_def(def_id);
-                 record!(self.tables.repr_options[def_id] <- adt_def.repr());
-                 self.tables.constness.set(def_id.index, hir::Constness::Const);
-                 let variant = adt_def.non_enum_variant();
-                 record!(self.tables.variant_data[def_id] <- VariantData {
-                     discr: variant.discr,
-                     ctor: variant.ctor.map(|(kind, def_id)| (kind, def_id.index)),
-                     is_non_exhaustive: variant.is_field_list_non_exhaustive(),
-                 });
-             }
-             hir::ItemKind::Union(..) => {
-                 let adt_def = self.tcx.adt_def(def_id);
-                 record!(self.tables.repr_options[def_id] <- adt_def.repr());
-                 let variant = adt_def.non_enum_variant();
-                 record!(self.tables.variant_data[def_id] <- VariantData {
-                     discr: variant.discr,
-                     ctor: variant.ctor.map(|(kind, def_id)| (kind, def_id.index)),
-                     is_non_exhaustive: variant.is_field_list_non_exhaustive(),
-                 });
-             }
              hir::ItemKind::Impl(hir::Impl { defaultness, constness, .. }) => {
                  self.tables.impl_defaultness.set(def_id.index, *defaultness);
                  self.tables.constness.set(def_id.index, *constness);