Crate rustc_privacy

Source

Modulesยง

errors ๐Ÿ”’

Structsยง

DefIdVisitorSkeleton
EmbargoVisitor ๐Ÿ”’
The embargo visitor, used to determine the exports of the AST.
FindMin ๐Ÿ”’
Visitor used to determine impl visibility and reachability.
LazyDefPathStr ๐Ÿ”’
Generic infrastructure used to implement specific visitors below.
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.
PrivateItemsInPublicInterfacesChecker ๐Ÿ”’
ReachEverythingInTheInterfaceVisitor ๐Ÿ”’
SearchInterfaceForPrivateItemsVisitor ๐Ÿ”’
SearchInterfaceForPrivateItemsVisitor traverses an itemโ€™s interface and finds any private components in it. PrivateItemsInPublicInterfacesVisitor ensures there are no private types and traits in public interfaces.
TestReachabilityVisitor
Visitor, used for EffectiveVisibilities table checking
TypePrivacyVisitor ๐Ÿ”’
Type privacy visitor, checks types for privacy and reports violations. Both explicitly written types and inferred types of expressions and patterns are checked. Checks are performed on โ€œsemanticโ€ types regardless of names and their hygiene.

Staticsยง

DEFAULT_LOCALE_RESOURCE
Raw content of Fluent resource for this crate, generated by fluent_messages macro, imported by rustc_driver to include all cratesโ€™ resources in one bundle.

Traitsยง

DefIdVisitor
Implemented to visit all DefIds in a type. Visiting DefIds is useful because visibilities and reachabilities are attached to them. The idea is to visit โ€œall components of a typeโ€, as documented in https://github.com/rust-lang/rfcs/blob/master/text/2145-type-privacy.md#how-to-determine-visibility-of-a-type. The default type visitor (TypeVisitor) does most of the job, but it has some shortcomings. First, it doesnโ€™t have overridable fn visit_trait_ref, so we have to catch trait DefIds manually. Second, it doesnโ€™t visit some type components like signatures of fn types, or traits in impl Trait, see individual comments in DefIdVisitorSkeleton::visit_ty.
VisibilityLike ๐Ÿ”’

Functionsยง

check_mod_privacy ๐Ÿ”’
check_private_in_public ๐Ÿ”’
effective_visibilities ๐Ÿ”’
min ๐Ÿ”’
provide