InterfaceDeclaration

Constructors

this
this(Loc loc, Identifier id, BaseClasses* baseclasses)
Undocumented in source.

Members

Functions

accept
void accept(Visitor v)
Undocumented in source. Be warned that the author may not have intended to support it.
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

isBaseOf
bool isBaseOf(BaseClass* bc, int* poffset)
Undocumented in source. Be warned that the author may not have intended to support it.
isCOMinterface
bool isCOMinterface()
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.
isInterfaceDeclaration
inout(InterfaceDeclaration) isInterfaceDeclaration()
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.
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.

Inherited Members

From ClassDeclaration

object
ClassDeclaration object;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
throwable
ClassDeclaration throwable;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
exception
ClassDeclaration exception;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
errorException
ClassDeclaration errorException;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
cpp_type_info_ptr
ClassDeclaration cpp_type_info_ptr;
Undocumented in source but is binding to C++. You might be able to learn more by searching the web for its name.
baseClass
ClassDeclaration baseClass;
Undocumented in source.
staticCtor
FuncDeclaration staticCtor;
Undocumented in source.
staticDtor
FuncDeclaration staticDtor;
Undocumented in source.
vtbl
Dsymbols vtbl;
Undocumented in source.
vtblFinal
Dsymbols vtblFinal;
Undocumented in source.
baseclasses
BaseClasses* baseclasses;
Undocumented in source.
interfaces
BaseClass*[] interfaces;
Undocumented in source.
vtblInterfaces
BaseClasses* vtblInterfaces;
Undocumented in source.
vclassinfo
TypeInfoClassDeclaration vclassinfo;
Undocumented in source.
com
bool com;
Undocumented in source.
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

isabstract
Abstract isabstract;
Undocumented in source.
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.

cpp_type_info_ptr_sym
Symbol* cpp_type_info_ptr_sym;
Undocumented in source.
create
ClassDeclaration create(Loc loc, Identifier id, BaseClasses* baseclasses, Dsymbols* members, bool inObject)
Undocumented in source. Be warned that the author may not have intended to support it.
syntaxCopy
Dsymbol syntaxCopy(Dsymbol s)
Undocumented in source. Be warned that the author may not have intended to support it.
newScope
Scope* newScope(Scope* sc)
Undocumented in source. Be warned that the author may not have intended to support it.
isBaseOf2
bool isBaseOf2(ClassDeclaration cd)

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

OFFSET_RUNTIME
enum OFFSET_RUNTIME;
Undocumented in source.
OFFSET_FWDREF
enum OFFSET_FWDREF;
Undocumented in source.
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.

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.

finalizeSize
void finalizeSize()
Undocumented in source. Be warned that the author may not have intended to support it.
hasMonitor
bool hasMonitor()
isFuncHidden
bool isFuncHidden(FuncDeclaration fd)
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.

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.
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()
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.
vtblsym
Dsymbol vtblsym;
Undocumented in source.
vtblSymbol
Dsymbol vtblSymbol()
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.
accept
void accept(Visitor v)
Undocumented in source. Be warned that the author may not have intended to support it.

Meta