]> git.lizzy.rs Git - rust.git/commitdiff
Use Arena inside hir::ImplItem.
authorCamille GILLOT <gillot.camille@gmail.com>
Thu, 28 Nov 2019 21:16:44 +0000 (22:16 +0100)
committerCamille GILLOT <gillot.camille@gmail.com>
Sat, 21 Dec 2019 22:31:47 +0000 (23:31 +0100)
57 files changed:
src/librustc/hir/check_attr.rs
src/librustc/hir/intravisit.rs
src/librustc/hir/itemlikevisit.rs
src/librustc/hir/lowering.rs
src/librustc/hir/lowering/item.rs
src/librustc/hir/map/blocks.rs
src/librustc/hir/map/collector.rs
src/librustc/hir/map/hir_id_validator.rs
src/librustc/hir/map/mod.rs
src/librustc/hir/mod.rs
src/librustc/hir/print.rs
src/librustc/ich/impls_hir.rs
src/librustc/infer/error_reporting/mod.rs
src/librustc/lint/context.rs
src/librustc/lint/mod.rs
src/librustc/middle/diagnostic_items.rs
src/librustc/middle/lang_items.rs
src/librustc/middle/reachable.rs
src/librustc/middle/resolve_lifetime.rs
src/librustc/middle/stability.rs
src/librustc_codegen_utils/symbol_names_test.rs
src/librustc_incremental/assert_dep_graph.rs
src/librustc_incremental/persist/dirty_clean.rs
src/librustc_interface/proc_macro_decls.rs
src/librustc_lint/builtin.rs
src/librustc_lint/nonstandard_style.rs
src/librustc_metadata/foreign_modules.rs
src/librustc_metadata/link_args.rs
src/librustc_metadata/native_libs.rs
src/librustc_metadata/rmeta/encoder.rs
src/librustc_mir/build/mod.rs
src/librustc_mir/monomorphize/collector.rs
src/librustc_passes/dead.rs
src/librustc_passes/entry.rs
src/librustc_passes/hir_stats.rs
src/librustc_passes/layout_test.rs
src/librustc_plugin_impl/build.rs
src/librustc_privacy/lib.rs
src/librustc_traits/lowering/mod.rs
src/librustc_typeck/check/method/suggest.rs
src/librustc_typeck/check/mod.rs
src/librustc_typeck/check/wfcheck.rs
src/librustc_typeck/check_unused.rs
src/librustc_typeck/coherence/inherent_impls.rs
src/librustc_typeck/coherence/inherent_impls_overlap.rs
src/librustc_typeck/coherence/orphan.rs
src/librustc_typeck/coherence/unsafety.rs
src/librustc_typeck/collect.rs
src/librustc_typeck/impl_wf_check.rs
src/librustc_typeck/namespace.rs
src/librustc_typeck/outlives/implicit_infer.rs
src/librustc_typeck/outlives/test.rs
src/librustc_typeck/variance/constraints.rs
src/librustc_typeck/variance/terms.rs
src/librustc_typeck/variance/test.rs
src/librustdoc/clean/mod.rs
src/librustdoc/doctree.rs

index 6fbb8d783d45aa5c1b2b0a7141bf962a2034f663..03282fc99a0d4530119e19f6fe8d78bce1ff7797 100644 (file)
@@ -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)
index 6143e2281e42fab4d5f23d33449eb27fabfa6f73..fcd2d7584207e18f9037ee56ec8f7f24a7175ebb 100644 (file)
@@ -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: _,
index 723cede0be6a7dcd6b572a8878d3cec1bfd6fce8..30b41ea4acb3b206b4b7b8ccfdd644d2867256a5 100644 (file)
@@ -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);
     }
 }
index d380b87916c6407005be53f0f362f55846fbb575..74615cbe9455e8d198299f289c168e6f0dd14cd2 100644 (file)
@@ -98,7 +98,7 @@ pub struct LoweringContext<'a, 'hir: 'a> {
     items: BTreeMap<hir::HirId, hir::Item<'hir>>,
 
     trait_items: BTreeMap<hir::TraitItemId, hir::TraitItem<'hir>>,
