From: Camille GILLOT Date: Thu, 28 Nov 2019 21:16:44 +0000 (+0100) Subject: Use Arena inside hir::ImplItem. X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=5fec1ca0ff5727d1f4474f8dc3edf7c631baf712;p=rust.git Use Arena inside hir::ImplItem. --- diff --git a/src/librustc/hir/check_attr.rs b/src/librustc/hir/check_attr.rs index 6fbb8d783d4..03282fc99a0 100644 --- a/src/librustc/hir/check_attr.rs +++ b/src/librustc/hir/check_attr.rs @@ -128,7 +128,7 @@ fn from_foreign_item(foreign_item: &hir::ForeignItem<'_>) -> Target { } } - fn from_impl_item<'tcx>(tcx: TyCtxt<'tcx>, impl_item: &hir::ImplItem) -> Target { + fn from_impl_item<'tcx>(tcx: TyCtxt<'tcx>, impl_item: &hir::ImplItem<'_>) -> Target { match impl_item.kind { hir::ImplItemKind::Const(..) => Target::AssocConst, hir::ImplItemKind::Method(..) => { @@ -510,7 +510,7 @@ fn visit_foreign_item(&mut self, f_item: &'tcx hir::ForeignItem<'tcx>) { intravisit::walk_foreign_item(self, f_item) } - fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem<'tcx>) { let target = Target::from_impl_item(self.tcx, impl_item); self.check_attributes(impl_item.hir_id, &impl_item.attrs, &impl_item.span, target, None); intravisit::walk_impl_item(self, impl_item) diff --git a/src/librustc/hir/intravisit.rs b/src/librustc/hir/intravisit.rs index 6143e2281e4..fcd2d758420 100644 --- a/src/librustc/hir/intravisit.rs +++ b/src/librustc/hir/intravisit.rs @@ -301,7 +301,7 @@ fn visit_trait_item(&mut self, ti: &'v TraitItem<'v>) { fn visit_trait_item_ref(&mut self, ii: &'v TraitItemRef) { walk_trait_item_ref(self, ii) } - fn visit_impl_item(&mut self, ii: &'v ImplItem) { + fn visit_impl_item(&mut self, ii: &'v ImplItem<'v>) { walk_impl_item(self, ii) } fn visit_impl_item_ref(&mut self, ii: &'v ImplItemRef) { @@ -893,14 +893,14 @@ pub fn walk_trait_item_ref<'v, V: Visitor<'v>>(visitor: &mut V, trait_item_ref: visitor.visit_defaultness(defaultness); } -pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplItem) { +pub fn walk_impl_item<'v, V: Visitor<'v>>(visitor: &mut V, impl_item: &'v ImplItem<'v>) { // N.B., deliberately force a compilation error if/when new fields are added. let ImplItem { hir_id: _, ident, ref vis, ref defaultness, - ref attrs, + attrs, ref generics, ref kind, span: _, diff --git a/src/librustc/hir/itemlikevisit.rs b/src/librustc/hir/itemlikevisit.rs index 723cede0be6..30b41ea4acb 100644 --- a/src/librustc/hir/itemlikevisit.rs +++ b/src/librustc/hir/itemlikevisit.rs @@ -47,7 +47,7 @@ pub trait ItemLikeVisitor<'hir> { fn visit_item(&mut self, item: &'hir Item<'hir>); fn visit_trait_item(&mut self, trait_item: &'hir TraitItem<'hir>); - fn visit_impl_item(&mut self, impl_item: &'hir ImplItem); + fn visit_impl_item(&mut self, impl_item: &'hir ImplItem<'hir>); } pub struct DeepVisitor<'v, V> { @@ -73,7 +73,7 @@ fn visit_trait_item(&mut self, trait_item: &'hir TraitItem<'hir>) { self.visitor.visit_trait_item(trait_item); } - fn visit_impl_item(&mut self, impl_item: &'hir ImplItem) { + fn visit_impl_item(&mut self, impl_item: &'hir ImplItem<'hir>) { self.visitor.visit_impl_item(impl_item); } } @@ -82,7 +82,7 @@ fn visit_impl_item(&mut self, impl_item: &'hir ImplItem) { pub trait ParItemLikeVisitor<'hir> { fn visit_item(&self, item: &'hir Item<'hir>); fn visit_trait_item(&self, trait_item: &'hir TraitItem<'hir>); - fn visit_impl_item(&self, impl_item: &'hir ImplItem); + fn visit_impl_item(&self, impl_item: &'hir ImplItem<'hir>); } pub trait IntoVisitor<'hir> { @@ -103,7 +103,7 @@ fn visit_trait_item(&self, trait_item: &'hir TraitItem<'hir>) { self.0.into_visitor().visit_trait_item(trait_item); } - fn visit_impl_item(&self, impl_item: &'hir ImplItem) { + fn visit_impl_item(&self, impl_item: &'hir ImplItem<'hir>) { self.0.into_visitor().visit_impl_item(impl_item); } } diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs index d380b87916c..74615cbe945 100644 --- a/src/librustc/hir/lowering.rs +++ b/src/librustc/hir/lowering.rs @@ -98,7 +98,7 @@ pub struct LoweringContext<'a, 'hir: 'a> { items: BTreeMap>, trait_items: BTreeMap>, - impl_items: BTreeMap, + impl_items: BTreeMap>, bodies: BTreeMap, exported_macros: Vec>, non_exported_macro_attrs: Vec, diff --git a/src/librustc/hir/lowering/item.rs b/src/librustc/hir/lowering/item.rs index 35a4f7cde6f..1953d6f88f8 100644 --- a/src/librustc/hir/lowering/item.rs +++ b/src/librustc/hir/lowering/item.rs @@ -906,14 +906,14 @@ fn expr_err(&mut self, span: Span) -> hir::Expr { self.expr(span, hir::ExprKind::Err, AttrVec::new()) } - fn lower_impl_item(&mut self, i: &AssocItem) -> hir::ImplItem { + fn lower_impl_item(&mut self, i: &AssocItem) -> hir::ImplItem<'hir> { let impl_item_def_id = self.resolver.definitions().local_def_id(i.id); let (generics, kind) = match i.kind { AssocItemKind::Const(ref ty, ref expr) => ( self.lower_generics(&i.generics, ImplTraitContext::disallowed()), hir::ImplItemKind::Const( - self.lower_ty(ty, ImplTraitContext::disallowed()), + self.arena.alloc(self.lower_ty(ty, ImplTraitContext::disallowed()).into_inner()), self.lower_const_body(i.span, expr.as_deref()), ), ), @@ -940,11 +940,13 @@ fn lower_impl_item(&mut self, i: &AssocItem) -> hir::ImplItem { let generics = self.lower_generics(&i.generics, ImplTraitContext::disallowed()); let kind = match ty { None => { - hir::ImplItemKind::TyAlias(P(self.ty(i.span, hir::TyKind::Err))) + let ty = self.arena.alloc(self.ty(i.span, hir::TyKind::Err)); + hir::ImplItemKind::TyAlias(ty) } Some(ty) => match ty.kind.opaque_top_hack() { None => { let ty = self.lower_ty(ty, ImplTraitContext::disallowed()); + let ty = self.arena.alloc(ty.into_inner()); hir::ImplItemKind::TyAlias(ty) } Some(bs) => { @@ -961,7 +963,7 @@ fn lower_impl_item(&mut self, i: &AssocItem) -> hir::ImplItem { hir::ImplItem { hir_id: self.lower_node_id(i.id), ident: i.ident, - attrs: self.lower_attrs(&i.attrs), + attrs: self.lower_attrs_arena(&i.attrs), generics, vis: self.lower_visibility(&i.vis, None), defaultness: self.lower_defaultness(i.defaultness, true /* [1] */), diff --git a/src/librustc/hir/map/blocks.rs b/src/librustc/hir/map/blocks.rs index a9388825f16..ab04a8a10aa 100644 --- a/src/librustc/hir/map/blocks.rs +++ b/src/librustc/hir/map/blocks.rs @@ -44,7 +44,7 @@ fn is_fn_like(&self) -> bool { } } -impl MaybeFnLike for ast::ImplItem { +impl MaybeFnLike for ast::ImplItem<'_> { fn is_fn_like(&self) -> bool { match self.kind { ast::ImplItemKind::Method(..) => true, diff --git a/src/librustc/hir/map/collector.rs b/src/librustc/hir/map/collector.rs index 95b44ba403a..8e60581fbce 100644 --- a/src/librustc/hir/map/collector.rs +++ b/src/librustc/hir/map/collector.rs @@ -410,7 +410,7 @@ fn visit_trait_item(&mut self, ti: &'hir TraitItem<'hir>) { }); } - fn visit_impl_item(&mut self, ii: &'hir ImplItem) { + fn visit_impl_item(&mut self, ii: &'hir ImplItem<'hir>) { debug_assert_eq!(ii.hir_id.owner, self.definitions.opt_def_index(self.hir_to_node_id[&ii.hir_id]).unwrap()); self.with_dep_node_owner(ii.hir_id.owner, ii, |this| { diff --git a/src/librustc/hir/map/hir_id_validator.rs b/src/librustc/hir/map/hir_id_validator.rs index 4657f8b03b0..0a06473ed30 100644 --- a/src/librustc/hir/map/hir_id_validator.rs +++ b/src/librustc/hir/map/hir_id_validator.rs @@ -63,7 +63,7 @@ fn visit_trait_item(&mut self, i: &'hir hir::TraitItem<'hir>) { inner_visitor.check(i.hir_id, |this| intravisit::walk_trait_item(this, i)); } - fn visit_impl_item(&mut self, i: &'hir hir::ImplItem) { + fn visit_impl_item(&mut self, i: &'hir hir::ImplItem<'hir>) { let mut inner_visitor = self.new_inner_visitor(self.hir_map); inner_visitor.check(i.hir_id, |this| intravisit::walk_impl_item(this, i)); } diff --git a/src/librustc/hir/map/mod.rs b/src/librustc/hir/map/mod.rs index d15d59b2210..6803a605437 100644 --- a/src/librustc/hir/map/mod.rs +++ b/src/librustc/hir/map/mod.rs @@ -451,7 +451,7 @@ pub fn trait_item(&self, id: TraitItemId) -> &'hir TraitItem<'hir> { self.forest.krate.trait_item(id) } - pub fn impl_item(&self, id: ImplItemId) -> &'hir ImplItem { + pub fn impl_item(&self, id: ImplItemId) -> &'hir ImplItem<'hir> { self.read(id.hir_id); // N.B., intentionally bypass `self.forest.krate()` so that we @@ -966,7 +966,7 @@ pub fn expect_item(&self, id: HirId) -> &'hir Item<'hir> { } } - pub fn expect_impl_item(&self, id: HirId) -> &'hir ImplItem { + pub fn expect_impl_item(&self, id: HirId) -> &'hir ImplItem<'hir> { match self.find(id) { Some(Node::ImplItem(item)) => item, _ => bug!("expected impl item, found {}", self.node_to_string(id)) @@ -1253,7 +1253,7 @@ impl Named for ForeignItem<'_> { fn name(&self) -> Name { self.ident.name } } impl Named for Variant { fn name(&self) -> Name { self.ident.name } } impl Named for StructField { fn name(&self) -> Name { self.ident.name } } impl Named for TraitItem<'_> { fn name(&self) -> Name { self.ident.name } } -impl Named for ImplItem { fn name(&self) -> Name { self.ident.name } } +impl Named for ImplItem<'_> { fn name(&self) -> Name { self.ident.name } } pub fn map_crate<'hir>(sess: &crate::session::Session, cstore: &CrateStoreDyn, diff --git a/src/librustc/hir/mod.rs b/src/librustc/hir/mod.rs index 991e51e6dc3..51368d2acc3 100644 --- a/src/librustc/hir/mod.rs +++ b/src/librustc/hir/mod.rs @@ -759,7 +759,7 @@ pub struct Crate<'hir> { pub items: BTreeMap>, pub trait_items: BTreeMap>, - pub impl_items: BTreeMap, + pub impl_items: BTreeMap>, pub bodies: BTreeMap, pub trait_impls: BTreeMap>, @@ -783,7 +783,7 @@ pub fn trait_item(&self, id: TraitItemId) -> &TraitItem<'hir> { &self.trait_items[&id] } - pub fn impl_item(&self, id: ImplItemId) -> &ImplItem { + pub fn impl_item(&self, id: ImplItemId) -> &ImplItem<'hir> { &self.impl_items[&id] } @@ -1938,27 +1938,27 @@ pub struct ImplItemId { /// Represents anything within an `impl` block. #[derive(RustcEncodable, RustcDecodable, Debug)] -pub struct ImplItem { +pub struct ImplItem<'hir> { pub ident: Ident, pub hir_id: HirId, pub vis: Visibility, pub defaultness: Defaultness, - pub attrs: HirVec, + pub attrs: &'hir [Attribute], pub generics: Generics, - pub kind: ImplItemKind, + pub kind: ImplItemKind<'hir>, pub span: Span, } /// Represents various kinds of content within an `impl`. #[derive(RustcEncodable, RustcDecodable, Debug, HashStable)] -pub enum ImplItemKind { +pub enum ImplItemKind<'hir> { /// An associated constant of the given type, set to the constant result /// of the expression. - Const(P, BodyId), + Const(&'hir Ty, BodyId), /// A method implementation with the given signature and body. Method(FnSig, BodyId), /// An associated type. - TyAlias(P), + TyAlias(&'hir Ty), /// An associated `type = impl Trait`. OpaqueTy(GenericBounds), } @@ -2790,7 +2790,7 @@ pub enum Node<'hir> { Item(&'hir Item<'hir>), ForeignItem(&'hir ForeignItem<'hir>), TraitItem(&'hir TraitItem<'hir>), - ImplItem(&'hir ImplItem), + ImplItem(&'hir ImplItem<'hir>), Variant(&'hir Variant), Field(&'hir StructField), AnonConst(&'hir AnonConst), diff --git a/src/librustc/hir/print.rs b/src/librustc/hir/print.rs index d24d08575e7..dc270fc40c9 100644 --- a/src/librustc/hir/print.rs +++ b/src/librustc/hir/print.rs @@ -882,7 +882,7 @@ pub fn print_trait_item(&mut self, ti: &hir::TraitItem<'_>) { self.ann.post(self, AnnNode::SubItem(ti.hir_id)) } - pub fn print_impl_item(&mut self, ii: &hir::ImplItem) { + pub fn print_impl_item(&mut self, ii: &hir::ImplItem<'_>) { self.ann.pre(self, AnnNode::SubItem(ii.hir_id)); self.hardbreak_if_not_bol(); self.maybe_print_comment(ii.span.lo()); diff --git a/src/librustc/ich/impls_hir.rs b/src/librustc/ich/impls_hir.rs index 149e647ca74..a91535b5516 100644 --- a/src/librustc/ich/impls_hir.rs +++ b/src/librustc/ich/impls_hir.rs @@ -172,7 +172,7 @@ fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHas } -impl<'a> HashStable> for hir::ImplItem { +impl<'a> HashStable> for hir::ImplItem<'_> { fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHasher) { let hir::ImplItem { hir_id: _, diff --git a/src/librustc/infer/error_reporting/mod.rs b/src/librustc/infer/error_reporting/mod.rs index f5e52c4d4b2..347960ac222 100644 --- a/src/librustc/infer/error_reporting/mod.rs +++ b/src/librustc/infer/error_reporting/mod.rs @@ -271,7 +271,7 @@ fn trait_item_scope_tag(item: &hir::TraitItem<'_>) -> &'static str { } } - fn impl_item_scope_tag(item: &hir::ImplItem) -> &'static str { + fn impl_item_scope_tag(item: &hir::ImplItem<'_>) -> &'static str { match item.kind { hir::ImplItemKind::Method(..) => "method body", hir::ImplItemKind::Const(..) diff --git a/src/librustc/lint/context.rs b/src/librustc/lint/context.rs index 8327977d9b0..490599e582f 100644 --- a/src/librustc/lint/context.rs +++ b/src/librustc/lint/context.rs @@ -1085,7 +1085,7 @@ fn visit_trait_item(&mut self, trait_item: &'tcx hir::TraitItem<'tcx>) { self.context.generics = generics; } - fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem<'tcx>) { let generics = self.context.generics.take(); self.context.generics = Some(&impl_item.generics); self.with_lint_attrs(impl_item.hir_id, &impl_item.attrs, |cx| { diff --git a/src/librustc/lint/mod.rs b/src/librustc/lint/mod.rs index 3dad72543f5..12417d6089a 100644 --- a/src/librustc/lint/mod.rs +++ b/src/librustc/lint/mod.rs @@ -126,8 +126,8 @@ fn check_fn_post( ); fn check_trait_item(a: &$hir hir::TraitItem<$hir>); fn check_trait_item_post(a: &$hir hir::TraitItem<$hir>); - fn check_impl_item(a: &$hir hir::ImplItem); - fn check_impl_item_post(a: &$hir hir::ImplItem); + fn check_impl_item(a: &$hir hir::ImplItem<$hir>); + fn check_impl_item_post(a: &$hir hir::ImplItem<$hir>); fn check_struct_def(a: &$hir hir::VariantData); fn check_struct_def_post(a: &$hir hir::VariantData); fn check_struct_field(a: &$hir hir::StructField); @@ -655,7 +655,7 @@ fn visit_trait_item(&mut self, trait_item: &'tcx hir::TraitItem<'tcx>) { }); } - fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem<'tcx>) { self.with_lint_attrs(impl_item.hir_id, &impl_item.attrs, |builder| { intravisit::walk_impl_item(builder, impl_item); }); diff --git a/src/librustc/middle/diagnostic_items.rs b/src/librustc/middle/diagnostic_items.rs index 466c7a37d0f..96faf567463 100644 --- a/src/librustc/middle/diagnostic_items.rs +++ b/src/librustc/middle/diagnostic_items.rs @@ -33,7 +33,7 @@ fn visit_trait_item(&mut self, trait_item: &hir::TraitItem<'_>) { self.observe_item(&trait_item.attrs, trait_item.hir_id); } - fn visit_impl_item(&mut self, impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &hir::ImplItem<'_>) { self.observe_item(&impl_item.attrs, impl_item.hir_id); } } diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs index dadc9261a3e..d87eec05866 100644 --- a/src/librustc/middle/lang_items.rs +++ b/src/librustc/middle/lang_items.rs @@ -155,7 +155,7 @@ fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'_>) { // At present, lang items are always items, not trait items. } - fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) { // At present, lang items are always items, not impl items. } } diff --git a/src/librustc/middle/reachable.rs b/src/librustc/middle/reachable.rs index 643c92185c8..6746df6c7de 100644 --- a/src/librustc/middle/reachable.rs +++ b/src/librustc/middle/reachable.rs @@ -47,7 +47,7 @@ fn item_might_be_inlined(tcx: TyCtxt<'tcx>, item: &hir::Item<'_>, attrs: Codegen fn method_might_be_inlined( tcx: TyCtxt<'_>, - impl_item: &hir::ImplItem, + impl_item: &hir::ImplItem<'_>, impl_src: DefId, ) -> bool { let codegen_fn_attrs = tcx.codegen_fn_attrs(impl_item.hir_id.owner_def_id()); @@ -389,7 +389,7 @@ fn visit_item(&mut self, item: &hir::Item<'_>) { fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'_>) {} - fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) { // processed in visit_item above } } diff --git a/src/librustc/middle/resolve_lifetime.rs b/src/librustc/middle/resolve_lifetime.rs index c6a4a926ae4..38a7c67b907 100644 --- a/src/librustc/middle/resolve_lifetime.rs +++ b/src/librustc/middle/resolve_lifetime.rs @@ -823,7 +823,7 @@ fn visit_trait_item(&mut self, trait_item: &'tcx hir::TraitItem<'tcx>) { } } - fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem<'tcx>) { use self::hir::ImplItemKind::*; match impl_item.kind { Method(ref sig, _) => { diff --git a/src/librustc/middle/stability.rs b/src/librustc/middle/stability.rs index 03c6abfbb84..0aef5b24fc7 100644 --- a/src/librustc/middle/stability.rs +++ b/src/librustc/middle/stability.rs @@ -289,7 +289,7 @@ fn visit_trait_item(&mut self, ti: &'tcx hir::TraitItem<'tcx>) { }); } - fn visit_impl_item(&mut self, ii: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, ii: &'tcx hir::ImplItem<'tcx>) { let kind = if self.in_trait_impl { AnnotationKind::Prohibited } else { @@ -373,7 +373,7 @@ fn visit_trait_item(&mut self, ti: &'tcx hir::TraitItem<'tcx>) { intravisit::walk_trait_item(self, ti); } - fn visit_impl_item(&mut self, ii: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, ii: &'tcx hir::ImplItem<'tcx>) { let impl_def_id = self.tcx.hir().local_def_id( self.tcx.hir().get_parent_item(ii.hir_id)); if self.tcx.impl_trait_ref(impl_def_id).is_none() { diff --git a/src/librustc_codegen_utils/symbol_names_test.rs b/src/librustc_codegen_utils/symbol_names_test.rs index 1a21be66c43..893aea16fd2 100644 --- a/src/librustc_codegen_utils/symbol_names_test.rs +++ b/src/librustc_codegen_utils/symbol_names_test.rs @@ -65,7 +65,7 @@ fn visit_trait_item(&mut self, trait_item: &'tcx hir::TraitItem<'tcx>) { self.process_attrs(trait_item.hir_id); } - fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem<'tcx>) { self.process_attrs(impl_item.hir_id); } } diff --git a/src/librustc_incremental/assert_dep_graph.rs b/src/librustc_incremental/assert_dep_graph.rs index db64e736a5c..feab4ca0a31 100644 --- a/src/librustc_incremental/assert_dep_graph.rs +++ b/src/librustc_incremental/assert_dep_graph.rs @@ -172,7 +172,7 @@ fn visit_trait_item(&mut self, trait_item: &'tcx hir::TraitItem<'tcx>) { intravisit::walk_trait_item(self, trait_item); } - fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem<'tcx>) { self.process_attrs(impl_item.hir_id, &impl_item.attrs); intravisit::walk_impl_item(self, impl_item); } diff --git a/src/librustc_incremental/persist/dirty_clean.rs b/src/librustc_incremental/persist/dirty_clean.rs index b8f58ca2e91..7c9ed24f53b 100644 --- a/src/librustc_incremental/persist/dirty_clean.rs +++ b/src/librustc_incremental/persist/dirty_clean.rs @@ -540,7 +540,7 @@ fn visit_trait_item(&mut self, item: &hir::TraitItem<'_>) { self.check_item(item.hir_id, item.span); } - fn visit_impl_item(&mut self, item: &hir::ImplItem) { + fn visit_impl_item(&mut self, item: &hir::ImplItem<'_>) { self.check_item(item.hir_id, item.span); } } diff --git a/src/librustc_interface/proc_macro_decls.rs b/src/librustc_interface/proc_macro_decls.rs index c13dd595834..e3def175626 100644 --- a/src/librustc_interface/proc_macro_decls.rs +++ b/src/librustc_interface/proc_macro_decls.rs @@ -33,7 +33,7 @@ fn visit_item(&mut self, item: &hir::Item<'_>) { fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'_>) { } - fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) { } } diff --git a/src/librustc_lint/builtin.rs b/src/librustc_lint/builtin.rs index 0a38ca55a24..2037daded6d 100644 --- a/src/librustc_lint/builtin.rs +++ b/src/librustc_lint/builtin.rs @@ -454,7 +454,7 @@ fn check_trait_item(&mut self, cx: &LateContext<'_, '_>, trait_item: &hir::Trait desc); } - fn check_impl_item(&mut self, cx: &LateContext<'_, '_>, impl_item: &hir::ImplItem) { + fn check_impl_item(&mut self, cx: &LateContext<'_, '_>, impl_item: &hir::ImplItem<'_>) { // If the method is an impl for a trait, don't doc. if method_context(cx, impl_item.hir_id) == MethodLateContext::TraitImpl { return; @@ -1005,7 +1005,7 @@ fn check_struct_field(&mut self, cx: &LateContext<'_, '_>, field: &hir::StructFi self.perform_lint(cx, "field", field.hir_id, &field.vis, field.span, false); } - fn check_impl_item(&mut self, cx: &LateContext<'_, '_>, impl_item: &hir::ImplItem) { + fn check_impl_item(&mut self, cx: &LateContext<'_, '_>, impl_item: &hir::ImplItem<'_>) { self.perform_lint(cx, "item", impl_item.hir_id, &impl_item.vis, impl_item.span, false); } } diff --git a/src/librustc_lint/nonstandard_style.rs b/src/librustc_lint/nonstandard_style.rs index e4805f1217b..2f06d5f3f7b 100644 --- a/src/librustc_lint/nonstandard_style.rs +++ b/src/librustc_lint/nonstandard_style.rs @@ -404,7 +404,7 @@ fn check_trait_item(&mut self, cx: &LateContext<'_, '_>, ti: &hir::TraitItem<'_> } } - fn check_impl_item(&mut self, cx: &LateContext<'_, '_>, ii: &hir::ImplItem) { + fn check_impl_item(&mut self, cx: &LateContext<'_, '_>, ii: &hir::ImplItem<'_>) { if let hir::ImplItemKind::Const(..) = ii.kind { NonUpperCaseGlobals::check_upper_case(cx, "associated constant", &ii.ident); } diff --git a/src/librustc_metadata/foreign_modules.rs b/src/librustc_metadata/foreign_modules.rs index 14f83642f9c..2311e0422f6 100644 --- a/src/librustc_metadata/foreign_modules.rs +++ b/src/librustc_metadata/foreign_modules.rs @@ -34,5 +34,5 @@ fn visit_item(&mut self, it: &'tcx hir::Item<'tcx>) { } fn visit_trait_item(&mut self, _it: &'tcx hir::TraitItem<'tcx>) {} - fn visit_impl_item(&mut self, _it: &'tcx hir::ImplItem) {} + fn visit_impl_item(&mut self, _it: &'tcx hir::ImplItem<'tcx>) {} } diff --git a/src/librustc_metadata/link_args.rs b/src/librustc_metadata/link_args.rs index 2fb0790cb46..10dfc3c72e5 100644 --- a/src/librustc_metadata/link_args.rs +++ b/src/librustc_metadata/link_args.rs @@ -46,7 +46,7 @@ fn visit_item(&mut self, it: &'tcx hir::Item<'tcx>) { } fn visit_trait_item(&mut self, _it: &'tcx hir::TraitItem<'tcx>) {} - fn visit_impl_item(&mut self, _it: &'tcx hir::ImplItem) {} + fn visit_impl_item(&mut self, _it: &'tcx hir::ImplItem<'tcx>) {} } impl Collector { diff --git a/src/librustc_metadata/native_libs.rs b/src/librustc_metadata/native_libs.rs index d8230b67037..6ab20271774 100644 --- a/src/librustc_metadata/native_libs.rs +++ b/src/librustc_metadata/native_libs.rs @@ -130,7 +130,7 @@ fn visit_item(&mut self, it: &'tcx hir::Item<'tcx>) { } fn visit_trait_item(&mut self, _it: &'tcx hir::TraitItem<'tcx>) {} - fn visit_impl_item(&mut self, _it: &'tcx hir::ImplItem) {} + fn visit_impl_item(&mut self, _it: &'tcx hir::ImplItem<'tcx>) {} } impl Collector<'tcx> { diff --git a/src/librustc_metadata/rmeta/encoder.rs b/src/librustc_metadata/rmeta/encoder.rs index 0f168ff906f..6a803997468 100644 --- a/src/librustc_metadata/rmeta/encoder.rs +++ b/src/librustc_metadata/rmeta/encoder.rs @@ -945,7 +945,7 @@ fn encode_info_for_impl_item(&mut self, def_id: DefId) { }); record!(self.per_def.visibility[def_id] <- impl_item.vis); record!(self.per_def.span[def_id] <- ast_item.span); - record!(self.per_def.attributes[def_id] <- &ast_item.attrs); + record!(self.per_def.attributes[def_id] <- ast_item.attrs); self.encode_stability(def_id); self.encode_const_stability(def_id); self.encode_deprecation(def_id); @@ -1727,7 +1727,7 @@ fn visit_item(&mut self, item: &hir::Item<'_>) { fn visit_trait_item(&mut self, _trait_item: &'v hir::TraitItem<'v>) {} - fn visit_impl_item(&mut self, _impl_item: &'v hir::ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &'v hir::ImplItem<'v>) { // handled in `visit_item` above } } diff --git a/src/librustc_mir/build/mod.rs b/src/librustc_mir/build/mod.rs index 9645607e5ac..3479ad6749a 100644 --- a/src/librustc_mir/build/mod.rs +++ b/src/librustc_mir/build/mod.rs @@ -55,14 +55,8 @@ pub fn mir_build(tcx: TyCtxt<'_>, def_id: DefId) -> BodyAndCache<'_> { } Node::Item(hir::Item { kind: hir::ItemKind::Static(ty, _, body_id), .. }) | Node::Item(hir::Item { kind: hir::ItemKind::Const(ty, body_id), .. }) - => { - (*body_id, ty.span) - } | Node::ImplItem(hir::ImplItem { kind: hir::ImplItemKind::Const(ty, body_id), .. }) - => { - (*body_id, ty.span) - } - Node::TraitItem( + | Node::TraitItem( hir::TraitItem { kind: hir::TraitItemKind::Const(ty, Some(body_id)), .. } ) => { (*body_id, ty.span) diff --git a/src/librustc_mir/monomorphize/collector.rs b/src/librustc_mir/monomorphize/collector.rs index 18b811be465..83a4f224aa2 100644 --- a/src/librustc_mir/monomorphize/collector.rs +++ b/src/librustc_mir/monomorphize/collector.rs @@ -1064,7 +1064,7 @@ fn visit_trait_item(&mut self, _: &'v hir::TraitItem<'v>) { // it's still generic over some `Self: Trait`, so not a root. } - fn visit_impl_item(&mut self, ii: &'v hir::ImplItem) { + fn visit_impl_item(&mut self, ii: &'v hir::ImplItem<'v>) { match ii.kind { hir::ImplItemKind::Method(hir::FnSig { .. }, _) => { let def_id = self.tcx.hir().local_def_id(ii.hir_id); diff --git a/src/librustc_passes/dead.rs b/src/librustc_passes/dead.rs index b36db76c7df..dba5a3dbd2b 100644 --- a/src/librustc_passes/dead.rs +++ b/src/librustc_passes/dead.rs @@ -421,7 +421,7 @@ fn visit_trait_item(&mut self, _item: &hir::TraitItem<'_>) { // ignore: we are handling this in `visit_item` above } - fn visit_impl_item(&mut self, _item: &hir::ImplItem) { + fn visit_impl_item(&mut self, _item: &hir::ImplItem<'_>) { // ignore: we are handling this in `visit_item` above } } @@ -636,7 +636,7 @@ fn visit_struct_field(&mut self, field: &'tcx hir::StructField) { intravisit::walk_struct_field(self, field); } - fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem<'tcx>) { match impl_item.kind { hir::ImplItemKind::Const(_, body_id) => { if !self.symbol_is_live(impl_item.hir_id) { diff --git a/src/librustc_passes/entry.rs b/src/librustc_passes/entry.rs index ad9a924d5d3..77ee6ce8513 100644 --- a/src/librustc_passes/entry.rs +++ b/src/librustc_passes/entry.rs @@ -44,7 +44,7 @@ fn visit_trait_item(&mut self, _trait_item: &'tcx TraitItem<'tcx>) { // Entry fn is never a trait item. } - fn visit_impl_item(&mut self, _impl_item: &'tcx ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &'tcx ImplItem<'tcx>) { // Entry fn is never a trait item. } } diff --git a/src/librustc_passes/hir_stats.rs b/src/librustc_passes/hir_stats.rs index 5598613e5c9..297b527d846 100644 --- a/src/librustc_passes/hir_stats.rs +++ b/src/librustc_passes/hir_stats.rs @@ -193,7 +193,7 @@ fn visit_trait_item(&mut self, ti: &'v hir::TraitItem<'v>) { hir_visit::walk_trait_item(self, ti) } - fn visit_impl_item(&mut self, ii: &'v hir::ImplItem) { + fn visit_impl_item(&mut self, ii: &'v hir::ImplItem<'v>) { self.record("ImplItem", Id::Node(ii.hir_id), ii); hir_visit::walk_impl_item(self, ii) } diff --git a/src/librustc_passes/layout_test.rs b/src/librustc_passes/layout_test.rs index 24b6753c0c7..d7872f80d26 100644 --- a/src/librustc_passes/layout_test.rs +++ b/src/librustc_passes/layout_test.rs @@ -41,7 +41,7 @@ fn visit_item(&mut self, item: &'tcx hir::Item<'tcx>) { } fn visit_trait_item(&mut self, _: &'tcx hir::TraitItem<'tcx>) {} - fn visit_impl_item(&mut self, _: &'tcx hir::ImplItem) {} + fn visit_impl_item(&mut self, _: &'tcx hir::ImplItem<'tcx>) {} } impl VarianceTest<'tcx> { diff --git a/src/librustc_plugin_impl/build.rs b/src/librustc_plugin_impl/build.rs index 6da3e872628..8ceef5a4b76 100644 --- a/src/librustc_plugin_impl/build.rs +++ b/src/librustc_plugin_impl/build.rs @@ -25,7 +25,7 @@ fn visit_item(&mut self, item: &hir::Item<'_>) { fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'_>) { } - fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) { } } diff --git a/src/librustc_privacy/lib.rs b/src/librustc_privacy/lib.rs index b7c06609fa3..95f8cc9af35 100644 --- a/src/librustc_privacy/lib.rs +++ b/src/librustc_privacy/lib.rs @@ -1020,7 +1020,7 @@ fn visit_trait_item(&mut self, ti: &'tcx hir::TraitItem<'tcx>) { self.tables = orig_tables; } - fn visit_impl_item(&mut self, ii: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, ii: &'tcx hir::ImplItem<'tcx>) { let orig_tables = mem::replace(&mut self.tables, item_tables(self.tcx, ii.hir_id, self.empty_tables)); intravisit::walk_impl_item(self, ii); @@ -1302,7 +1302,7 @@ fn visit_trait_item(&mut self, ti: &'tcx hir::TraitItem<'tcx>) { self.tables = orig_tables; } - fn visit_impl_item(&mut self, ii: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, ii: &'tcx hir::ImplItem<'tcx>) { let orig_tables = mem::replace(&mut self.tables, item_tables(self.tcx, ii.hir_id, self.empty_tables)); intravisit::walk_impl_item(self, ii); diff --git a/src/librustc_traits/lowering/mod.rs b/src/librustc_traits/lowering/mod.rs index 1f5958ef8fb..e6de2b279fc 100644 --- a/src/librustc_traits/lowering/mod.rs +++ b/src/librustc_traits/lowering/mod.rs @@ -679,7 +679,7 @@ fn visit_trait_item(&mut self, trait_item: &'tcx hir::TraitItem<'tcx>) { intravisit::walk_trait_item(self, trait_item); } - fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem<'tcx>) { self.process_attrs(impl_item.hir_id, &impl_item.attrs); intravisit::walk_impl_item(self, impl_item); } diff --git a/src/librustc_typeck/check/method/suggest.rs b/src/librustc_typeck/check/method/suggest.rs index 3c6e6d974d9..aecc46d3128 100644 --- a/src/librustc_typeck/check/method/suggest.rs +++ b/src/librustc_typeck/check/method/suggest.rs @@ -1015,7 +1015,7 @@ fn visit_item(&mut self, i: &'v hir::Item<'v>) { fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'_>) {} - fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) {} + fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) {} } tcx.hir().krate().visit_all_item_likes(&mut Visitor { diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index ce5a385b587..5ba03ab753b 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -755,7 +755,7 @@ fn visit_item(&mut self, i: &'tcx hir::Item<'tcx>) { check_item_type(self.tcx, i); } fn visit_trait_item(&mut self, _: &'tcx hir::TraitItem<'tcx>) { } - fn visit_impl_item(&mut self, _: &'tcx hir::ImplItem) { } + fn visit_impl_item(&mut self, _: &'tcx hir::ImplItem<'tcx>) { } } pub fn check_wf_new(tcx: TyCtxt<'_>) { @@ -1865,7 +1865,7 @@ fn check_on_unimplemented(tcx: TyCtxt<'_>, trait_def_id: DefId, item: &hir::Item fn report_forbidden_specialization( tcx: TyCtxt<'_>, - impl_item: &hir::ImplItem, + impl_item: &hir::ImplItem<'_>, parent_impl: DefId, ) { let mut err = struct_span_err!( @@ -1895,7 +1895,7 @@ fn check_specialization_validity<'tcx>( trait_def: &ty::TraitDef, trait_item: &ty::AssocItem, impl_id: DefId, - impl_item: &hir::ImplItem, + impl_item: &hir::ImplItem<'_>, ) { let kind = match impl_item.kind { hir::ImplItemKind::Const(..) => ty::AssocKind::Const, diff --git a/src/librustc_typeck/check/wfcheck.rs b/src/librustc_typeck/check/wfcheck.rs index 207db48860f..5b7513b5263 100644 --- a/src/librustc_typeck/check/wfcheck.rs +++ b/src/librustc_typeck/check/wfcheck.rs @@ -1093,7 +1093,7 @@ fn visit_trait_item(&self, trait_item: &'tcx hir::TraitItem<'tcx>) { self.tcx.ensure().check_trait_item_well_formed(def_id); } - fn visit_impl_item(&self, impl_item: &'tcx hir::ImplItem) { + fn visit_impl_item(&self, impl_item: &'tcx hir::ImplItem<'tcx>) { debug!("visit_impl_item: {:?}", impl_item); let def_id = self.tcx.hir().local_def_id(impl_item.hir_id); self.tcx.ensure().check_impl_item_well_formed(def_id); diff --git a/src/librustc_typeck/check_unused.rs b/src/librustc_typeck/check_unused.rs index 950954a66ef..7377c4df979 100644 --- a/src/librustc_typeck/check_unused.rs +++ b/src/librustc_typeck/check_unused.rs @@ -41,7 +41,7 @@ fn visit_item(&mut self, item: &hir::Item<'_>) { fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'_>) { } - fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) { } } @@ -234,6 +234,6 @@ fn visit_item(&mut self, item: &hir::Item<'_>) { fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'_>) { } - fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) { } } diff --git a/src/librustc_typeck/coherence/inherent_impls.rs b/src/librustc_typeck/coherence/inherent_impls.rs index 2e4c25cf0df..16fe6d529a4 100644 --- a/src/librustc_typeck/coherence/inherent_impls.rs +++ b/src/librustc_typeck/coherence/inherent_impls.rs @@ -257,7 +257,7 @@ fn visit_item(&mut self, item: &hir::Item<'_>) { fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'_>) { } - fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) { } } diff --git a/src/librustc_typeck/coherence/inherent_impls_overlap.rs b/src/librustc_typeck/coherence/inherent_impls_overlap.rs index 11bd0209c0d..1acbf0795a6 100644 --- a/src/librustc_typeck/coherence/inherent_impls_overlap.rs +++ b/src/librustc_typeck/coherence/inherent_impls_overlap.rs @@ -101,6 +101,6 @@ fn visit_item(&mut self, item: &'v hir::Item<'v>) { fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'v>) { } - fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'v>) { } } diff --git a/src/librustc_typeck/coherence/orphan.rs b/src/librustc_typeck/coherence/orphan.rs index 85e5dad0ccd..109609f5d49 100644 --- a/src/librustc_typeck/coherence/orphan.rs +++ b/src/librustc_typeck/coherence/orphan.rs @@ -221,6 +221,6 @@ fn visit_item(&mut self, item: &hir::Item<'_>) { fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'_>) { } - fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) { } } diff --git a/src/librustc_typeck/coherence/unsafety.rs b/src/librustc_typeck/coherence/unsafety.rs index 0a7c907fe5d..324ac0a0f35 100644 --- a/src/librustc_typeck/coherence/unsafety.rs +++ b/src/librustc_typeck/coherence/unsafety.rs @@ -81,6 +81,6 @@ fn visit_item(&mut self, item: &'v hir::Item<'v>) { fn visit_trait_item(&mut self, _trait_item: &hir::TraitItem<'_>) { } - fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, _impl_item: &hir::ImplItem<'_>) { } } diff --git a/src/librustc_typeck/collect.rs b/src/librustc_typeck/collect.rs index c09d56b3984..9d260bde751 100644 --- a/src/librustc_typeck/collect.rs +++ b/src/librustc_typeck/collect.rs @@ -150,7 +150,7 @@ fn visit_trait_item(&mut self, trait_item: &'tcx hir::TraitItem<'tcx>) { intravisit::walk_trait_item(self, trait_item); } - fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &'tcx hir::ImplItem<'tcx>) { convert_impl_item(self.tcx, impl_item.hir_id); intravisit::walk_impl_item(self, impl_item); } @@ -1702,7 +1702,7 @@ fn visit_item(&mut self, it: &'tcx Item<'tcx>) { intravisit::walk_item(self, it); } } - fn visit_impl_item(&mut self, it: &'tcx ImplItem) { + fn visit_impl_item(&mut self, it: &'tcx ImplItem<'tcx>) { debug!("find_existential_constraints: visiting {:?}", it); let def_id = self.tcx.hir().local_def_id(it.hir_id); // The opaque type itself or its children are not within its reveal scope. diff --git a/src/librustc_typeck/impl_wf_check.rs b/src/librustc_typeck/impl_wf_check.rs index b7691189865..7bcc5386445 100644 --- a/src/librustc_typeck/impl_wf_check.rs +++ b/src/librustc_typeck/impl_wf_check.rs @@ -91,7 +91,7 @@ fn visit_item(&mut self, item: &'tcx hir::Item<'tcx>) { fn visit_trait_item(&mut self, _trait_item: &'tcx hir::TraitItem<'tcx>) { } - fn visit_impl_item(&mut self, _impl_item: &'tcx hir::ImplItem) { } + fn visit_impl_item(&mut self, _impl_item: &'tcx hir::ImplItem<'tcx>) { } } fn enforce_impl_params_are_constrained( diff --git a/src/librustc_typeck/namespace.rs b/src/librustc_typeck/namespace.rs index 1e1d3e7865c..553c93e0958 100644 --- a/src/librustc_typeck/namespace.rs +++ b/src/librustc_typeck/namespace.rs @@ -19,8 +19,8 @@ fn from(a_kind: ty::AssocKind) -> Self { } } -impl<'a> From <&'a hir::ImplItemKind> for Namespace { - fn from(impl_kind: &'a hir::ImplItemKind) -> Self { +impl<'a> From <&'a hir::ImplItemKind<'_>> for Namespace { + fn from(impl_kind: &'a hir::ImplItemKind<'_>) -> Self { match *impl_kind { hir::ImplItemKind::OpaqueTy(..) | hir::ImplItemKind::TyAlias(..) => Namespace::Type, diff --git a/src/librustc_typeck/outlives/implicit_infer.rs b/src/librustc_typeck/outlives/implicit_infer.rs index edf83b1de1d..e3947a84989 100644 --- a/src/librustc_typeck/outlives/implicit_infer.rs +++ b/src/librustc_typeck/outlives/implicit_infer.rs @@ -115,7 +115,7 @@ fn visit_item(&mut self, item: &hir::Item<'_>) { fn visit_trait_item(&mut self, _trait_item: &'tcx hir::TraitItem<'tcx>) {} - fn visit_impl_item(&mut self, _impl_item: &'tcx hir::ImplItem) {} + fn visit_impl_item(&mut self, _impl_item: &'tcx hir::ImplItem<'tcx>) {} } fn insert_required_predicates_to_be_wf<'tcx>( diff --git a/src/librustc_typeck/outlives/test.rs b/src/librustc_typeck/outlives/test.rs index a8c4f9c0ebb..081d0ff1e16 100644 --- a/src/librustc_typeck/outlives/test.rs +++ b/src/librustc_typeck/outlives/test.rs @@ -34,5 +34,5 @@ fn visit_item(&mut self, item: &'tcx hir::Item<'tcx>) { } fn visit_trait_item(&mut self, _: &'tcx hir::TraitItem<'tcx>) {} - fn visit_impl_item(&mut self, _: &'tcx hir::ImplItem) {} + fn visit_impl_item(&mut self, _: &'tcx hir::ImplItem<'tcx>) {} } diff --git a/src/librustc_typeck/variance/constraints.rs b/src/librustc_typeck/variance/constraints.rs index ff29c3ca4bd..1d16562e0e6 100644 --- a/src/librustc_typeck/variance/constraints.rs +++ b/src/librustc_typeck/variance/constraints.rs @@ -110,7 +110,7 @@ fn visit_trait_item(&mut self, trait_item: &hir::TraitItem<'_>) { } } - fn visit_impl_item(&mut self, impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &hir::ImplItem<'_>) { if let hir::ImplItemKind::Method(..) = impl_item.kind { self.visit_node_helper(impl_item.hir_id); } diff --git a/src/librustc_typeck/variance/terms.rs b/src/librustc_typeck/variance/terms.rs index 4de16e71553..c97ac24ce50 100644 --- a/src/librustc_typeck/variance/terms.rs +++ b/src/librustc_typeck/variance/terms.rs @@ -173,7 +173,7 @@ fn visit_trait_item(&mut self, trait_item: &hir::TraitItem<'_>) { } } - fn visit_impl_item(&mut self, impl_item: &hir::ImplItem) { + fn visit_impl_item(&mut self, impl_item: &hir::ImplItem<'_>) { if let hir::ImplItemKind::Method(..) = impl_item.kind { self.add_inferreds_for_item(impl_item.hir_id); } diff --git a/src/librustc_typeck/variance/test.rs b/src/librustc_typeck/variance/test.rs index 416cb91c232..1233be43e09 100644 --- a/src/librustc_typeck/variance/test.rs +++ b/src/librustc_typeck/variance/test.rs @@ -30,5 +30,5 @@ fn visit_item(&mut self, item: &'tcx hir::Item<'tcx>) { } fn visit_trait_item(&mut self, _: &'tcx hir::TraitItem<'tcx>) { } - fn visit_impl_item(&mut self, _: &'tcx hir::ImplItem) { } + fn visit_impl_item(&mut self, _: &'tcx hir::ImplItem<'tcx>) { } } diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 5dd82689369..55c3e9e4a24 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -1127,7 +1127,7 @@ fn clean(&self, cx: &DocContext<'_>) -> Item { } } -impl Clean for hir::ImplItem { +impl Clean for hir::ImplItem<'_> { fn clean(&self, cx: &DocContext<'_>) -> Item { let inner = match self.kind { hir::ImplItemKind::Const(ref ty, expr) => { diff --git a/src/librustdoc/doctree.rs b/src/librustdoc/doctree.rs index f5de869cf13..6aa23248719 100644 --- a/src/librustdoc/doctree.rs +++ b/src/librustdoc/doctree.rs @@ -206,7 +206,7 @@ pub struct Impl<'hir> { pub generics: &'hir hir::Generics, pub trait_: &'hir Option, pub for_: &'hir hir::Ty, - pub items: Vec<&'hir hir::ImplItem>, + pub items: Vec<&'hir hir::ImplItem<'hir>>, pub attrs: &'hir [ast::Attribute], pub whence: Span, pub vis: &'hir hir::Visibility,