W3cubDocs

/D

dmd.ctorflow

Compiler implementation of the D programming language.

Manage flow analysis for constructors.

Authors:
Walter Bright
License:
Boost License 1.0
Source
ctorflow.d
Documentation
https://dlang.org/phobos/dmd_ctorflow.html
Coverage
https://codecov.io/gh/dlang/dmd/src/master/src/dmd/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 void orCSX(CSX csx);

Set CSX bits in flow analysis state

Parameters:
CSX csx bits to set
pure nothrow void OR(ref const CtorFlow ctorflow);

OR CSX bits to this

Parameters:
CtorFlow ctorflow bits to OR in
pure nothrow 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 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

© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_ctorflow.html