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

dmd.blockexit

制御フローはどのような方法でステートメントブロックを抜けることができるか調べなさい。
Authors:

ソース blockexit.d

enum BE: int;
BEはBlockExitの略である。
あるステートメントが制御を別のブロックに移すかどうかを示す。 ブロックとは、{ }で囲まれた一連の文のことである。
int blockExit(Statement s, FuncDeclaration func, ErrorSink eSink);
ステートメントが終了する方法のマスクを決定する。
意味解析後にのみ有効である。
Parameters:
Statement s ブロックの終了ステータスをチェックする文
FuncDeclaration func 文sが含まれる関数
ErrorSink eSink をスローする場合はエラーを生成する。
Returns:
BE.xxxx
BE checkThrow(const ref Loc loc, Expression exp, FuncDeclaration func, ErrorSink eSink);
を投げるかどうかをチェックする。 throw <exp>Exception をスローするかどうかをチェックする。Error を投げるかどうかをチェックし、nothrow に違反する場合はエラーを発生させる。
Parameters:
Loc loc スロー可能なthrow
Expression exp の場所である。
ErrorSink eSink if !null then を含むnothrow スコープの内部。
FuncDeclaration func 関数の内部にある。throw
Returns:
BE.[err]throw の型による。 exp