Skip to content

Commit 1aff824

Browse files
committed
1 parent 6ebd336 commit 1aff824

File tree

2 files changed

+21
-20
lines changed

2 files changed

+21
-20
lines changed

src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
extern crate rustc_const_eval; // Requires `rustup component add rustc-dev`
1212
extern crate rustc_hir;
1313
extern crate rustc_infer;
14+
extern crate rustc_metadata;
1415
extern crate rustc_middle;
1516
extern crate rustc_session;
1617
extern crate rustc_span;

src/traverse.rs

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use rustc_hir::def_id::DefId;
2222
use rustc_hir::hir_id::HirId;
2323
use rustc_hir::lang_items::LangItem;
2424
use rustc_infer::infer::TyCtxtInferExt;
25+
use rustc_metadata::creader::CStore;
2526
use rustc_middle::{
2627
metadata::ModChild,
2728
ty::{
@@ -1149,51 +1150,50 @@ fn diff_trait_impls<'tcx>(
11491150
let structural_peq_def_id = tcx.require_lang_item(LangItem::StructuralPeq, None);
11501151
let structural_trait_def_ids = [structural_peq_def_id, structural_teq_def_id];
11511152

1152-
for (old_impl_def_id, _) in tcx
1153-
.all_trait_implementations(id_mapping.get_old_crate())
1154-
.iter()
1153+
let cstore = CStore::from_tcx(tcx);
1154+
for (old_impl_def_id, _) in
1155+
cstore.trait_impls_in_crate_untracked(id_mapping.get_old_crate())
11551156
{
1156-
let old_trait_def_id = tcx.impl_trait_ref(*old_impl_def_id).unwrap().def_id;
1157+
let old_trait_def_id = tcx.impl_trait_ref(old_impl_def_id).unwrap().def_id;
11571158

11581159
if structural_trait_def_ids.contains(&old_trait_def_id) {
11591160
continue;
11601161
}
11611162

1162-
if !to_new.can_translate(old_trait_def_id) || !is_impl_trait_public(tcx, *old_impl_def_id) {
1163+
if !to_new.can_translate(old_trait_def_id) || !is_impl_trait_public(tcx, old_impl_def_id) {
11631164
continue;
11641165
}
11651166

1166-
if !match_trait_impl(tcx, &to_new, *old_impl_def_id) {
1167+
if !match_trait_impl(tcx, &to_new, old_impl_def_id) {
11671168
changes.new_change_impl(
1168-
*old_impl_def_id,
1169-
tcx.def_path_str(*old_impl_def_id),
1170-
tcx.def_span(*old_impl_def_id),
1169+
old_impl_def_id,
1170+
tcx.def_path_str(old_impl_def_id),
1171+
tcx.def_span(old_impl_def_id),
11711172
);
1172-
changes.add_change(ChangeType::TraitImplTightened, *old_impl_def_id, None);
1173+
changes.add_change(ChangeType::TraitImplTightened, old_impl_def_id, None);
11731174
}
11741175
}
11751176

1176-
for (new_impl_def_id, _) in tcx
1177-
.all_trait_implementations(id_mapping.get_new_crate())
1178-
.iter()
1177+
for (new_impl_def_id, _) in
1178+
cstore.trait_impls_in_crate_untracked(id_mapping.get_new_crate())
11791179
{
1180-
let new_trait_def_id = tcx.impl_trait_ref(*new_impl_def_id).unwrap().def_id;
1180+
let new_trait_def_id = tcx.impl_trait_ref(new_impl_def_id).unwrap().def_id;
11811181

11821182
if structural_trait_def_ids.contains(&new_trait_def_id) {
11831183
continue;
11841184
}
11851185

1186-
if !to_old.can_translate(new_trait_def_id) || !is_impl_trait_public(tcx, *new_impl_def_id) {
1186+
if !to_old.can_translate(new_trait_def_id) || !is_impl_trait_public(tcx, new_impl_def_id) {
11871187
continue;
11881188
}
11891189

1190-
if !match_trait_impl(tcx, &to_old, *new_impl_def_id) {
1190+
if !match_trait_impl(tcx, &to_old, new_impl_def_id) {
11911191
changes.new_change_impl(
1192-
*new_impl_def_id,
1193-
tcx.def_path_str(*new_impl_def_id),
1194-
tcx.def_span(*new_impl_def_id),
1192+
new_impl_def_id,
1193+
tcx.def_path_str(new_impl_def_id),
1194+
tcx.def_span(new_impl_def_id),
11951195
);
1196-
changes.add_change(ChangeType::TraitImplLoosened, *new_impl_def_id, None);
1196+
changes.add_change(ChangeType::TraitImplLoosened, new_impl_def_id, None);
11971197
}
11981198
}
11991199
}

0 commit comments

Comments
 (0)