}
}
- 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(..) => {
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)
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) {
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: _,
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> {
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);
}
}
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> {
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);
}
}
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>,
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()),
),
),
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) => {
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] */),
}
}
-impl MaybeFnLike for ast::ImplItem {
+impl MaybeFnLike for ast::ImplItem<'_> {
fn is_fn_like(&self) -> bool {
match self.kind {
ast::ImplItemKind::Method(..) => true,
});
}
- 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| {
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));
}
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
}
}
- 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))
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,
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>>,
&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]
}
/// 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),
}
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),
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());
}
-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: _,
}
}
- 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(..)
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| {
);
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);
});
}
- 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);
});
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);
}
}
// 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.
}
}
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());
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
}
}
}
}
- 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, _) => {
});
}
- 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 {
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() {
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);
}
}
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);
}
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);
}
}
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<'_>) {
}
}
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;
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);
}
}
}
}
- 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);
}
}
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>) {}
}
}
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 {
}
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> {
});
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);
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
}
}
}
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)
// 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);
// 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
}
}
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) {
// 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.
}
}
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)
}
}
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> {
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<'_>) {
}
}
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);
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);
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);
}
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 {
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<'_>) {
fn report_forbidden_specialization(
tcx: TyCtxt<'_>,
- impl_item: &hir::ImplItem,
+ impl_item: &hir::ImplItem<'_>,
parent_impl: DefId,
) {
let mut err = struct_span_err!(
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,
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);
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<'_>) {
}
}
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<'_>) {
}
}
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<'_>) {
}
}
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>) {
}
}
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<'_>) {
}
}
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<'_>) {
}
}
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);
}
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.
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(
}
}
-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,
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>(
}
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>) {}
}
}
}
- 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);
}
}
}
- 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);
}
}
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 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) => {
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,