Fit elements[] to the corresponding type of field[]. Input: loc sc elements The explicit arguments that given to construct object. stype The constructed object type. Returns false if any errors occur. Otherwise, returns true and elements[] are rewritten for the output.
Return true if struct is POD (Plain Old Data). This is defined as: not nested no postblits, destructors, or assignment operators no 'ref' fields or fields that are themselves non-POD The idea being these are compatible with C structs.
Create a new scope from sc. semantic, semantic2 and semantic3 will use this for aggregate members.
Find all instance fields, then push them into fields.
Collect all instance fields, then determine instance size.
Calculate fieldi.overlapped and overlapUnsafe, and check that all of explicit field initializers have unique memory space on instance.
Fill out remainder of elements[] with default initializers for fields[].
Do byte or word alignment as necessary. Align sizes of 0, as we may not know array sizes yet.
Place a member (mem) into an aggregate (agg), which can be a struct, union or class
Returns true if there's an extra member which is the 'this' pointer to the enclosing context (enclosing aggregate or function)
Look for constructor declaration.