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.init

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

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;
initializer
class CInitializer: dmd.init.Initializer;
C11 6.7.9 Initialization Represents the C initializer-list
DesigInits initializerList;
initializer-list
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.
Parameters:
Initializer inx Initializer AST to copy
Returns:
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.
Parameters:
Result return type
Initializer init Initializer tree to traverse
Returns:
Result.init for continue, value of type Result for early exit
pure @safe string visitCase(string handler);
CTFE-only helper function for VisitInitializer.
Parameters:
string handler string for the name of the visit handler
Returns:
boilerplate code for a case