[−][src]Struct rustc_privacy::TypePrivacyVisitor
Type privacy visitor, checks types for privacy and reports violations. Both explicitly written types and inferred types of expressions and patters are checked. Checks are performed on "semantic" types regardless of names and their hygiene.
Fields
tcx: TyCtxt<'tcx>maybe_typeck_results: Option<&'tcx TypeckResults<'tcx>>current_item: LocalDefIdspan: SpanImplementations
impl<'tcx> TypePrivacyVisitor<'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 item_is_accessible(&self, did: DefId) -> bool[src]
fn check_expr_pat_type(&mut self, id: HirId, span: Span) -> bool[src]
fn check_def_id(
&mut self,
def_id: DefId,
kind: &str,
descr: &dyn Display
) -> bool[src]
&mut self,
def_id: DefId,
kind: &str,
descr: &dyn Display
) -> bool
Trait Implementations
impl<'tcx> DefIdVisitor<'tcx> for TypePrivacyVisitor<'tcx>[src]
fn tcx(&self) -> TyCtxt<'tcx>[src]
fn visit_def_id(
&mut self,
def_id: DefId,
kind: &str,
descr: &dyn Display
) -> ControlFlow<()>[src]
&mut self,
def_id: DefId,
kind: &str,
descr: &dyn Display
) -> ControlFlow<()>
fn shallow(&self) -> bool[src]
fn skip_assoc_tys(&self) -> bool[src]
fn skeleton(&mut self) -> DefIdVisitorSkeleton<'_, 'tcx, Self>[src]
fn visit(&mut self, ty_fragment: impl TypeFoldable<'tcx>) -> ControlFlow<()>[src]
fn visit_trait(&mut self, trait_ref: TraitRef<'tcx>) -> ControlFlow<()>[src]
fn visit_predicates(
&mut self,
predicates: GenericPredicates<'tcx>
) -> ControlFlow<()>[src]
&mut self,
predicates: GenericPredicates<'tcx>
) -> ControlFlow<()>
impl<'tcx> Visitor<'tcx> for TypePrivacyVisitor<'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_ty(&mut self, hir_ty: &'tcx Ty<'tcx>)[src]
fn visit_trait_ref(&mut self, trait_ref: &'tcx TraitRef<'tcx>)[src]
fn visit_expr(&mut self, expr: &'tcx Expr<'tcx>)[src]
fn visit_qpath(&mut self, qpath: &'tcx QPath<'tcx>, id: HirId, span: Span)[src]
fn visit_pat(&mut self, pattern: &'tcx Pat<'tcx>)[src]
fn visit_local(&mut self, local: &'tcx Local<'tcx>)[src]
fn visit_item(&mut self, item: &'tcx Item<'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_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_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_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_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 TypePrivacyVisitor<'tcx>
impl<'tcx> !Send for TypePrivacyVisitor<'tcx>
impl<'tcx> !Sync for TypePrivacyVisitor<'tcx>
impl<'tcx> Unpin for TypePrivacyVisitor<'tcx>
impl<'tcx> !UnwindSafe for TypePrivacyVisitor<'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>,