3 alias typeof(int.sizeof) size_t;
4 alias typeof(cast(void*)0 - cast(void*)0) ptrdiff_t;
9 alias invariant(char)[] string;
10 alias invariant(wchar)[] wstring;
11 alias invariant(dchar)[] dstring;
18 equals_t opEquals(Object o);
31 ptrdiff_t offset; // offset to Interface 'this' from Object 'this'
34 class ClassInfo : Object
36 byte[] init; // class static initializer
37 string name; // class name
38 void*[] vtbl; // virtual function pointer table
39 Interface[] interfaces;
42 void(*classInvariant)(Object);
44 // 1: // is IUnknown or is derived from IUnknown
45 // 2: // has no possible pointers into GC memory
46 // 4: // has offTi[] member
47 // 8: // has constructors
48 // 16: // has xgetMembers member
50 OffsetTypeInfo[] offTi;
51 void* defaultConstructor;
52 const(MemberInfo[]) function(string) xgetMembers;
54 static ClassInfo find(in char[] classname);
56 const(MemberInfo[]) getMembers(in char[] classname);
67 hash_t getHash(in void* p);
68 equals_t equals(in void* p1, in void* p2);
69 int compare(in void* p1, in void* p2);
71 void swap(void* p1, void* p2);
75 // 1: // has possible pointers into GC memory
76 OffsetTypeInfo[] offTi();
77 void destroy(void* p);
78 void postblit(void* p);
81 class TypeInfo_Typedef : TypeInfo
88 class TypeInfo_Enum : TypeInfo_Typedef
93 class TypeInfo_Pointer : TypeInfo
98 class TypeInfo_Array : TypeInfo
103 class TypeInfo_StaticArray : TypeInfo
109 class TypeInfo_AssociativeArray : TypeInfo
115 class TypeInfo_Function : TypeInfo
120 class TypeInfo_Delegate : TypeInfo
125 class TypeInfo_Class : TypeInfo
130 class TypeInfo_Interface : TypeInfo
135 class TypeInfo_Struct : TypeInfo
140 uint function(in void*) xtoHash;
141 equals_t function(in void*, in void*) xopEquals;
142 int function(in void*, in void*) xopCmp;
143 string function(in void*) xtoString;
147 const(MemberInfo[]) function(in char[]) xgetMembers;
148 void function(void*) xdtor;
149 void function(void*) xpostblit;
152 class TypeInfo_Tuple : TypeInfo
157 class TypeInfo_Const : TypeInfo
162 class TypeInfo_Invariant : TypeInfo_Const
167 abstract class MemberInfo
172 class MemberInfo_field : MemberInfo
174 this(string name, TypeInfo ti, size_t offset);
176 override string name();
181 class MemberInfo_function : MemberInfo
190 this(string name, TypeInfo ti, void* fp, uint flags);
192 override string name();
201 ModuleInfo[] importedModules;
202 ClassInfo[] localClasses;
205 void function() ctor;
206 void function() dtor;
207 void function() unitTest;
209 static int opApply( int delegate( inout ModuleInfo ) );
212 class Exception : Object
216 int opApply( int delegate(inout char[]) );
226 this(string msg, Exception next = null);
227 this(string msg, string file, size_t line, Exception next = null);
228 override string toString();
232 alias Exception Error;