lindquist@58: module bug34; lindquist@58: lindquist@58: class MyTypeInfo_Pointer lindquist@58: { lindquist@58: char[] toString() { return m_next.toString() ~ "*"; } lindquist@58: lindquist@58: int opEquals(Object o) lindquist@58: { TypeInfo_Pointer c; lindquist@58: lindquist@58: return this is o || lindquist@58: ((c = cast(TypeInfo_Pointer)o) !is null && lindquist@58: this.m_next == c.m_next); lindquist@58: } lindquist@58: lindquist@58: hash_t getHash(void *p) lindquist@58: { lindquist@58: return cast(uint)*cast(void* *)p; lindquist@58: } lindquist@58: lindquist@58: int equals(void *p1, void *p2) lindquist@58: { lindquist@58: return cast(int)(*cast(void* *)p1 == *cast(void* *)p2); lindquist@58: } lindquist@58: lindquist@58: int compare(void *p1, void *p2) lindquist@58: { lindquist@58: if (*cast(void* *)p1 < *cast(void* *)p2) lindquist@58: return -1; lindquist@58: else if (*cast(void* *)p1 > *cast(void* *)p2) lindquist@58: return 1; lindquist@58: else lindquist@58: return 0; lindquist@58: } lindquist@58: lindquist@58: size_t tsize() lindquist@58: { lindquist@58: return (void*).sizeof; lindquist@58: } lindquist@58: lindquist@58: void swap(void *p1, void *p2) lindquist@58: { void* tmp; lindquist@58: tmp = *cast(void**)p1; lindquist@58: *cast(void**)p1 = *cast(void**)p2; lindquist@58: *cast(void**)p2 = tmp; lindquist@58: } lindquist@58: lindquist@58: TypeInfo next() { return m_next; } lindquist@58: uint flags() { return 1; } lindquist@58: lindquist@58: TypeInfo m_next; lindquist@58: } lindquist@58: lindquist@58: void main() lindquist@58: { lindquist@58: }