about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMiguel Guarniz <mi9uel9@gmail.com>2022-04-09 13:58:46 -0400
committerMiguel Guarniz <mi9uel9@gmail.com>2022-04-09 13:58:46 -0400
commit0b38596e8811adb1a69e1a43e6f51cdebc0e4f9b (patch)
treeb3fb446288a27d7737dfc5301b48800617acde03
parentf983d2658ba88e1ef2a0f21fbeef842a91d49d1b (diff)
downloadrust-0b38596e8811adb1a69e1a43e6f51cdebc0e4f9b.tar.gz
rust-0b38596e8811adb1a69e1a43e6f51cdebc0e4f9b.zip
use ItemId.def_id and avoid fetching Item
-rw-r--r--compiler/rustc_metadata/src/rmeta/encoder.rs28
1 files changed, 12 insertions, 16 deletions
diff --git a/compiler/rustc_metadata/src/rmeta/encoder.rs b/compiler/rustc_metadata/src/rmeta/encoder.rs
index 60a8b8cfba4..51bba3ddcf7 100644
--- a/compiler/rustc_metadata/src/rmeta/encoder.rs
+++ b/compiler/rustc_metadata/src/rmeta/encoder.rs
@@ -1787,23 +1787,19 @@ impl<'a, 'tcx> EncodeContext<'a, 'tcx> {
             FxHashMap::default();
 
         for id in tcx.hir().items() {
-            match tcx.hir().def_kind(id.def_id) {
-                DefKind::Impl => {
-                    let item = tcx.hir().item(id);
-                    if let Some(trait_ref) = tcx.impl_trait_ref(item.def_id.to_def_id()) {
-                        let simplified_self_ty = fast_reject::simplify_type(
-                            self.tcx,
-                            trait_ref.self_ty(),
-                            TreatParams::AsPlaceholders,
-                        );
-
-                        fx_hash_map
-                            .entry(trait_ref.def_id)
-                            .or_default()
-                            .push((item.def_id.local_def_index, simplified_self_ty));
-                    }
+            if matches!(tcx.hir().def_kind(id.def_id), DefKind::Impl) {
+                if let Some(trait_ref) = tcx.impl_trait_ref(id.def_id.to_def_id()) {
+                    let simplified_self_ty = fast_reject::simplify_type(
+                        self.tcx,
+                        trait_ref.self_ty(),
+                        TreatParams::AsPlaceholders,
+                    );
+
+                    fx_hash_map
+                        .entry(trait_ref.def_id)
+                        .or_default()
+                        .push((id.def_id.local_def_index, simplified_self_ty));
                 }
-                _ => continue,
             }
         }