Skip to content

Commit a29ceb9

Browse files
committed
hir: remove NodeId from ImplItem
1 parent c2e517e commit a29ceb9

File tree

15 files changed

+30
-27
lines changed

15 files changed

+30
-27
lines changed

src/librustc/hir/intravisit.rs

-1
Original file line numberDiff line numberDiff line change
@@ -878,7 +878,6 @@ pub fn walk_trait_item_ref<'v, V: Visitor<'v>>(visitor: &mut V, trait_item_ref:
878878
pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplItem) {
879879
// N.B., deliberately force a compilation error if/when new fields are added.
880880
let ImplItem {
881-
id: _,
882881
hir_id: _,
883882
ident,
884883
ref vis,

src/librustc/hir/lowering.rs

-1
Original file line numberDiff line numberDiff line change
@@ -3426,7 +3426,6 @@ impl<'a> LoweringContext<'a> {
34263426
};
34273427

34283428
hir::ImplItem {
3429-
id: node_id,
34303429
hir_id,
34313430
ident: i.ident,
34323431
attrs: self.lower_attrs(&i.attrs),

src/librustc/hir/map/collector.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@ impl<'a, 'hir> Visitor<'hir> for NodeCollector<'a, 'hir> {
398398

399399
fn visit_impl_item(&mut self, ii: &'hir ImplItem) {
400400
debug_assert_eq!(ii.hir_id.owner,
401-
self.definitions.opt_def_index(ii.id).unwrap());
401+
self.definitions.opt_def_index(self.hir_to_node_id[&ii.hir_id]).unwrap());
402402
self.with_dep_node_owner(ii.hir_id.owner, ii, |this| {
403403
this.insert(ii.span, ii.hir_id, Node::ImplItem(ii));
404404

src/librustc/hir/map/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -357,7 +357,7 @@ impl<'hir> Map<'hir> {
357357
}
358358
}
359359
Node::ImplItem(item) => {
360-
let def_id = self.local_def_id(item.id);
360+
let def_id = self.local_def_id_from_hir_id(item.hir_id);
361361
match item.node {
362362
ImplItemKind::Const(..) => Some(Def::AssociatedConst(def_id)),
363363
ImplItemKind::Method(..) => Some(Def::Method(def_id)),

src/librustc/hir/mod.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1710,7 +1710,6 @@ pub struct ImplItemId {
17101710
/// Represents anything within an `impl` block
17111711
#[derive(Clone, RustcEncodable, RustcDecodable, Debug)]
17121712
pub struct ImplItem {
1713-
pub id: NodeId,
17141713
pub ident: Ident,
17151714
pub hir_id: HirId,
17161715
pub vis: Visibility,

src/librustc/ich/impls_hir.rs

-1
Original file line numberDiff line numberDiff line change
@@ -703,7 +703,6 @@ impl<'a> HashStable<StableHashingContext<'a>> for hir::ImplItem {
703703
hcx: &mut StableHashingContext<'a>,
704704
hasher: &mut StableHasher<W>) {
705705
let hir::ImplItem {
706-
id: _,
707706
hir_id: _,
708707
ident,
709708
ref vis,

src/librustc/middle/reachable.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ fn method_might_be_inlined<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
4848
impl_item: &hir::ImplItem,
4949
impl_src: DefId) -> bool {
5050
let codegen_fn_attrs = tcx.codegen_fn_attrs(impl_item.hir_id.owner_def_id());
51-
let generics = tcx.generics_of(tcx.hir().local_def_id(impl_item.id));
51+
let generics = tcx.generics_of(tcx.hir().local_def_id_from_hir_id(impl_item.hir_id));
5252
if codegen_fn_attrs.requests_inline() || generics.requires_monomorphization(tcx) {
5353
return true
5454
}

src/librustc/middle/stability.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -355,7 +355,8 @@ impl<'a, 'tcx> Visitor<'tcx> for MissingStabilityAnnotations<'a, 'tcx> {
355355
}
356356

357357
fn visit_impl_item(&mut self, ii: &'tcx hir::ImplItem) {
358-
let impl_def_id = self.tcx.hir().local_def_id(self.tcx.hir().get_parent(ii.id));
358+
let impl_def_id = self.tcx.hir().local_def_id_from_hir_id(
359+
self.tcx.hir().get_parent_item(ii.hir_id));
359360
if self.tcx.impl_trait_ref(impl_def_id).is_none() {
360361
self.check_missing_stability(ii.hir_id, ii.span, "item");
361362
}

src/librustc_lint/builtin.rs

+7-6
Original file line numberDiff line numberDiff line change
@@ -1112,11 +1112,12 @@ impl LintPass for UnreachablePub {
11121112
}
11131113

11141114
impl UnreachablePub {
1115-
fn perform_lint(&self, cx: &LateContext<'_, '_>, what: &str, id: ast::NodeId,
1115+
fn perform_lint(&self, cx: &LateContext<'_, '_>, what: &str, id: hir::HirId,
11161116
vis: &hir::Visibility, span: Span, exportable: bool) {
11171117
let mut applicability = Applicability::MachineApplicable;
1118+
let node_id = cx.tcx.hir().hir_to_node_id(id);
11181119
match vis.node {
1119-
hir::VisibilityKind::Public if !cx.access_levels.is_reachable(id) => {
1120+
hir::VisibilityKind::Public if !cx.access_levels.is_reachable(node_id) => {
11201121
if span.ctxt().outer().expn_info().is_some() {
11211122
applicability = Applicability::MaybeIncorrect;
11221123
}
@@ -1148,20 +1149,20 @@ impl UnreachablePub {
11481149

11491150
impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnreachablePub {
11501151
fn check_item(&mut self, cx: &LateContext<'_, '_>, item: &hir::Item) {
1151-
self.perform_lint(cx, "item", item.id, &item.vis, item.span, true);
1152+
self.perform_lint(cx, "item", item.hir_id, &item.vis, item.span, true);
11521153
}
11531154

11541155
fn check_foreign_item(&mut self, cx: &LateContext<'_, '_>, foreign_item: &hir::ForeignItem) {
1155-
self.perform_lint(cx, "item", foreign_item.id, &foreign_item.vis,
1156+
self.perform_lint(cx, "item", foreign_item.hir_id, &foreign_item.vis,
11561157
foreign_item.span, true);
11571158
}
11581159

11591160
fn check_struct_field(&mut self, cx: &LateContext<'_, '_>, field: &hir::StructField) {
1160-
self.perform_lint(cx, "field", field.id, &field.vis, field.span, false);
1161+
self.perform_lint(cx, "field", field.hir_id, &field.vis, field.span, false);
11611162
}
11621163

11631164
fn check_impl_item(&mut self, cx: &LateContext<'_, '_>, impl_item: &hir::ImplItem) {
1164-
self.perform_lint(cx, "item", impl_item.id, &impl_item.vis, impl_item.span, false);
1165+
self.perform_lint(cx, "item", impl_item.hir_id, &impl_item.vis, impl_item.span, false);
11651166
}
11661167
}
11671168

src/librustc_mir/monomorphize/collector.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1006,7 +1006,7 @@ impl<'b, 'a, 'v> ItemLikeVisitor<'v> for RootCollector<'b, 'a, 'v> {
10061006
fn visit_impl_item(&mut self, ii: &'v hir::ImplItem) {
10071007
match ii.node {
10081008
hir::ImplItemKind::Method(hir::MethodSig { .. }, _) => {
1009-
let def_id = self.tcx.hir().local_def_id(ii.id);
1009+
let def_id = self.tcx.hir().local_def_id_from_hir_id(ii.hir_id);
10101010
self.push_if_root(def_id);
10111011
}
10121012
_ => { /* Nothing to do here */ }

src/librustc_privacy/lib.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -1318,7 +1318,9 @@ impl<'a, 'tcx> Visitor<'tcx> for ObsoleteVisiblePrivateTypesVisitor<'a, 'tcx> {
13181318
match impl_item.node {
13191319
hir::ImplItemKind::Const(..) |
13201320
hir::ImplItemKind::Method(..) => {
1321-
self.access_levels.is_reachable(impl_item.id)
1321+
let node_id = self.tcx.hir().hir_to_node_id(
1322+
impl_item.hir_id);
1323+
self.access_levels.is_reachable(node_id)
13221324
}
13231325
hir::ImplItemKind::Existential(..) |
13241326
hir::ImplItemKind::Type(_) => false,
@@ -1340,10 +1342,11 @@ impl<'a, 'tcx> Visitor<'tcx> for ObsoleteVisiblePrivateTypesVisitor<'a, 'tcx> {
13401342
// don't erroneously report errors for private
13411343
// types in private items.
13421344
let impl_item = self.tcx.hir().impl_item(impl_item_ref.id);
1345+
let node_id = self.tcx.hir().hir_to_node_id(impl_item.hir_id);
13431346
match impl_item.node {
13441347
hir::ImplItemKind::Const(..) |
13451348
hir::ImplItemKind::Method(..)
1346-
if self.item_is_public(&impl_item.id, &impl_item.vis) =>
1349+
if self.item_is_public(&node_id, &impl_item.vis) =>
13471350
{
13481351
intravisit::walk_impl_item(self, impl_item)
13491352
}

src/librustc_typeck/check/mod.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1554,7 +1554,8 @@ fn check_impl_items_against_trait<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
15541554
// Check existing impl methods to see if they are both present in trait
15551555
// and compatible with trait signature
15561556
for impl_item in impl_items() {
1557-
let ty_impl_item = tcx.associated_item(tcx.hir().local_def_id(impl_item.id));
1557+
let ty_impl_item = tcx.associated_item(
1558+
tcx.hir().local_def_id_from_hir_id(impl_item.hir_id));
15581559
let ty_trait_item = tcx.associated_items(impl_trait_ref.def_id)
15591560
.find(|ac| Namespace::from(&impl_item.node) == Namespace::from(ac.kind) &&
15601561
tcx.hygienic_eq(ty_impl_item.ident, ac.ident, impl_trait_ref.def_id))

src/librustc_typeck/check/wfcheck.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1030,7 +1030,7 @@ impl<'a, 'tcx> ItemLikeVisitor<'tcx> for CheckTypeWellFormedVisitor<'a, 'tcx> {
10301030

10311031
fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem) {
10321032
debug!("visit_impl_item: {:?}", impl_item);
1033-
let def_id = self.tcx.hir().local_def_id(impl_item.id);
1033+
let def_id = self.tcx.hir().local_def_id_from_hir_id(impl_item.hir_id);
10341034
self.tcx.ensure().check_impl_item_well_formed(def_id);
10351035
}
10361036
}

src/librustc_typeck/collect.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ impl<'a, 'tcx> Visitor<'tcx> for CollectItemTypesVisitor<'a, 'tcx> {
157157
}
158158

159159
fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem) {
160-
convert_impl_item(self.tcx, impl_item.id);
160+
convert_impl_item(self.tcx, impl_item.hir_id);
161161
intravisit::walk_impl_item(self, impl_item);
162162
}
163163
}
@@ -500,12 +500,12 @@ fn convert_trait_item<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, trait_item_id: hir:
500500
tcx.predicates_of(def_id);
501501
}
502502

503-
fn convert_impl_item<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, impl_item_id: ast::NodeId) {
504-
let def_id = tcx.hir().local_def_id(impl_item_id);
503+
fn convert_impl_item<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, impl_item_id: hir::HirId) {
504+
let def_id = tcx.hir().local_def_id_from_hir_id(impl_item_id);
505505
tcx.generics_of(def_id);
506506
tcx.type_of(def_id);
507507
tcx.predicates_of(def_id);
508-
if let hir::ImplItemKind::Method(..) = tcx.hir().expect_impl_item(impl_item_id).node {
508+
if let hir::ImplItemKind::Method(..) = tcx.hir().expect_impl_item_by_hir_id(impl_item_id).node {
509509
tcx.fn_sig(def_id);
510510
}
511511
}
@@ -1485,7 +1485,7 @@ fn find_existential_constraints<'a, 'tcx>(
14851485
}
14861486
}
14871487
fn visit_impl_item(&mut self, it: &'tcx ImplItem) {
1488-
let def_id = self.tcx.hir().local_def_id(it.id);
1488+
let def_id = self.tcx.hir().local_def_id_from_hir_id(it.hir_id);
14891489
// the existential type itself or its children are not within its reveal scope
14901490
if def_id != self.def_id {
14911491
self.check(def_id);

src/librustdoc/clean/mod.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -2055,14 +2055,15 @@ impl Clean<Item> for hir::ImplItem {
20552055
generics: Generics::default(),
20562056
}, true),
20572057
};
2058+
let local_did = cx.tcx.hir().local_def_id_from_hir_id(self.hir_id);
20582059
Item {
20592060
name: Some(self.ident.name.clean(cx)),
20602061
source: self.span.clean(cx),
20612062
attrs: self.attrs.clean(cx),
2062-
def_id: cx.tcx.hir().local_def_id(self.id),
2063+
def_id: local_did,
20632064
visibility: self.vis.clean(cx),
2064-
stability: get_stability(cx, cx.tcx.hir().local_def_id(self.id)),
2065-
deprecation: get_deprecation(cx, cx.tcx.hir().local_def_id(self.id)),
2065+
stability: get_stability(cx, local_did),
2066+
deprecation: get_deprecation(cx, local_did),
20662067
inner,
20672068
}
20682069
}

0 commit comments

Comments
 (0)