Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly 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 using a local clone.


Compiler implementation of the D programming language.

Source: semantic.d

void semantic(Dsymbol dsym, Scope* sc);
Does semantic analysis on the public face of declarations.
Initializer semantic(Initializer init, Scope* sc, Type t, NeedInterpret needInterpret);
Perform semantic analysis on init.
Initializer init Initializer AST node
Scope* sc context
Type t type that the initializer needs to become
NeedInterpret needInterpret if CTFE needs to be run on this, such as if it is the initializer for a const declaration
Initializer with completed semantic analysis, ErrorInitializer if errors were encountered
void semantic2(Dsymbol dsym, Scope* sc);
Does semantic analysis on initializers and members of aggregates.
void semantic3(Dsymbol dsym, Scope* sc);
Does semantic analysis on function bodies.