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