英語版
このページの英語版を見る

dmd.access

publicprivate のような可視性制約を強制する。
Authors:

ソース access.d

bool checkAccess(AggregateDeclaration ad, Loc loc, Scope* sc, Dsymbol smember);
このクラスのメンバのアクセス・チェックを行う。 このクラスは smember へのアクセスに使われる 'this' ポインタの型である。 メンバにアクセスできなければ真を返す。
bool checkAccess(Loc loc, Scope* sc, Expression e, Dsymbol d);
式e.dに対するdへのアクセスをチェックする。 宣言にアクセスできない場合は真を返す。
bool checkAccess(Scope* sc, Package p);
パッケージ/モジュールへのアクセスをチェックする pへのアクセスをチェックする。 sc.
Parameters:
Scope* sc 完全修飾パッケージ名へのアクセス元スコープ
Package p アクセスをチェックするパッケージ/モジュール
Returns:
パッケージにアクセスできない場合はtrueを返す。
インポートされたパッケージ/モジュールには、グローバルなシンボルテーブ ルツリーが使用される、 インポートされたパッケージ/モジュールにはグローバル・シンボル・テーブル・ツリーが使用されるため、それらへのアクセスは、スコープ・チェーン内のインポートに基づいてチェックする必要がある( 参照)。 に基づいてチェックする必要がある (https://issues.dlang.org/show_bug.cgi?id=313 参照)
bool symbolIsVisible(Module mod, Dsymbol s);
シンボル smod.
Parameters:
Module mod ルックアップ元
Dsymbol s シンボルで可視性をチェックする
Returns:
sがmodで可視であればtrue
bool symbolIsVisible(Dsymbol origin, Dsymbol s);
上記と同じだが、シンボルからルックアップモジュールを決定する origin.
bool symbolIsVisible(Scope* sc, Dsymbol s);
上記と同じだが、スコープから見える保護されたシンボルもチェックする sc. 修飾名検索に使用される。
Parameters:
Scope* sc 検索スコープ
Dsymbol s 可視性をチェックするシンボル
Returns:
sが原点から見える場合はtrue
bool checkSymbolAccess(Scope* sc, Dsymbol s);
シンボルが指定されたスコープから見えるかどうかをチェックする。 シンボルが指定されたスコープから見えるかどうかを調べる。
Parameters:
Scope* sc 検索スコープ
Dsymbol s シンボルの可視性をチェックする
Returns:
sがoriginで可視であればtrue
Dsymbol mostVisibleOverload(Dsymbol s, Module mod = null);
最も可視なオーバーロードを使って可視性をチェックする。後で、解決されたオーバーロードに対して チェックする。 この関数はoverloadApplyに似ている、 に似ているが、可視性はエイリアスの属性であり、エイリアスを解決しない。 なぜなら、可視性はエイリアスの属性であり、エイリアシーではないからである。