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

Manage flow analysis for constructors.
Authors:

Source ctorflow.d

struct FieldInit;
Individual field in the Ctor with information about its callees and location.
CSX csx;
information about the field's callees
Loc loc;
location of the field initialization
struct CtorFlow;
Primitive flow analysis for constructors
CSX callSuper;
state of calling other constructors
FieldInit[] fieldinit;
state of field initializations
CtorFlow clone();
Create a deep copy of this
Returns:
a copy
pure nothrow @safe void orCSX(CSX csx);
Set CSX bits in flow analysis state
Parameters:
CSX csx bits to set
pure nothrow @safe void OR(const ref CtorFlow ctorflow);
OR CSX bits to this
Parameters:
CtorFlow ctorflow bits to OR in
pure nothrow @safe bool mergeCallSuper(ref CSX a, const CSX b);
Merge b flow analysis results into a.
Parameters:
CSX a the path to merge b into
CSX b the other path
Returns:
false means one of the paths skips construction
pure nothrow @safe bool mergeFieldInit(ref CSX a, const CSX b);
Merge b flow analysis results into a.
Parameters:
CSX a the path to merge b into
CSX b the other path
Returns:
false means either a or b skips initialization