Skip to content

Commit 82f73f2

Browse files
committed
Auto merge of #69199 - ecstatic-morse:revert-69108, r=<try>
Revert #69108 ... to see if it caused the regression in #69197. @bors try @rust-timer queue
2 parents 61d9231 + bcebc99 commit 82f73f2

File tree

7 files changed

+18
-29
lines changed

7 files changed

+18
-29
lines changed

src/librustc/ich/impls_hir.rs

+1
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ impl<'a> ToStableHashKey<StableHashingContext<'a>> for hir::TraitCandidate {
270270

271271
let import_keys = import_ids
272272
.iter()
273+
.map(|node_id| hcx.node_to_hir_id(*node_id))
273274
.map(|hir_id| (hcx.local_def_path_hash(hir_id.owner), hir_id.local_id))
274275
.collect();
275276
(hcx.def_path_hash(*def_id), import_keys)

src/librustc/ty/context.rs

-4
Original file line numberDiff line numberDiff line change
@@ -1161,10 +1161,6 @@ impl<'tcx> TyCtxt<'tcx> {
11611161
for (k, v) in resolutions.trait_map {
11621162
let hir_id = hir.node_to_hir_id(k);
11631163
let map = trait_map.entry(hir_id.owner).or_default();
1164-
let v = v
1165-
.into_iter()
1166-
.map(|tc| tc.map_import_ids(|id| hir.definitions().node_to_hir_id(id)))
1167-
.collect();
11681164
map.insert(hir_id.local_id, StableVec::new(v));
11691165
}
11701166

src/librustc/ty/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ pub struct ResolverOutputs {
127127
pub definitions: hir_map::Definitions,
128128
pub cstore: Box<CrateStoreDyn>,
129129
pub extern_crate_map: NodeMap<CrateNum>,
130-
pub trait_map: TraitMap<NodeId>,
130+
pub trait_map: TraitMap,
131131
pub maybe_unused_trait_imports: NodeSet,
132132
pub maybe_unused_extern_crates: Vec<(NodeId, Span)>,
133133
pub export_map: ExportMap<NodeId>,

src/librustc_hir/hir.rs

+4-15
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use rustc_span::source_map::{SourceMap, Spanned};
1616
use rustc_span::symbol::{kw, sym, Symbol};
1717
use rustc_span::{MultiSpan, Span, DUMMY_SP};
1818
use rustc_target::spec::abi::Abi;
19-
use syntax::ast::{self, AsmDialect, CrateSugar, Ident, Name};
19+
use syntax::ast::{self, AsmDialect, CrateSugar, Ident, Name, NodeId};
2020
use syntax::ast::{AttrVec, Attribute, FloatTy, IntTy, Label, LitKind, StrStyle, UintTy};
2121
pub use syntax::ast::{BorrowKind, ImplPolarity, IsAuto};
2222
pub use syntax::ast::{CaptureBy, Movability, Mutability};
@@ -2610,24 +2610,13 @@ pub type CaptureModeMap = NodeMap<CaptureBy>;
26102610
// has length > 0 if the trait is found through an chain of imports, starting with the
26112611
// import/use statement in the scope where the trait is used.
26122612
#[derive(Clone, Debug)]
2613-
pub struct TraitCandidate<ID = HirId> {
2613+
pub struct TraitCandidate {
26142614
pub def_id: DefId,
2615-
pub import_ids: SmallVec<[ID; 1]>,
2616-
}
2617-
2618-
impl<ID> TraitCandidate<ID> {
2619-
pub fn map_import_ids<F, T>(self, f: F) -> TraitCandidate<T>
2620-
where
2621-
F: Fn(ID) -> T,
2622-
{
2623-
let TraitCandidate { def_id, import_ids } = self;
2624-
let import_ids = import_ids.into_iter().map(f).collect();
2625-
TraitCandidate { def_id, import_ids }
2626-
}
2615+
pub import_ids: SmallVec<[NodeId; 1]>,
26272616
}
26282617

26292618
// Trait method resolution
2630-
pub type TraitMap<ID = HirId> = NodeMap<Vec<TraitCandidate<ID>>>;
2619+
pub type TraitMap = NodeMap<Vec<TraitCandidate>>;
26312620

26322621
// Map from the NodeId of a glob import to a list of items which are actually
26332622
// imported.

src/librustc_resolve/late.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2078,7 +2078,7 @@ impl<'a, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
20782078
&mut self,
20792079
mut ident: Ident,
20802080
ns: Namespace,
2081-
) -> Vec<TraitCandidate<NodeId>> {
2081+
) -> Vec<TraitCandidate> {
20822082
debug!("(getting traits containing item) looking for '{}'", ident.name);
20832083

20842084
let mut found_traits = Vec::new();
@@ -2123,7 +2123,7 @@ impl<'a, 'b, 'ast> LateResolutionVisitor<'a, 'b, 'ast> {
21232123
ident: Ident,
21242124
ns: Namespace,
21252125
module: Module<'a>,
2126-
found_traits: &mut Vec<TraitCandidate<NodeId>>,
2126+
found_traits: &mut Vec<TraitCandidate>,
21272127
) {
21282128
assert!(ns == TypeNS || ns == ValueNS);
21292129
let mut traits = module.traits.borrow_mut();

src/librustc_resolve/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -865,7 +865,7 @@ pub struct Resolver<'a> {
865865
/// `CrateNum` resolutions of `extern crate` items.
866866
extern_crate_map: NodeMap<CrateNum>,
867867
export_map: ExportMap<NodeId>,
868-
trait_map: TraitMap<NodeId>,
868+
trait_map: TraitMap,
869869

870870
/// A map from nodes to anonymous modules.
871871
/// Anonymous modules are pseudo-modules that are implicitly created around items

src/librustc_typeck/check/method/probe.rs

+9-6
Original file line numberDiff line numberDiff line change
@@ -902,10 +902,13 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> {
902902
for trait_candidate in applicable_traits.iter() {
903903
let trait_did = trait_candidate.def_id;
904904
if duplicates.insert(trait_did) {
905-
let result = self.assemble_extension_candidates_for_trait(
906-
&trait_candidate.import_ids,
907-
trait_did,
908-
);
905+
let import_ids = trait_candidate
906+
.import_ids
907+
.iter()
908+
.map(|node_id| self.fcx.tcx.hir().node_to_hir_id(*node_id))
909+
.collect();
910+
let result =
911+
self.assemble_extension_candidates_for_trait(import_ids, trait_did);
909912
result?;
910913
}
911914
}
@@ -917,7 +920,7 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> {
917920
let mut duplicates = FxHashSet::default();
918921
for trait_info in suggest::all_traits(self.tcx) {
919922
if duplicates.insert(trait_info.def_id) {
920-
self.assemble_extension_candidates_for_trait(&smallvec![], trait_info.def_id)?;
923+
self.assemble_extension_candidates_for_trait(smallvec![], trait_info.def_id)?;
921924
}
922925
}
923926
Ok(())
@@ -956,7 +959,7 @@ impl<'a, 'tcx> ProbeContext<'a, 'tcx> {
956959

957960
fn assemble_extension_candidates_for_trait(
958961
&mut self,
959-
import_ids: &SmallVec<[hir::HirId; 1]>,
962+
import_ids: SmallVec<[hir::HirId; 1]>,
960963
trait_def_id: DefId,
961964
) -> Result<(), MethodError<'tcx>> {
962965
debug!("assemble_extension_candidates_for_trait(trait_def_id={:?})", trait_def_id);

0 commit comments

Comments
 (0)