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);
26 static Object factory(string classname);
33 ptrdiff_t offset; // offset to Interface 'this' from Object 'this'
36 class ClassInfo : Object
38 byte[] init; // class static initializer
39 string name; // class name
40 void*[] vtbl; // virtual function pointer table
41 Interface[] interfaces;
44 void(*classInvariant)(Object);
46 // 1: // is IUnknown or is derived from IUnknown
47 // 2: // has no possible pointers into GC memory
48 // 4: // has offTi[] member
49 // 8: // has constructors
50 // 16: // has xgetMembers member
52 OffsetTypeInfo[] offTi;
53 void* defaultConstructor;
54 const(MemberInfo[]) function(string) xgetMembers;
56 static ClassInfo find(in char[] classname);
58 const(MemberInfo[]) getMembers(in char[] classname);
69 hash_t getHash(in void* p);
70 equals_t equals(in void* p1, in void* p2);
71 int compare(in void* p1, in void* p2);
73 void swap(void* p1, void* p2);
77 // 1: // has possible pointers into GC memory
78 OffsetTypeInfo[] offTi();
79 void destroy(void* p);
80 void postblit(void* p);
83 class TypeInfo_Typedef : TypeInfo
90 class TypeInfo_Enum : TypeInfo_Typedef
95 class TypeInfo_Pointer : TypeInfo
100 class TypeInfo_Array : TypeInfo
105 class TypeInfo_StaticArray : TypeInfo
111 class TypeInfo_AssociativeArray : TypeInfo
117 class TypeInfo_Function : TypeInfo
122 class TypeInfo_Delegate : TypeInfo
127 class TypeInfo_Class : TypeInfo
132 class TypeInfo_Interface : TypeInfo
137 class TypeInfo_Struct : TypeInfo
142 uint function(in void*) xtoHash;
143 equals_t function(in void*, in void*) xopEquals;
144 int function(in void*, in void*) xopCmp;
145 string function(in void*) xtoString;
149 const(MemberInfo[]) function(in char[]) xgetMembers;
150 void function(void*) xdtor;
151 void function(void*) xpostblit;
154 class TypeInfo_Tuple : TypeInfo
159 class TypeInfo_Const : TypeInfo
164 class TypeInfo_Invariant : TypeInfo_Const
169 abstract class MemberInfo
174 class MemberInfo_field : MemberInfo
176 this(string name, TypeInfo ti, size_t offset);
178 override string name();
183 class MemberInfo_function : MemberInfo
192 this(string name, TypeInfo ti, void* fp, uint flags);
194 override string name();
203 ModuleInfo[] importedModules;
204 ClassInfo[] localClasses;
207 void function() ctor;
208 void function() dtor;
209 void function() unitTest;
211 static int opApply(int delegate(inout ModuleInfo));
214 class Throwable : Object
218 int opApply(int delegate(inout char[]));
228 this(string msg, Throwable next = null);
229 this(string msg, string file, size_t line, Throwable next = null);
230 override string toString();
234 class Exception : Throwable
236 this(string msg, Throwable next = null);
237 this(string msg, string file, size_t line, Throwable next = null);
241 class Error : Throwable
243 this(string msg, Throwable next = null);
244 this(string msg, string file, size_t line, Throwable next = null);