Skip to content

Commit bcebc99

Browse files
Revert "Use HirId in TraitCandidate."
This reverts commit 4706c38.
1 parent a42a76d commit bcebc99

File tree

7 files changed

+16
-31
lines changed

7 files changed

+16
-31
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

-1
Original file line numberDiff line numberDiff line change
@@ -1161,7 +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.into_iter().map(|tc| tc.node_to_hir_id(&hir.definitions())).collect();
11651164
map.insert(hir_id.local_id, StableVec::new(v));
11661165
}
11671166

src/librustc/ty/mod.rs

+1-19
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ use rustc_data_structures::sync::{self, par_iter, Lrc, ParallelIterator};
3535
use rustc_hir as hir;
3636
use rustc_hir::def::{CtorKind, CtorOf, DefKind, Res};
3737
use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, LocalDefId, CRATE_DEF_INDEX, LOCAL_CRATE};
38-
use rustc_hir::{Constness, GlobMap, Node};
38+
use rustc_hir::{Constness, GlobMap, Node, TraitMap};
3939
use rustc_index::vec::{Idx, IndexVec};
4040
use rustc_macros::HashStable;
4141
use rustc_serialize::{self, Encodable, Encoder};
@@ -46,7 +46,6 @@ use rustc_target::abi::Align;
4646
use syntax::ast::{self, Ident, Name};
4747
use syntax::node_id::{NodeId, NodeMap, NodeSet};
4848

49-
use smallvec::SmallVec;
5049
use std::cell::RefCell;
5150
use std::cmp::{self, Ordering};
5251
use std::fmt;
@@ -124,23 +123,6 @@ mod sty;
124123

125124
// Data types
126125

127-
#[derive(Clone, Debug)]
128-
pub struct TraitCandidate {
129-
pub def_id: DefId,
130-
pub import_ids: SmallVec<[NodeId; 1]>,
131-
}
132-
133-
impl TraitCandidate {
134-
fn node_to_hir_id(self, definitions: &hir_map::Definitions) -> hir::TraitCandidate {
135-
let TraitCandidate { def_id, import_ids } = self;
136-
let import_ids =
137-
import_ids.into_iter().map(|node_id| definitions.node_to_hir_id(node_id)).collect();
138-
hir::TraitCandidate { def_id, import_ids }
139-
}
140-
}
141-
142-
pub type TraitMap = NodeMap<Vec<TraitCandidate>>;
143-
144126
pub struct ResolverOutputs {
145127
pub definitions: hir_map::Definitions,
146128
pub cstore: Box<CrateStoreDyn>,

src/librustc_hir/hir.rs

+2-2
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};
@@ -2612,7 +2612,7 @@ pub type CaptureModeMap = NodeMap<CaptureBy>;
26122612
#[derive(Clone, Debug)]
26132613
pub struct TraitCandidate {
26142614
pub def_id: DefId,
2615-
pub import_ids: SmallVec<[HirId; 1]>,
2615+
pub import_ids: SmallVec<[NodeId; 1]>,
26162616
}
26172617

26182618
// Trait method resolution

src/librustc_resolve/late.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ use crate::{path_names_to_string, BindingError, CrateLint, LexicalScopeBinding};
1111
use crate::{Module, ModuleOrUniformRoot, NameBindingKind, ParentScope, PathResult};
1212
use crate::{ResolutionError, Resolver, Segment, UseError};
1313

14-
use rustc::ty::TraitCandidate;
1514
use rustc::{bug, lint, span_bug};
1615
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
1716
use rustc_errors::DiagnosticId;
1817
use rustc_hir::def::Namespace::{self, *};
1918
use rustc_hir::def::{self, CtorKind, DefKind, PartialRes, PerNS};
2019
use rustc_hir::def_id::{DefId, CRATE_DEF_INDEX};
20+
use rustc_hir::TraitCandidate;
2121
use rustc_span::symbol::{kw, sym};
2222
use rustc_span::Span;
2323
use smallvec::{smallvec, SmallVec};

src/librustc_resolve/lib.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use rustc::lint;
2222
use rustc::middle::cstore::{CrateStore, MetadataLoaderDyn};
2323
use rustc::span_bug;
2424
use rustc::ty::query::Providers;
25-
use rustc::ty::{self, DefIdTree, ResolverOutputs, TraitMap};
25+
use rustc::ty::{self, DefIdTree, ResolverOutputs};
2626
use rustc_ast_pretty::pprust;
2727
use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap};
2828
use rustc_data_structures::ptr_key::PtrKey;
@@ -32,8 +32,8 @@ use rustc_expand::base::SyntaxExtension;
3232
use rustc_hir::def::Namespace::*;
3333
use rustc_hir::def::{self, CtorOf, DefKind, NonMacroAttrKind, PartialRes};
3434
use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, CRATE_DEF_INDEX, LOCAL_CRATE};
35-
use rustc_hir::GlobMap;
3635
use rustc_hir::PrimTy::{self, Bool, Char, Float, Int, Str, Uint};
36+
use rustc_hir::{GlobMap, TraitMap};
3737
use rustc_metadata::creader::{CStore, CrateLoader};
3838
use rustc_session::lint::{BuiltinLintDiagnostics, LintBuffer};
3939
use rustc_session::Session;

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)