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.


Defines initializers of variables, e.g. the array literal in int[3] x = [0, 1, 2].

Source init.d

class Initializer: dmd.ast_node.ASTNode;
class VoidInitializer: dmd.init.Initializer;
class DefaultInitializer: dmd.init.Initializer;
The C23 default initializer { }
class ErrorInitializer: dmd.init.Initializer;
class StructInitializer: dmd.init.Initializer;
class ArrayInitializer: dmd.init.Initializer;
class ExpInitializer: dmd.init.Initializer;
struct Designator;
Holds the designator for C initializers
Expression exp;
[ constant-expression ]
Identifier ident;
. identifier
struct DesigInit;
Holds the designation (opt) initializer for C initializers
Designators* designatorList;
designation (opt)
Initializer initializer;
class CInitializer: dmd.init.Initializer;
C11 6.7.9 Initialization Represents the C initializer-list
DesigInits initializerList;
Type type;
type that array will be used to initialize
bool sem;
true if semantic() is run
Initializer syntaxCopy(Initializer inx);
Copy the AST for Initializer.
Initializer inx Initializer AST to copy
the copy
Result VisitInitializer(Result)(Initializer init);
Visit each Initializer in init. Call a function visit%s(init) for each node, where %s is the op of the node. Otherwise call visitDefault(init) for that node. If the visit function returns R.init, continue visiting each node, otherwise return the value of R.
Result return type
Initializer init Initializer tree to traverse
Result.init for continue, value of type Result for early exit
pure @safe string visitCase(string handler);
CTFE-only helper function for VisitInitializer.
string handler string for the name of the visit handler
boilerplate code for a case