- accept
void accept(Visitor v)
Undocumented in source. Be warned that the author may not have intended to support it.
- addLocalClass
void addLocalClass(ClassDeclarations* aclasses)
- addObjcSymbols
void addObjcSymbols(ClassDeclarations* classes, ClassDeclarations* categories)
Undocumented in source. Be warned that the author may not have intended to support it.
- finalizeSize
void finalizeSize()
Undocumented in source. Be warned that the author may not have intended to support it.
- findFunc
FuncDeclaration findFunc(Identifier ident, TypeFunction tf)
Find virtual function matching identifier and type.
Used to build virtual function tables for interface implementations.
- hasMonitor
bool hasMonitor()
- isAbstract
bool isAbstract()
- isAnonymous
bool isAnonymous()
Undocumented in source. Be warned that the author may not have intended to support it.
- isBaseInfoComplete
bool isBaseInfoComplete()
Determine if 'this' has complete base class information.
This is used to detect forward references in covariant overloads.
- isBaseOf
bool isBaseOf(ClassDeclaration cd, int* poffset)
Determine if 'this' is a base class of cd.
- isBaseOf2
bool isBaseOf2(ClassDeclaration cd)
Determine if 'this' is a base class of cd.
This is used to detect circular inheritance only.
- isCOMclass
bool isCOMclass()
- isCOMinterface
bool isCOMinterface()
Undocumented in source. Be warned that the author may not have intended to support it.
- isCPPclass
bool isCPPclass()
Undocumented in source. Be warned that the author may not have intended to support it.
- isCPPinterface
bool isCPPinterface()
Undocumented in source. Be warned that the author may not have intended to support it.
- isClassDeclaration
inout(ClassDeclaration) isClassDeclaration()
Undocumented in source. Be warned that the author may not have intended to support it.
- isFuncHidden
bool isFuncHidden(FuncDeclaration fd)
Undocumented in source. Be warned that the author may not have intended to support it.
- kind
const(char)* kind()
- newScope
Scope* newScope(Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
- search
Dsymbol search(Loc loc, Identifier ident, int flags)
Undocumented in source. Be warned that the author may not have intended to support it.
- searchBase
ClassDeclaration searchBase(Identifier ident)
Search base classes in depth-first, left-to-right order for
a class or interface named 'ident'.
Stops at first found. Does not look for additional matches.
- syntaxCopy
Dsymbol syntaxCopy(Dsymbol s)
Undocumented in source. Be warned that the author may not have intended to support it.
- vtblOffset
int vtblOffset()
Determine if slot 0 of the vtbl[] is reserved for something else.
For class objects, yes, this is where the classinfo ptr goes.
For COM interfaces, no.
For non-COM interfaces, yes, this is where the Interface ptr goes.
- vtblSymbol
Dsymbol vtblSymbol()
Undocumented in source. Be warned that the author may not have intended to support it.
- type
Type type;
Undocumented in source.
- storage_class
StorageClass storage_class;
Undocumented in source.
- protection
Prot protection;
Undocumented in source.
- structsize
uint structsize;
Undocumented in source.
- alignsize
uint alignsize;
Undocumented in source.
- fields
VarDeclarations fields;
Undocumented in source.
- sizeok
Sizeok sizeok;
Undocumented in source.
- deferred
Dsymbol deferred;
Undocumented in source.
- classKind
ClassKind classKind;
specifies whether this is a D, C++, Objective-C or anonymous struct/class/interface
- cppmangle
CPPMANGLE cppmangle;
Specify whether to mangle the aggregate as a class or a struct
This information is used by the MSVC mangler
Only valid for class and struct. TODO: Merge with ClassKind ?
- enclosing
Dsymbol enclosing;
Undocumented in source.
- vthis
VarDeclaration vthis;
Undocumented in source.
- vthis2
VarDeclaration vthis2;
Undocumented in source.
- invs
FuncDeclarations invs;
Undocumented in source.
- inv
FuncDeclaration inv;
Undocumented in source.
- aggNew
NewDeclaration aggNew;
Undocumented in source.
- ctor
Dsymbol ctor;
Undocumented in source.
- defaultCtor
CtorDeclaration defaultCtor;
Undocumented in source.
- aliasthis
AliasThis aliasthis;
Undocumented in source.
- noDefaultCtor
bool noDefaultCtor;
Undocumented in source.
- dtors
DtorDeclarations dtors;
Undocumented in source.
- dtor
DtorDeclaration dtor;
Undocumented in source.
- primaryDtor
DtorDeclaration primaryDtor;
Undocumented in source.
- tidtor
DtorDeclaration tidtor;
Undocumented in source.
- fieldDtor
FuncDeclaration fieldDtor;
Undocumented in source.
- getRTInfo
Expression getRTInfo;
Undocumented in source.
- newScope
Scope* newScope(Scope* sc)
Create a new scope from sc.
semantic, semantic2 and semantic3 will use this for aggregate members.
- setScope
void setScope(Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
- determineFields
bool determineFields()
Find all instance fields, then push them into fields.
- nonHiddenFields
size_t nonHiddenFields()
- determineSize
bool determineSize(Loc loc)
Collect all instance fields, then determine instance size.
- finalizeSize
void finalizeSize()
Undocumented in source.
- size
d_uns64 size(Loc loc)
Undocumented in source. Be warned that the author may not have intended to support it.
- checkOverlappedFields
bool checkOverlappedFields()
Calculate fieldi.overlapped and overlapUnsafe, and check that all of explicit
field initializers have unique memory space on instance.
- fill
bool fill(Loc loc, Expressions* elements, bool ctorinit)
Fill out remainder of elements[] with default initializers for fields[].
- alignmember
void alignmember(structalign_t alignment, uint size, uint* poffset)
Do byte or word alignment as necessary.
Align sizes of 0, as we may not know array sizes yet.
- placeField
uint placeField(uint* nextoffset, uint memsize, uint memalignsize, structalign_t alignment, uint* paggsize, uint* paggalignsize, bool isunion)
Place a member (mem) into an aggregate (agg), which can be a struct, union or class
- getType
Type getType()
Undocumented in source. Be warned that the author may not have intended to support it.
- isDeprecated
bool isDeprecated()
Undocumented in source. Be warned that the author may not have intended to support it.
- setDeprecated
void setDeprecated()
Flag this aggregate as deprecated
- isNested
bool isNested()
Returns true if there's an extra member which is the 'this'
pointer to the enclosing context (enclosing aggregate or function)
- makeNested
void makeNested()
Undocumented in source. Be warned that the author may not have intended to support it.
- makeNested2
void makeNested2()
Undocumented in source. Be warned that the author may not have intended to support it.
- isExport
bool isExport()
Undocumented in source. Be warned that the author may not have intended to support it.
- searchCtor
Dsymbol searchCtor()
Look for constructor declaration.
- prot
Prot prot()
Undocumented in source. Be warned that the author may not have intended to support it.
- handleType
Type handleType()
Undocumented in source. Be warned that the author may not have intended to support it.
- stag
Symbol* stag;
Undocumented in source.
- sinit
Symbol* sinit;
Undocumented in source.
- isAggregateDeclaration
inout(AggregateDeclaration) isAggregateDeclaration()
Undocumented in source. Be warned that the author may not have intended to support it.
- accept
void accept(Visitor v)
Undocumented in source. Be warned that the author may not have intended to support it.