InterfaceDeclaration

Members

Functions

isBaseOf
bool isBaseOf(ClassDeclaration cd, int* poffset)

Determine if 'this' is a base class of cd. (Actually, if it is an interface supported by cd) Output: *poffset offset to start of class OFFSET_RUNTIME must determine offset at runtime

kind
const(char)* kind()
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.

Inherited Members

From ClassDeclaration

stack
bool stack;

true if this is a scope class

cppDtorVtblIndex
int cppDtorVtblIndex;

if this is a C++ class, this is the slot reserved for the virtual destructor

baseok
Baseok baseok;

set the progress of base classes resolving

objc
ObjcClassDeclaration objc;

Data for a class declaration that is needed for the Objective-C integration.

isBaseOf2
bool isBaseOf2(ClassDeclaration cd)

Determine if 'this' is a base class of cd. This is used to detect circular inheritance only.

isBaseOf
bool isBaseOf(ClassDeclaration cd, int* poffset)

Determine if 'this' is a base class of cd.

isBaseInfoComplete
bool isBaseInfoComplete()

Determine if 'this' has complete base class information. This is used to detect forward references in covariant overloads.

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.

hasMonitor
bool hasMonitor()
findFunc
FuncDeclaration findFunc(Identifier ident, TypeFunction tf)

Find virtual function matching identifier and type. Used to build virtual function tables for interface implementations.

isCOMclass
bool isCOMclass()
isAbstract
bool isAbstract()
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.

kind
const(char)* kind()
addObjcSymbols
void addObjcSymbols(ClassDeclarations* classes, ClassDeclarations* categories)

Meta