about summary refs log tree commit diff
path: root/compiler/rustc_metadata/src
diff options
context:
space:
mode:
authorCamille GILLOT <gillot.camille@gmail.com>2022-07-03 22:53:57 +0200
committerCamille GILLOT <gillot.camille@gmail.com>2023-01-22 11:04:53 +0000
commit6ecf30d67d7e82722ac7aff232378739e92f33e6 (patch)
tree30995d77aa7737f3f0e3a96c7c0992f7bf0104de /compiler/rustc_metadata/src
parentd7f6564fdd05c9bb0168be0554626de2886f1314 (diff)
downloadrust-6ecf30d67d7e82722ac7aff232378739e92f33e6.tar.gz
rust-6ecf30d67d7e82722ac7aff232378739e92f33e6.zip
Inline encode_enum_variant_info.
Diffstat (limited to 'compiler/rustc_metadata/src')
-rw-r--r--compiler/rustc_metadata/src/rmeta/encoder.rs46
1 files changed, 18 insertions, 28 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs
index 772c99a07bc..6227d01bcfa 100644
--- a/compiler/rustc_metadata/src/rmeta/encoder.rs
+++ b/compiler/rustc_metadata/src/rmeta/encoder.rs
@@ -1223,36 +1223,26 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> {
         // so it's easier to do that here then to wait until we would encounter
         // normally in the visitor walk.
         for variant in adt_def.variants().iter() {
-            self.encode_enum_variant_info(variant);
-        }
-    }
-
-    fn encode_enum_variant_info(&mut self, variant: &ty::VariantDef) {
-        let tcx = self.tcx;
-        let def_id = variant.def_id;
-        debug!("EncodeContext::encode_enum_variant_info({:?})", def_id);
+            let data = VariantData {
+                discr: variant.discr,
+                ctor: variant.ctor.map(|(kind, def_id)| (kind, def_id.index)),
+                is_non_exhaustive: variant.is_field_list_non_exhaustive(),
+            };
+            record!(self.tables.variant_data[variant.def_id] <- data);
 
-        let data = VariantData {
-            discr: variant.discr,
-            ctor: variant.ctor.map(|(kind, def_id)| (kind, def_id.index)),
-            is_non_exhaustive: variant.is_field_list_non_exhaustive(),
-        };
+            self.tables.constness.set(variant.def_id.index, hir::Constness::Const);
+            record_array!(self.tables.children[variant.def_id] <- variant.fields.iter().map(|f| {
+                assert!(f.did.is_local());
+                f.did.index
+            }));
 
-        record!(self.tables.variant_data[def_id] <- data);
-        self.tables.constness.set(def_id.index, hir::Constness::Const);
-        record_array!(self.tables.children[def_id] <- variant.fields.iter().map(|f| {
-            assert!(f.did.is_local());
-            f.did.index
-        }));
-        if let Some((CtorKind::Fn, ctor_def_id)) = variant.ctor {
-            debug!("EncodeContext::encode_enum_variant_ctor({:?})", ctor_def_id);
-
-            self.tables.constness.set(ctor_def_id.index, hir::Constness::Const);
-
-            let fn_sig = tcx.fn_sig(ctor_def_id);
-            record!(self.tables.fn_sig[ctor_def_id] <- fn_sig);
-            // FIXME(eddyb) encode signature only for `ctor_def_id`.
-            record!(self.tables.fn_sig[def_id] <- fn_sig);
+            if let Some((CtorKind::Fn, ctor_def_id)) = variant.ctor {
+                self.tables.constness.set(ctor_def_id.index, hir::Constness::Const);
+                let fn_sig = tcx.fn_sig(ctor_def_id);
+                record!(self.tables.fn_sig[ctor_def_id] <- fn_sig);
+                // FIXME only encode signature for ctor_def_id
+                record!(self.tables.fn_sig[variant.def_id] <- fn_sig);
+            }
         }
     }