-    impl_items: BTreeMap<hir::ImplItemId, hir::ImplItem>,
+    impl_items: BTreeMap<hir::ImplItemId, hir::ImplItem<'hir>>,
     bodies: BTreeMap<hir::BodyId, hir::Body>,
     exported_macros: Vec<hir::MacroDef<'hir>>,
     non_exported_macro_attrs: Vec<ast::Attribute>,
index 35a4f7cde6f4b7866dadbdd9c4e41ec16952010c..1953d6f88f841e57e8e29bce1beea89d8551a476 100644 (file)
@@ -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] */),
index a9388825f168f107ca6a697a3e2f82fa43b502cd..ab04a8a10aa2f7d508484cea14ec1cd74ae61e58 100644 (file)
@@ -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,
index 95b44ba403af87c89500b150f50ef0d7af292b13..8e60581fbcef75ad0e147a59e214a53f3c34b113 100644 (file)
@@ -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| {
index 4657f8b03b01b67d5a0083beb0d3a4dfd2d10563..0a06473ed30a99e3e89d2dd4ac610c8ceaa30c79 100644 (file)
@@ -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));
     }
index d15d59b221028195ff269fb02b33bfd960417dea..6803a605437093f4351b3d2fd6f9ad16e2417957 100644 (file)
@@ -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,
index 991e51e6dc3d0eef0a659eb778232090134b36d1..51368d2acc34a5ff2f3e0ee6d92eb88b8bccf527 100644 (file)
@@ -759,7 +759,7 @@ pub struct Crate<'hir> {
     pub items: BTreeMap<HirId, Item<'hir>>,
 
     pub trait_items: BTreeMap<TraitItemId, TraitItem<'hir>>,
-    pub impl_items: BTreeMap<ImplItemId, ImplItem>,
+    pub impl_items: BTreeMap<ImplItemId, ImplItem<'hir>>,
     pub bodies: BTreeMap<BodyId, Body>,
     pub trait_impls: BTreeMap<DefId, Vec<HirId>>,
 
@@ -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<Attribute>,
+    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<Ty>, BodyId),
+    Const(&'hir Ty, BodyId),
     /// A method implementation with the given signature and body.
     Method(FnSig, BodyId),
     /// An associated type.
-    TyAlias(P<Ty>),
+    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),
index d24d08575e7168600873778d523929275d462752..dc270fc40c989e83d6dd9874ba51d61e8adf4566 100644 (file)
@@ -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());
index 149e647ca7432d7778bcfb04eb5868210684f10f..a91535b55162a9756ef47c11d6493676dfd42e3e 100644 (file)
@@ -172,7 +172,7 @@ fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHas
 }
 
 
-impl<'a> HashStable<StableHashingContext<'a>> for hir::ImplItem {
+impl<'a> HashStable<StableHashingContext<'a>> for hir::ImplItem<'_> {
     fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHasher) {
         let hir::ImplItem {
             hir_id: _,
index f5e52c4d4b21789364e30fd501877c79c482e8f5..347960ac222feac05324674fd2f587e6fb92a2b4 100644 (file)
@@ -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(..)
index 8327977d9b0fd43fa2c2a998d07f9e9767df9d42..490599e582f3e2bba0bc949a8dded28d776ff43b 100644 (file)
@@ -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| {
index 3dad72543f5af85c04adb0a0663cb3b250c0ed1c..12417d6089a3f66b95ca1e1387ca2c490a769ec3 100644 (file)
@@ -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);
         });
index 466c7a37d0f6c7ff43a125f67df22ff2e62ffdb3..96faf567463bff321259c1e531b3ce403f8adaed 100644 (file)
@@ -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);
     }
 }
index dadc9261a3e0935121bf7238cc9d06946b573471..d87eec05866142eb2c9fe7a65c6d4373d02d65c1 100644 (file)
@@ -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.
     }
 }
