Struct rustc_save_analysis::dump_visitor::DumpVisitor [−][src]
pub struct DumpVisitor<'tcx> {
pub save_ctxt: SaveContext<'tcx>,
tcx: TyCtxt<'tcx>,
dumper: Dumper,
span: SpanUtils<'tcx>,
}Fields
save_ctxt: SaveContext<'tcx>tcx: TyCtxt<'tcx>dumper: Dumperspan: SpanUtils<'tcx>Implementations
impl<'tcx> DumpVisitor<'tcx>[src]
impl<'tcx> DumpVisitor<'tcx>[src]pub fn new(save_ctxt: SaveContext<'tcx>) -> DumpVisitor<'tcx>[src]
pub fn analysis(&self) -> &Analysis[src]
fn nest_typeck_results<F>(&mut self, item_def_id: LocalDefId, f: F) where
F: FnOnce(&mut Self), [src]
F: FnOnce(&mut Self),
fn span_from_span(&self, span: Span) -> SpanData[src]
fn lookup_def_id(&self, ref_id: HirId) -> Option<DefId>[src]
pub fn dump_crate_info(&mut self, name: &str, krate: &Crate<'_>)[src]
pub fn dump_compilation_options(&mut self, input: &Input, crate_name: &str)[src]
fn write_segments(
&mut self,
segments: impl IntoIterator<Item = &'tcx PathSegment<'tcx>>
)[src]
&mut self,
segments: impl IntoIterator<Item = &'tcx PathSegment<'tcx>>
)
fn write_sub_paths(&mut self, path: &'tcx Path<'tcx>)[src]
fn write_sub_paths_truncated(&mut self, path: &'tcx Path<'tcx>)[src]
fn process_formals(&mut self, formals: &'tcx [Param<'tcx>], qualname: &str)[src]
fn process_method(
&mut self,
sig: &'tcx FnSig<'tcx>,
body: Option<BodyId>,
hir_id: HirId,
ident: Ident,
generics: &'tcx Generics<'tcx>,
vis: &Visibility<'tcx>,
span: Span
)[src]
&mut self,
sig: &'tcx FnSig<'tcx>,
body: Option<BodyId>,
hir_id: HirId,
ident: Ident,
generics: &'tcx Generics<'tcx>,
vis: &Visibility<'tcx>,
span: Span
)
fn process_struct_field_def(
&mut self,
field: &'tcx FieldDef<'tcx>,
parent_id: HirId
)[src]
&mut self,
field: &'tcx FieldDef<'tcx>,
parent_id: HirId
)
fn process_generic_params(
&mut self,
generics: &'tcx Generics<'tcx>,
prefix: &str,
id: HirId
)[src]
&mut self,
generics: &'tcx Generics<'tcx>,
prefix: &str,
id: HirId
)
fn process_fn(
&mut self,
item: &'tcx Item<'tcx>,
decl: &'tcx FnDecl<'tcx>,
_header: &'tcx FnHeader,
ty_params: &'tcx Generics<'tcx>,
body: BodyId
)[src]
&mut self,
item: &'tcx Item<'tcx>,
decl: &'tcx FnDecl<'tcx>,
_header: &'tcx FnHeader,
ty_params: &'tcx Generics<'tcx>,
body: BodyId
)
fn process_static_or_const_item(
&mut self,
item: &'tcx Item<'tcx>,
typ: &'tcx Ty<'tcx>,
expr: &'tcx Expr<'tcx>
)[src]
&mut self,
item: &'tcx Item<'tcx>,
typ: &'tcx Ty<'tcx>,
expr: &'tcx Expr<'tcx>
)
fn process_assoc_const(
&mut self,
hir_id: HirId,
ident: Ident,
typ: &'tcx Ty<'tcx>,
expr: Option<&'tcx Expr<'tcx>>,
parent_id: DefId,
vis: &Visibility<'tcx>,
attrs: &'tcx [Attribute]
)[src]
&mut self,
hir_id: HirId,
ident: Ident,
typ: &'tcx Ty<'tcx>,
expr: Option<&'tcx Expr<'tcx>>,
parent_id: DefId,
vis: &Visibility<'tcx>,
attrs: &'tcx [Attribute]
)
fn process_struct(
&mut self,
item: &'tcx Item<'tcx>,
def: &'tcx VariantData<'tcx>,
ty_params: &'tcx Generics<'tcx>
)[src]
&mut self,
item: &'tcx Item<'tcx>,
def: &'tcx VariantData<'tcx>,
ty_params: &'tcx Generics<'tcx>
)
fn process_enum(
&mut self,
item: &'tcx Item<'tcx>,
enum_definition: &'tcx EnumDef<'tcx>,
ty_params: &'tcx Generics<'tcx>
)[src]
&mut self,
item: &'tcx Item<'tcx>,
enum_definition: &'tcx EnumDef<'tcx>,
ty_params: &'tcx Generics<'tcx>
)
fn process_impl(&mut self, item: &'tcx Item<'tcx>, impl_: &'tcx Impl<'tcx>)[src]
fn process_trait(
&mut self,
item: &'tcx Item<'tcx>,
generics: &'tcx Generics<'tcx>,
trait_refs: GenericBounds<'tcx>,
methods: &'tcx [TraitItemRef]
)[src]
&mut self,
item: &'tcx Item<'tcx>,
generics: &'tcx Generics<'tcx>,
trait_refs: GenericBounds<'tcx>,
methods: &'tcx [TraitItemRef]
)
fn process_mod(&mut self, item: &'tcx Item<'tcx>)[src]
fn dump_path_ref(&mut self, id: HirId, path: &QPath<'tcx>)[src]
fn dump_path_segment_ref(&mut self, id: HirId, segment: &PathSegment<'tcx>)[src]
fn process_path(&mut self, id: HirId, path: &QPath<'tcx>)[src]
fn process_struct_lit(
&mut self,
ex: &'tcx Expr<'tcx>,
path: &'tcx QPath<'tcx>,
fields: &'tcx [ExprField<'tcx>],
variant: &'tcx VariantDef,
rest: Option<&'tcx Expr<'tcx>>
)[src]
&mut self,
ex: &'tcx Expr<'tcx>,
path: &'tcx QPath<'tcx>,
fields: &'tcx [ExprField<'tcx>],
variant: &'tcx VariantDef,
rest: Option<&'tcx Expr<'tcx>>
)
fn process_method_call(
&mut self,
ex: &'tcx Expr<'tcx>,
seg: &'tcx PathSegment<'tcx>,
args: &'tcx [Expr<'tcx>]
)[src]
&mut self,
ex: &'tcx Expr<'tcx>,
seg: &'tcx PathSegment<'tcx>,
args: &'tcx [Expr<'tcx>]
)
fn process_pat(&mut self, p: &'tcx Pat<'tcx>)[src]
fn process_var_decl(&mut self, pat: &'tcx Pat<'tcx>)[src]
fn process_macro_use(&mut self, _span: Span)[src]
fn process_macro_use(&mut self, _span: Span)[src]Extracts macro use and definition information from the AST node defined by the given NodeId, using the expansion information from the node’s span.
If the span is not macro-generated, do nothing, else use callee and callsite spans to record macro definition and use data, using the mac_uses and mac_defs sets to prevent multiples.
fn process_trait_item(
&mut self,
trait_item: &'tcx TraitItem<'tcx>,
trait_id: DefId
)[src]
&mut self,
trait_item: &'tcx TraitItem<'tcx>,
trait_id: DefId
)
fn process_impl_item(&mut self, impl_item: &'tcx ImplItem<'tcx>, impl_id: DefId)[src]
pub(crate) fn process_crate(&mut self, krate: &'tcx Crate<'tcx>)[src]
fn process_bounds(&mut self, bounds: GenericBounds<'tcx>)[src]
Trait Implementations
impl<'tcx> Visitor<'tcx> for DumpVisitor<'tcx>[src]
impl<'tcx> Visitor<'tcx> for DumpVisitor<'tcx>[src]type Map = Map<'tcx>
fn nested_visit_map(&mut self) -> NestedVisitorMap<Self::Map>[src]
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_item(&mut self, item: &'tcx Item<'tcx>)[src]
fn visit_item(&mut self, item: &'tcx Item<'tcx>)[src]Visits the top-level item and (optionally) nested items / impl items. See
visit_nested_item for details. Read more
fn visit_generics(&mut self, generics: &'tcx Generics<'tcx>)[src]
fn visit_ty(&mut self, t: &'tcx Ty<'tcx>)[src]
fn visit_expr(&mut self, ex: &'tcx Expr<'tcx>)[src]
fn visit_pat(&mut self, p: &'tcx Pat<'tcx>)[src]
fn visit_arm(&mut self, arm: &'tcx Arm<'tcx>)[src]
fn visit_qpath(&mut self, path: &'tcx QPath<'tcx>, id: HirId, _: Span)[src]
fn visit_stmt(&mut self, s: &'tcx Stmt<'tcx>)[src]
fn visit_local(&mut self, l: &'tcx Local<'tcx>)[src]
fn visit_foreign_item(&mut self, item: &'tcx ForeignItem<'tcx>)[src]
fn visit_nested_item(&mut self, id: ItemId)[src]
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, id: TraitItemId)[src]
fn visit_nested_trait_item(&mut self, 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, id: ImplItemId)[src]
fn visit_nested_impl_item(&mut self, 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]
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, id: BodyId)[src]
fn visit_nested_body(&mut self, 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_param(&mut self, param: &'v Param<'v>)[src]
fn visit_body(&mut self, b: &'v Body<'v>)[src]
fn as_deep_visitor(&mut self) -> DeepVisitor<'_, Self>[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_block(&mut self, b: &'v Block<'v>)[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_where_predicate(&mut self, predicate: &'v WherePredicate<'v>)[src]
fn visit_fn_decl(&mut self, fd: &'v FnDecl<'v>)[src]
fn visit_fn(
&mut self,
fk: FnKind<'v>,
fd: &'v FnDecl<'v>,
b: BodyId,
s: Span,
id: HirId
)[src]
&mut self,
fk: FnKind<'v>,
fd: &'v FnDecl<'v>,
b: BodyId,
s: Span,
id: HirId
)
fn visit_use(&mut self, path: &'v Path<'v>, hir_id: HirId)[src]
fn visit_trait_item(&mut self, ti: &'v TraitItem<'v>)[src]
fn visit_trait_item_ref(&mut self, ii: &'v TraitItemRef)[src]
fn visit_impl_item(&mut self, ii: &'v ImplItem<'v>)[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_param_bound(&mut self, bounds: &'v GenericBound<'v>)[src]
fn visit_poly_trait_ref(
&mut self,
t: &'v PolyTraitRef<'v>,
m: TraitBoundModifier
)[src]
&mut self,
t: &'v PolyTraitRef<'v>,
m: TraitBoundModifier
)
fn visit_variant_data(
&mut self,
s: &'v VariantData<'v>,
Symbol,
&'v Generics<'v>,
_parent_id: HirId,
Span
)[src]
&mut self,
s: &'v VariantData<'v>,
Symbol,
&'v Generics<'v>,
_parent_id: HirId,
Span
)
fn visit_field_def(&mut self, s: &'v FieldDef<'v>)[src]
fn visit_enum_def(
&mut self,
enum_definition: &'v EnumDef<'v>,
generics: &'v Generics<'v>,
item_id: HirId,
Span
)[src]
&mut self,
enum_definition: &'v EnumDef<'v>,
generics: &'v Generics<'v>,
item_id: HirId,
Span
)
fn visit_variant(
&mut self,
v: &'v Variant<'v>,
g: &'v Generics<'v>,
item_id: HirId
)[src]
&mut self,
v: &'v Variant<'v>,
g: &'v Generics<'v>,
item_id: HirId
)
fn visit_label(&mut self, label: &'v Label)[src]
fn visit_generic_arg(&mut self, generic_arg: &'v GenericArg<'v>)[src]
fn visit_lifetime(&mut self, lifetime: &'v Lifetime)[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]
&mut self,
path_span: Span,
path_segment: &'v PathSegment<'v>
)
fn visit_generic_args(
&mut self,
path_span: Span,
generic_args: &'v GenericArgs<'v>
)[src]
&mut self,
path_span: Span,
generic_args: &'v GenericArgs<'v>
)