dmd.statementsem

Does semantic analysis for statements.

Specification: Statements

Members

Functions

checkLabel
bool checkLabel(GotoStatement gs)

Check for skipped variable declarations.

makeTupleForeach
auto makeTupleForeach(Scope* sc, bool isStatic, bool isDecl, ForeachStatement fs, Dsymbols* dbody, bool needExpansion)

Type check and unroll foreach over an expression tuple as well as static foreach statements and static foreach declarations. For static foreach statements and `static foreach` declarations, the visitor interface is used (and the result is written into the result field.) For `static foreach` declarations, the resulting Dsymbols* are returned directly.

pragmaMsgSemantic
bool pragmaMsgSemantic(Loc loc, Scope* sc, Expressions* args)

Evaluate and print a pragma(msg, args)

pragmaStartAddressSemantic
bool pragmaStartAddressSemantic(Loc loc, Scope* sc, Expressions* args)

Evaluate pragma(startAddress, func) and store the resolved symbol in args

scopeCode
Statement scopeCode(Statement statement, Scope* sc, Statement sentry, Statement sexception, Statement sfinally)

If statement has code that needs to run in a finally clause at the end of the current scope, return that code in the form of a Statement.

throwSemantic
bool throwSemantic(Loc loc, Expression exp, Scope* sc)

Run semantic on throw <exp>.

Meta