index 643c92185c8025f17272817a4e354f0d0adcef22..6746df6c7ded183ba931fb189217ea9a7f523812 100644 (file)
@@ -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
     }
 }
index c6a4a926ae484b898930bd6584d5ae464cad5a02..38a7c67b907e900da67001ce7062a33cef6e08df 100644 (file)
@@ -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, _) => {
index 03c6abfbb846a22b14556008f01d7e4255b29163..0aef5b24fc7bca10fe303903fe293d35bebfd564 100644 (file)
@@ -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() {
index 1a21be66c43265d1808e655213b90134dab01efc..893aea16fd2b94e216edfa7c76971994c520c67b 100644 (file)
@@ -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);
     }
 }
index db64e736a5ce7e160f0474b086134211b9e83e0c..feab4ca0a31afad92e46f67085a18dc1a1a64157 100644 (file)
@@ -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);
     }
index b8f58ca2e91afb540930ba08772945d8815f35dc..7c9ed24f53b02b2331c1d59440e09c9db8ca6d49 100644 (file)
@@ -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);
     }
 }
index c13dd59583483576649d11b3be57e77d8b374b7e..e3def1756267c48feb491be06a0bb3b5d3abe7ed 100644 (file)
@@ -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<'_>) {
     }
 }
 
index 0a38ca55a248ae29b2fbd334e90c02576cc86641..2037daded6d30d18f7fa2f3de9574a2c02c2ab66 100644 (file)
@@ -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);
     }
 }
index e4805f1217b71d871ac5308d2b9cf97521a8051a..2f06d5f3f7b684a60233081ec15146a587272ff4 100644 (file)
@@ -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);
         }
index 14f83642f9c258ddf70cf7dce808b046764dc760..2311e0422f65d6d5d381976e5a57434548a15710 100644 (file)
@@ -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>) {}
 }
index 2fb0790cb4669546649a5ffb2e18aadbb99eb681..10dfc3c72e5cf3e7797bb087400e4ebaba25e245 100644 (file)
@@ -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 {
index d8230b67037d04217894d58a16ac8bf4c8ff3d6f..6ab2027177424c05140fc29182723ea71f248712 100644 (file)
@@ -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> {
index 0f168ff906fe5939927a6f45f736cce2e2901476..6a80399746822a206775a2cd43e9daf90ae4103f 100644 (file)
@@ -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
     }
 }
index 9645607e5ac1a728c29cd81e9ab4f4bf504d1ea3..3479ad6749a9041f07f4d0a74281dfab7c78c060 100644 (file)
@@ -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)
index 18b811be46594595a822a0bb0eaba728ecd8cb74..83a4f224aa257a33fcbb872c6ec71f6b07679fed 100644 (file)
@@ -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);
index b36db76c7df95ed5239169a665e40583335e591d..dba5a3dbd2bab1596e1ed7b834964a5df1d3947a 100644 (file)
@@ -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) {
index ad9a924d5d37fb03fa0af1b67df3550dbbf26b7b..77ee6ce8513c1f9e0771cf5206b07b2753056c96 100644 (file)
@@ -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.
     }
 }
index 5598613e5c98f5e19f24a811d91e82dd1f0aeae3..297b527d8462eec98babfaaa4e038344babc0f90 100644 (file)
@@ -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)
     }
index 24b6753c0c7ed8a38fc4447197ba2f5d0e2b0df5..d7872f80d260a1fcd4091d5dad45f548affa1ef5 100644 (file)
@@ -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> {
index 6da3e87262881a26be0806a0a1524a72dcf84fb0..8ceef5a4b76098aa969ddd075d5aaa8735a1ba55 100644 (file)
@@ -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<'_>) {
     }
 }
 
index b7c06609fa35edb83bf37b310d02a755535154f5..95f8cc9af3573407e75c541c54052a1c2fa61ab1 100644 (file)
@@ -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);
index 1f5958ef8fbf2e7af745c8b0fd361a20fca6706a..e6de2b279fca278973c6e6cc38258b10d5a938d1 100644 (file)
@@ -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);
     }
