Compiler implementation of the D programming language.
Create a new scope from
sc. semantic, semantic2 and semantic3 will use this for aggregate members.
Find all instance fields, then push them into
Runs semantic() for all instance field variables, but also the field types can reamin yet not resolved forward references, except direct recursive definitions. After the process sizeok is set to SIZEOKfwd.
falseif any errors occur.
Collect all instance fields, then determine instance size.
falseif failed to determine the size.
Calculate field[i].overlapped and overlapUnsafe, and check that all of explicit field initializers have unique memory space on instance.
trueif any errors happen.
Fill out remainder of
elements with default initializers for fields.
|Expressions* ||explicit arguments which given to construct object.|
falseif any errors occur. Otherwise, returns
trueand the missing arguments will be pushed in
Do byte or word
alignment as necessary. Align sizes of 0, as we may not know array sizes yet.
alignmentthat is in effect
alignmentrequirement of field
Place a member (mem) into an aggregate (agg), which can be a struct, union or class
alignmentin effect for this member
alignmentof aggregate (updated)
true if there's an extra member which is the 'this' pointer to the enclosing context (enclosing aggregate or function)
Look for constructor declaration.
© 1999–2017 The D Language Foundation
Licensed under the Boost License 1.0.