Struct rustc_passes::hir_stats::StatCollector[−][src]

struct StatCollector<'k> {
    krate: Option<&'k Crate<'k>>,
    data: FxHashMap<&'static str, NodeData>,
    seen: FxHashSet<Id>,
}

Fields

krate: Option<&'k Crate<'k>>data: FxHashMap<&'static str, NodeData>seen: FxHashSet<Id>

Implementations

impl<'k> StatCollector<'k>[src]

fn record<T>(&mut self, label: &'static str, id: Id, node: &T)[src]

fn print(&self, title: &str)[src]

Trait Implementations

impl<'v> Visitor<'v> for StatCollector<'v>[src]

fn visit_foreign_item(&mut self, i: &'v ForeignItem)[src]

fn visit_item(&mut self, i: &'v Item)[src]

fn visit_local(&mut self, l: &'v Local)[src]

fn visit_block(&mut self, b: &'v Block)[src]

fn visit_stmt(&mut self, s: &'v Stmt)[src]

fn visit_arm(&mut self, a: &'v Arm)[src]

fn visit_pat(&mut self, p: &'v Pat)[src]

fn visit_expr(&mut self, ex: &'v Expr)[src]

fn visit_ty(&mut self, t: &'v Ty)[src]

fn visit_fn(&mut self, fk: FnKind<'v>, s: Span, _: NodeId)[src]

fn visit_assoc_item(&mut self, item: &'v AssocItem, ctxt: AssocCtxt)[src]

fn visit_param_bound(&mut self, bounds: &'v GenericBound)[src]

fn visit_field_def(&mut self, s: &'v FieldDef)[src]

fn visit_variant(&mut self, v: &'v Variant)[src]

fn visit_lifetime(&mut self, lifetime: &'v Lifetime)[src]

fn visit_mac_call(&mut self, mac: &'v MacCall)[src]

fn visit_path_segment(&mut self, path_span: Span, path_segment: &'v PathSegment)[src]

fn visit_assoc_ty_constraint(&mut self, constraint: &'v AssocTyConstraint)[src]

fn visit_attribute(&mut self, attr: &'v Attribute)[src]

fn visit_name(&mut self, _span: Span, _name: Symbol)[src]

fn visit_ident(&mut self, ident: Ident)[src]

fn visit_global_asm(&mut self, ga: &'ast GlobalAsm)[src]

fn visit_param(&mut self, param: &'ast Param)[src]

fn visit_anon_const(&mut self, c: &'ast AnonConst)[src]

fn visit_expr_post(&mut self, _ex: &'ast Expr)[src]

fn visit_generic_param(&mut self, param: &'ast GenericParam)[src]

fn visit_generics(&mut self, g: &'ast Generics)[src]

fn visit_where_predicate(&mut self, p: &'ast WherePredicate)[src]

fn visit_trait_ref(&mut self, t: &'ast TraitRef)[src]

fn visit_poly_trait_ref(
    &mut self,
    t: &'ast PolyTraitRef,
    m: &'ast TraitBoundModifier
)
[src]

fn visit_variant_data(&mut self, s: &'ast VariantData)[src]

fn visit_enum_def(
    &mut self,
    enum_definition: &'ast EnumDef,
    generics: &'ast Generics,
    item_id: NodeId,
    Span
)
[src]

fn visit_label(&mut self, label: &'ast Label)[src]

fn visit_mac_def(&mut self, _mac: &'ast MacroDef, _id: NodeId)[src]

fn visit_path(&mut self, path: &'ast Path, _id: NodeId)[src]

fn visit_use_tree(&mut self, use_tree: &'ast UseTree, id: NodeId, _nested: bool)[src]

fn visit_generic_args(
    &mut self,
    path_span: Span,
    generic_args: &'ast GenericArgs
)
[src]

fn visit_generic_arg(&mut self, generic_arg: &'ast GenericArg)[src]

fn visit_vis(&mut self, vis: &'ast Visibility)[src]

fn visit_fn_ret_ty(&mut self, ret_ty: &'ast FnRetTy)[src]

fn visit_fn_header(&mut self, _header: &'ast FnHeader)[src]

fn visit_expr_field(&mut self, f: &'ast ExprField)[src]

fn visit_pat_field(&mut self, fp: &'ast PatField)[src]

impl<'v> Visitor<'v> for StatCollector<'v>[src]

fn visit_param(&mut self, param: &'v Param<'v>)[src]

type Map = Map<'v>

fn nested_visit_map(&mut self) -> NestedVisitorMap<Self::Map>[src]

The default versions of the visit_nested_XXX routines invoke this method to get a map to use. By selecting an enum variant, you control which kinds of nested HIR are visited; see NestedVisitorMap for details. By “nested HIR”, we are referring to bits of HIR that are not directly embedded within one another but rather indirectly, through a table in the crate. This is done to control dependencies during incremental compilation: the non-inline bits of HIR can be tracked and hashed separately. Read more

fn visit_nested_item(&mut self, id: ItemId)[src]

Invoked when a nested item is encountered. By default does nothing unless you override nested_visit_map to return other than None, in which case it will walk the item. You probably don’t want to override this method – instead, override nested_visit_map or use the “shallow” or “deep” visit patterns described on itemlikevisit::ItemLikeVisitor. The only reason to override this method is if you want a nested pattern but cannot supply a Map; see nested_visit_map for advice. Read more

fn visit_nested_trait_item(&mut self, trait_item_id: TraitItemId)[src]

Like visit_nested_item(), but for trait items. See visit_nested_item() for advice on when to override this method. Read more

fn visit_nested_impl_item(&mut self, impl_item_id: ImplItemId)[src]

Like visit_nested_item(), but for impl items. See visit_nested_item() for advice on when to override this method. Read more

fn visit_nested_foreign_item(&mut self, id: ForeignItemId)[src]

Like visit_nested_item(), but for foreign items. See visit_nested_item() for advice on when to override this method. Read more

fn visit_nested_body(&mut self, body_id: BodyId)[src]

Invoked to visit the body of a function, method or closure. Like visit_nested_item, does nothing by default unless you override nested_visit_map to return other than None, in which case it will walk the body. Read more

fn visit_item(&mut self, i: &'v Item<'v>)[src]

Visits the top-level item and (optionally) nested items / impl items. See visit_nested_item for details. Read more

fn visit_foreign_item(&mut self, i: &'v ForeignItem<'v>)[src]

fn visit_local(&mut self, l: &'v Local<'v>)[src]

fn visit_block(&mut self, b: &'v Block<'v>)[src]

fn visit_stmt(&mut self, s: &'v Stmt<'v>)[src]

fn visit_arm(&mut self, a: &'v Arm<'v>)[src]

fn visit_pat(&mut self, p: &'v Pat<'v>)[src]

fn visit_expr(&mut self, ex: &'v Expr<'v>)[src]

fn visit_ty(&mut self, t: &'v Ty<'v>)[src]

fn visit_fn(
    &mut self,
    fk: FnKind<'v>,
    fd: &'v FnDecl<'v>,
    b: BodyId,
    s: Span,
    id: HirId
)
[src]

fn visit_where_predicate(&mut self, predicate: &'v WherePredicate<'v>)[src]

fn visit_trait_item(&mut self, ti: &'v TraitItem<'v>)[src]

fn visit_impl_item(&mut self, ii: &'v ImplItem<'v>)[src]

fn visit_param_bound(&mut self, bounds: &'v GenericBound<'v>)[src]

fn visit_field_def(&mut self, s: &'v FieldDef<'v>)[src]

fn visit_variant(
    &mut self,
    v: &'v Variant<'v>,
    g: &'v Generics<'v>,
    item_id: HirId
)
[src]

fn visit_lifetime(&mut self, lifetime: &'v Lifetime)[src]

fn visit_qpath(&mut self, qpath: &'v QPath<'v>, id: HirId, span: Span)[src]

fn visit_path(&mut self, path: &'v Path<'v>, _id: HirId)[src]

fn visit_path_segment(
    &mut self,
    path_span: Span,
    path_segment: &'v PathSegment<'v>
)
[src]

fn visit_assoc_type_binding(&mut self, type_binding: &'v TypeBinding<'v>)[src]

fn visit_attribute(&mut self, _: HirId, attr: &'v Attribute)[src]

fn visit_macro_def(&mut self, macro_def: &'v MacroDef<'v>)[src]

fn visit_body(&mut self, b: &'v Body<'v>)[src]

fn as_deep_visitor(&mut self) -> DeepVisitor<'_, Self>[src]

When invoking visit_all_item_likes(), you need to supply an item-like visitor. This method converts a “intra-visit” visitor into an item-like visitor that walks the entire tree. If you use this, you probably don’t want to process the contents of nested item-like things, since the outer loop will visit them as well. Read more

fn visit_id(&mut self, _hir_id: HirId)[src]

fn visit_name(&mut self, _span: Span, _name: Symbol)[src]

fn visit_ident(&mut self, ident: Ident)[src]

fn visit_mod(&mut self, m: &'v Mod<'v>, _s: Span, n: HirId)[src]

fn visit_anon_const(&mut self, c: &'v AnonConst)[src]

fn visit_generic_param(&mut self, p: &'v GenericParam<'v>)[src]

fn visit_const_param_default(&mut self, _param: HirId, ct: &'v AnonConst)[src]

fn visit_generics(&mut self, g: &'v Generics<'v>)[src]

fn visit_fn_decl(&mut self, fd: &'v FnDecl<'v>)[src]

fn visit_use(&mut self, path: &'v Path<'v>, hir_id: HirId)[src]

fn visit_trait_item_ref(&mut self, ii: &'v TraitItemRef)[src]

fn visit_foreign_item_ref(&mut self, ii: &'v ForeignItemRef<'v>)[src]

fn visit_impl_item_ref(&mut self, ii: &'v ImplItemRef<'v>)[src]

fn visit_trait_ref(&mut self, t: &'v TraitRef<'v>)[src]

fn visit_poly_trait_ref(
    &mut self,
    t: &'v PolyTraitRef<'v>,
    m: TraitBoundModifier
)
[src]

fn visit_variant_data(
    &mut self,
    s: &'v VariantData<'v>,
    Symbol,
    &'v Generics<'v>,
    _parent_id: HirId,
    Span
)
[src]

fn visit_enum_def(
    &mut self,
    enum_definition: &'v EnumDef<'v>,
    generics: &'v Generics<'v>,
    item_id: HirId,
    Span
)
[src]

fn visit_label(&mut self, label: &'v Label)[src]

fn visit_generic_arg(&mut self, generic_arg: &'v GenericArg<'v>)[src]

fn visit_generic_args(
    &mut self,
    path_span: Span,
    generic_args: &'v GenericArgs<'v>
)
[src]

fn visit_vis(&mut self, vis: &'v Spanned<VisibilityKind<'v>>)[src]

fn visit_associated_item_kind(&mut self, kind: &'v AssocItemKind)[src]

fn visit_defaultness(&mut self, defaultness: &'v Defaultness)[src]

Auto Trait Implementations

impl<'k> !RefUnwindSafe for StatCollector<'k>

impl<'k> !Send for StatCollector<'k>

impl<'k> !Sync for StatCollector<'k>

impl<'k> Unpin for StatCollector<'k>

impl<'k> !UnwindSafe for StatCollector<'k>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.