Report a bugIf you spot a problem with this page, click here to create a Bugzilla issue.
Improve this pageQuickly fork, edit online, and submit a pull request for this page.Requires a signed-in GitHub account. This works well for small changes.If you'd like to make larger changes you may want to consider usinga local clone.
dmd.access
Enforce visibility contrains such aspublic andprivate.
bool
checkAccess(AggregateDeclaration
ad, Loc
loc, Scope*
sc, Dsymbol
smember);
Do access check for member of this class, this class being the type of the 'this' pointer used to access smember. Returns true if the member is not accessible.
bool
checkAccess(Loc
loc, Scope*
sc, Expression
e, Dsymbol
d);
Check access to d for expression e.d Returns true if the declaration is not accessible.
bool
checkAccess(Scope*
sc, Package
p);
Check access to package/modulep from scopesc.
Parameters:Scope*sc | scope from which to access to a fully qualified package name |
Packagep | the package/module to check access for |
Returns:true if the package is not accessible.
Because a global symbol table tree is used for imported packages/modules, access to them needs to be checked based on the imports in the scope chain (see
https://issues.dlang.org/show_bug.cgi?id=313).
bool
symbolIsVisible(Module
mod, Dsymbol
s);
Check whether symbolss is visible inmod.
Parameters:Modulemod | lookup origin |
Dsymbols | symbol to check for visibility |
Returns:true if s is visible in mod
bool
symbolIsVisible(Dsymbol
origin, Dsymbol
s);
Same as above, but determines the lookup module from symbolsorigin.
bool
symbolIsVisible(Scope*
sc, Dsymbol
s);
Same as above but also checks for protected symbols visible from scopesc. Used for qualified name lookup.
Parameters:Scope*sc | lookup scope |
Dsymbols | symbol to check for visibility |
Returns:true if s is visible by origin
bool
checkSymbolAccess(Scope*
sc, Dsymbol
s);
Check if a symbol is visible from a given scope without taking into account the most visible overload.
Parameters:Scope*sc | lookup scope |
Dsymbols | symbol to check for visibility |
Returns:true if s is visible by origin
Dsymbol
mostVisibleOverload(Dsymbol
s, Module
mod = null);
Use the most visible overload to check visibility. Later perform an access check on the resolved overload. This function is similar to overloadApply, but doesn't recurse nor resolve aliases because visibility is an attribute of the alias not the aliasee.