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

dmd.delegatize

遅延パラメータのための式からデリゲートへの変換を実装する。
Authors:

ソース delegatize.d

Expression toDelegate(Expression e, Type t, Scope* sc);
式をデリゲートに変換する。
引数を遅延パラメータに変換する。
Parameters:
Expression e デリゲートに変換する引数
Type t デリゲートが返す型
Scope* sc コンテキスト
Returns:
デリゲート・リテラル
bool lambdaCheckForNestedRef(Expression e, Scope* sc);
新しい関数リテラルを囲むスコープで変数への参照を探す。
基本的には、checkNestedReference() for each variable reference in e`を呼び出すだけである。
Parameters:
Scope* sc コンテキスト
Expression e チェックする式
Returns:
エラーが発生したらtrueを返す。
bool ensureStaticLinkTo(Dsymbol s, Dsymbol p);
コンテキスト sがコンテキスト pつまり つまり pに入れ子になっているかどうかを調べる。 間にあるコンテキストが関数リテラルであれば、それがデリゲートであることを確認する、 デリゲートであることを確認する。
Parameters:
Dsymbol s 内側のコンテキスト
Dsymbol p 外側コンテキスト
Returns:
trueは、実行時にコンテキストポインタを歩くことでアクセスできることを意味する。

参考文献 静的リンクについてはhttps://ja.wikipedia.org/wiki/コールスタック#コールスタックの機能を参照のこと。