diff options
| author | Miguel Guarniz <mi9uel9@gmail.com> | 2022-04-09 13:58:46 -0400 |
|---|---|---|
| committer | Miguel Guarniz <mi9uel9@gmail.com> | 2022-04-09 13:58:46 -0400 |
| commit | 0b38596e8811adb1a69e1a43e6f51cdebc0e4f9b (patch) | |
| tree | b3fb446288a27d7737dfc5301b48800617acde03 | |
| parent | f983d2658ba88e1ef2a0f21fbeef842a91d49d1b (diff) | |
| download | rust-0b38596e8811adb1a69e1a43e6f51cdebc0e4f9b.tar.gz rust-0b38596e8811adb1a69e1a43e6f51cdebc0e4f9b.zip | |
use ItemId.def_id and avoid fetching Item
| -rw-r--r-- | compiler/rustc_metadata/src/rmeta/encoder.rs | 28 |
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, } } |