index 3c6e6d974d9d7cd44bc40df9199aeb821b0be3ef..aecc46d31288f530dc8a08944fd1d55d52460800 100644 (file)
@@ -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 {
index ce5a385b587e129594ac863d42357ea3d71902d1..5ba03ab753b354fdd384cb3c6e184a494bf10ece 100644 (file)
@@ -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,
index 207db48860f98fda7296ff7550656bddebcde1f9..5b7513b52633833bda728965a5306e39ec0d7e38 100644 (file)
@@ -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);
index 950954a66ef37d29e3ee925c1c77dac10e71d770..7377c4df9790730e44a614efac123e81ecb2a202 100644 (file)
@@ -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<'_>) {
     }
 }
index 2e4c25cf0dffad29b103d3c64968f45f04f13f40..16fe6d529a417664879066ae97cdb692b6b4f9c6 100644 (file)
@@ -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<'_>) {
     }
 }
 
index 11bd0209c0d204dabced73b1df9a460b94db7a55..1acbf0795a6b660bbe4fa80abb36e6c175ea5fea 100644 (file)
@@ -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>) {
     }
 }
index 85e5dad0ccd31dcaf150f3b4832d1651787e8e88..109609f5d49753e35334562a65c3a8cab5174b6b 100644 (file)
@@ -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<'_>) {
     }
 }
index 0a7c907fe5df9c12250203a3eceed98abd4b3c5b..324ac0a0f355880fa687c9ce49523643e5af0b09 100644 (file)
@@ -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<'_>) {
     }
 }
index c09d56b3984b038de3e229ea989d9d574adba859..9d260bde751e5f69a4ab2f3f8ab38ed45013e308 100644 (file)
@@ -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.
index b7691189865b01a74f1e6d568ea49397bb3f401a..7bcc5386445ec35ca20e53e964b668d89d939d79 100644 (file)
@@ -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(
index 1e1d3e7865c92cba748b9dbde85ff3bc2f30a813..553c93e09582fededeb93dfa5c14ff1cb32aadd5 100644 (file)
@@ -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,
index edf83b1de1de60a0b9c5de660a1b11de0e7b778c..e3947a84989e769b2351173cbec39a8e13f5cc6c 100644 (file)
@@ -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>(
index a8c4f9c0ebb519b0058187e1c22b6f61902d5f05..081d0ff1e160033b476966be82f189d206c6000c 100644 (file)
@@ -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>) {}
 }
index ff29c3ca4bd6431f9741141a8794e43f64c0d261..1d16562e0e6959bba4a48afff5a904952049693e 100644 (file)
@@ -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);
         }
index 4de16e715539fb48a5a7e00d9e33b932ad42b442..c97ac24ce502230f0b26002b67cb31ddf3df1218 100644 (file)
@@ -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);
         }
index 416cb91c232999a20c147138ae7bc3ba2b941697..1233be43e09fa31bfbfc2c18475255192e9c9730 100644 (file)
@@ -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>) { }
 }
index 5dd82689369777aa89ffe65fb723a2ac74fa5e39..55c3e9e4a244aaa1817089d34753b66b0fd41455 100644 (file)
@@ -1127,7 +1127,7 @@ fn clean(&self, cx: &DocContext<'_>) -> Item {
     }
 }
 
-impl Clean<Item> for hir::ImplItem {
+impl Clean<Item> for hir::ImplItem<'_> {
     fn clean(&self, cx: &DocContext<'_>) -> Item {
         let inner = match self.kind {
             hir::ImplItemKind::Const(ref ty, expr) => {
index f5de869cf132b9134ececb9112e317fdc9be827f..6aa23248719e8552d485e9f62804afd209ee0de1 100644 (file)
@@ -206,7 +206,7 @@ pub struct Impl<'hir> {
     pub generics: &'hir hir::Generics,
     pub trait_: &'hir Option<hir::TraitRef>,
     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,