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.

dmd.initsem

Compiler implementation of the D programming language.
Authors:

Source initsem.d

Expression toAssocArrayLiteral(ArrayInitializer ai);
If possible, convert array initializer to associative array initializer.
Parameters:
ArrayInitializer ai array initializer to be converted
Returns:
The converted associative array initializer or ErrorExp if ai is not an associative array initializer.
Initializer initializerSemantic(Initializer init, Scope* sc, Type t, NeedInterpret needInterpret);
Perform semantic analysis on init.
Parameters:
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
Returns:
Initializer with completed semantic analysis, ErrorInitializer if errors were encountered
Initializer inferType(Initializer init, Scope* sc);
Translate init to an Expression in order to infer the type.
Parameters:
Initializer init Initializer AST node
Scope* sc context
Returns:
an equivalent ExpInitializer if successful, or ErrorInitializer if it cannot be translated
Expression initializerToExpression(Initializer init, Type itype = null);
Translate init to an Expression.
Parameters:
Initializer init Initializer AST node
Type itype if not null, type to coerce expression to
Returns:
Expression created, null if cannot, ErrorExp for other errors