[−][src]Struct rustc_privacy::NamePrivacyVisitor
Name privacy visitor, checks privacy and reports violations. Most of name privacy checks are performed during the main resolution phase, or later in type checking when field accesses and associated items are resolved. This pass performs remaining checks for fields in struct expressions and patterns.
Fields
tcx: TyCtxt<'tcx>maybe_typeck_results: Option<&'tcx TypeckResults<'tcx>>current_item: Option<HirId>Implementations
impl<'tcx> NamePrivacyVisitor<'tcx>[src]
fn typeck_results(&self) -> &'tcx TypeckResults<'tcx>[src]
Gets the type-checking results for the current body.
As this will ICE if called outside bodies, only call when working with
Expr or Pat nodes (they are guaranteed to be found only in bodies).
fn check_field(
&mut self,
use_ctxt: Span,
span: Span,
def: &'tcx AdtDef,
field: &'tcx FieldDef,
in_update_syntax: bool
)[src]
&mut self,
use_ctxt: Span,
span: Span,
def: &'tcx AdtDef,
field: &'tcx FieldDef,
in_update_syntax: bool
)
Trait Implementations
impl<'tcx> Visitor<'tcx> for NamePrivacyVisitor<'tcx>[src]
type Map = Map<'tcx>
fn nested_visit_map(&mut self) -> NestedVisitorMap<Self::Map>[src]
We want to visit items in the context of their containing module and so forth, so supply a crate for doing a deep walk.
fn visit_mod(&mut self, _m: &'tcx Mod<'tcx>, _s: Span, _n: HirId)[src]
fn visit_nested_body(&mut self, body: BodyId)[src]
fn visit_item(&mut self, item: &'tcx Item<'tcx>)[src]
fn visit_expr(&mut self, expr: &'tcx Expr<'tcx>)[src]
fn visit_pat(&mut self, pat: &'tcx Pat<'tcx>)[src]
fn visit_nested_item(&mut self, id: ItemId)[src]
fn visit_nested_trait_item(&mut self, id: TraitItemId)[src]
fn visit_nested_impl_item(&mut self, id: ImplItemId)[src]
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 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_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_anon_const(&mut self, c: &'v AnonConst)[src]
fn visit_ty(&mut self, t: &'v Ty<'v>)[src]
fn visit_generic_param(&mut self, p: &'v GenericParam<'v>)[src]
fn visit_generics(&mut self, g: &'v Generics<'v>)[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_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_struct_field(&mut self, s: &'v StructField<'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_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]
&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>
)
fn visit_assoc_type_binding(&mut self, type_binding: &'v TypeBinding<'v>)[src]
fn visit_attribute(&mut self, _attr: &'v Attribute)[src]
fn visit_macro_def(&mut self, macro_def: &'v MacroDef<'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<'tcx> !RefUnwindSafe for NamePrivacyVisitor<'tcx>
impl<'tcx> !Send for NamePrivacyVisitor<'tcx>
impl<'tcx> !Sync for NamePrivacyVisitor<'tcx>
impl<'tcx> Unpin for NamePrivacyVisitor<'tcx>
impl<'tcx> !UnwindSafe for NamePrivacyVisitor<'tcx>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
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]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,