Skip to content

Commit 45867ec

Browse files
committed
Filter fn_sig.
1 parent 7aedff6 commit 45867ec

File tree

1 file changed

+39
-2
lines changed

1 file changed

+39
-2
lines changed

compiler/rustc_metadata/src/rmeta/encoder.rs

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -941,6 +941,41 @@ fn should_encode_type(def_kind: DefKind) -> bool {
941941
}
942942
}
943943

944+
fn should_encode_fn_sig(def_kind: DefKind) -> bool {
945+
match def_kind {
946+
DefKind::Variant
947+
| DefKind::TraitAlias
948+
| DefKind::Fn
949+
| DefKind::Ctor(..)
950+
| DefKind::AssocFn => true,
951+
DefKind::Struct
952+
| DefKind::Union
953+
| DefKind::Enum
954+
| DefKind::Trait
955+
| DefKind::TyAlias
956+
| DefKind::ForeignTy
957+
| DefKind::AssocTy
958+
| DefKind::Const
959+
| DefKind::Static
960+
| DefKind::AssocConst
961+
| DefKind::AnonConst
962+
| DefKind::OpaqueTy
963+
| DefKind::Impl
964+
| DefKind::Closure
965+
| DefKind::Generator
966+
| DefKind::Mod
967+
| DefKind::Field
968+
| DefKind::ForeignMod
969+
| DefKind::TyParam
970+
| DefKind::ConstParam
971+
| DefKind::Macro(..)
972+
| DefKind::Use
973+
| DefKind::LifetimeParam
974+
| DefKind::GlobalAsm
975+
| DefKind::ExternCrate => false,
976+
}
977+
}
978+
944979
impl EncodeContext<'a, 'tcx> {
945980
fn encode_def_ids(&mut self) {
946981
if self.is_proc_macro {
@@ -990,8 +1025,10 @@ impl EncodeContext<'a, 'tcx> {
9901025
record!(self.tables.ty[def_id] <- ty);
9911026
}
9921027
}
993-
if let Ok(sig) = tcx.try_fn_sig(def_id) {
994-
record!(self.tables.fn_sig[def_id] <- sig);
1028+
if should_encode_fn_sig(def_kind) {
1029+
if let Ok(sig) = tcx.try_fn_sig(def_id) {
1030+
record!(self.tables.fn_sig[def_id] <- sig);
1031+
}
9951032
}
9961033
self.encode_explicit_item_bounds(def_id);
9971034
}

0 commit comments

Comments
 (0)