]> git.llucax.com Git - software/druntime.git/commitdiff
Finished flattening D1/D2 differences. Except for one or two lines, all differences...
authorsean <sean@4a9d5153-6564-4b3f-b5e1-7e8e9dac548f>
Tue, 23 Sep 2008 03:21:04 +0000 (03:21 +0000)
committersean <sean@4a9d5153-6564-4b3f-b5e1-7e8e9dac548f>
Tue, 23 Sep 2008 03:21:04 +0000 (03:21 +0000)
git-svn-id: http://svn.dsource.org/projects/druntime/trunk@7 4a9d5153-6564-4b3f-b5e1-7e8e9dac548f

46 files changed:
import/object.di
src/compiler/dmd/cover.d
src/compiler/dmd/dmain2.d
src/compiler/dmd/object_.d
src/compiler/dmd/trace.d
src/compiler/dmd/typeinfo/ti_AC.d
src/compiler/dmd/typeinfo/ti_Acdouble.d
src/compiler/dmd/typeinfo/ti_Acfloat.d
src/compiler/dmd/typeinfo/ti_Acreal.d
src/compiler/dmd/typeinfo/ti_Adouble.d
src/compiler/dmd/typeinfo/ti_Afloat.d
src/compiler/dmd/typeinfo/ti_Ag.d
src/compiler/dmd/typeinfo/ti_Aint.d
src/compiler/dmd/typeinfo/ti_Along.d
src/compiler/dmd/typeinfo/ti_Areal.d
src/compiler/dmd/typeinfo/ti_Ashort.d
src/compiler/dmd/typeinfo/ti_C.d
src/compiler/dmd/typeinfo/ti_byte.d
src/compiler/dmd/typeinfo/ti_cdouble.d
src/compiler/dmd/typeinfo/ti_cfloat.d
src/compiler/dmd/typeinfo/ti_char.d
src/compiler/dmd/typeinfo/ti_creal.d
src/compiler/dmd/typeinfo/ti_dchar.d
src/compiler/dmd/typeinfo/ti_delegate.d
src/compiler/dmd/typeinfo/ti_double.d
src/compiler/dmd/typeinfo/ti_float.d
src/compiler/dmd/typeinfo/ti_idouble.d
src/compiler/dmd/typeinfo/ti_ifloat.d
src/compiler/dmd/typeinfo/ti_int.d
src/compiler/dmd/typeinfo/ti_ireal.d
src/compiler/dmd/typeinfo/ti_long.d
src/compiler/dmd/typeinfo/ti_ptr.d
src/compiler/dmd/typeinfo/ti_real.d
src/compiler/dmd/typeinfo/ti_short.d
src/compiler/dmd/typeinfo/ti_ubyte.d
src/compiler/dmd/typeinfo/ti_uint.d
src/compiler/dmd/typeinfo/ti_ulong.d
src/compiler/dmd/typeinfo/ti_ushort.d
src/compiler/dmd/typeinfo/ti_void.d
src/compiler/dmd/typeinfo/ti_wchar.d
src/compiler/dmd/util/cpuid.d
src/compiler/dmd/util/utf.d
src/core/exception.d
src/core/posix.mak
src/core/thread.d
src/core/win32.mak

index 9508fef763b43f8762fc9d799a619e3c17644eb7..740046893b3388af1400362ef35f0d7ec11b11b2 100644 (file)
@@ -175,5 +175,5 @@ class Exception : Object
 \r
     this(string msg, Exception next = null);\r
     this(string msg, string file, size_t line, Exception next = null);\r
-    string toString();\r
+    override string toString();\r
 }\r
index fd331615aeebb4ac2eea80411849728da2e7867b..7d880e1c059efabb474545bc209196a8bfef1b7f 100644 (file)
@@ -222,7 +222,7 @@ bool readFile( char[] name, inout char[] buf )
 {
     version( Windows )
     {
-        wchar*  wnamez  = toUTF16z( name );
+        auto    wnamez  = toUTF16z( name );
         HANDLE  file    = CreateFileW( wnamez,
                                        GENERIC_READ,
                                        FILE_SHARE_READ,
index 9527929b5fe713231826236e70f90d3d4e0daa03..4285db869793c22799a71a52f1dc3c4b922c4ef9 100644 (file)
@@ -42,34 +42,34 @@ extern (C) void thread_joinAll();
  * These functions must be defined for any D program linked
  * against this library.
  */
-extern (C) void onAssertError( char[] file, size_t line );
-extern (C) void onAssertErrorMsg( char[] file, size_t line, char[] msg );
-extern (C) void onArrayBoundsError( char[] file, size_t line );
-extern (C) void onSwitchError( char[] file, size_t line );
+extern (C) void onAssertError( string file, size_t line );
+extern (C) void onAssertErrorMsg( string file, size_t line, string msg );
+extern (C) void onArrayBoundsError( string file, size_t line );
+extern (C) void onSwitchError( string file, size_t line );
 extern (C) bool runModuleUnitTests();
 
 // this function is called from the utf module
-//extern (C) void onUnicodeError( char[] msg, size_t idx );
+//extern (C) void onUnicodeError( string msg, size_t idx );
 
 /***********************************
  * These are internal callbacks for various language errors.
  */
-extern (C) void _d_assert( char[] file, uint line )
+extern (C) void _d_assert( string file, uint line )
 {
     onAssertError( file, line );
 }
 
-extern (C) static void _d_assert_msg( char[] msg, char[] file, uint line )
+extern (C) static void _d_assert_msg( string msg, string file, uint line )
 {
     onAssertErrorMsg( file, line, msg );
 }
 
-extern (C) void _d_array_bounds( char[] file, uint line )
+extern (C) void _d_array_bounds( string file, uint line )
 {
     onArrayBoundsError( file, line );
 }
 
-extern (C) void _d_switch_error( char[] file, uint line )
+extern (C) void _d_switch_error( string file, uint line )
 {
     onSwitchError( file, line );
 }
index a0ac2a0a5d9558345182a17e17bd9610e1142199..0ffa9fbf00b6fc480ca8572dcc62c30e1d2ebee8 100644 (file)
@@ -216,7 +216,7 @@ struct OffsetTypeInfo
  */
 class TypeInfo
 {
-    hash_t toHash()
+    override hash_t toHash()
     {   hash_t hash;
 
         foreach (char c; this.toString())
@@ -224,7 +224,7 @@ class TypeInfo
         return hash;
     }
 
-    int opCmp(Object o)
+    override int opCmp(Object o)
     {
         if (this is o)
             return 0;
@@ -234,7 +234,7 @@ class TypeInfo
         return dstrcmp(this.toString(), ti.toString());
     }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         /* TypeInfo instances are singletons, but duplicates can exist
          * across DLL's. Therefore, comparing for a name match is
@@ -286,9 +286,9 @@ class TypeInfo
 
 class TypeInfo_Typedef : TypeInfo
 {
-    string toString() { return name; }
+    override string toString() { return name; }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         TypeInfo_Typedef c;
         return this is o ||
@@ -297,15 +297,15 @@ class TypeInfo_Typedef : TypeInfo
                 this.base == c.base);
     }
 
-    hash_t getHash(in void* p) { return base.getHash(p); }
-    equals_t equals(in void* p1, in void* p2) { return base.equals(p1, p2); }
-    int compare(in void* p1, in void* p2) { return base.compare(p1, p2); }
-    size_t tsize() { return base.tsize(); }
-    void swap(void* p1, void* p2) { return base.swap(p1, p2); }
+    override hash_t getHash(in void* p) { return base.getHash(p); }
+    override equals_t equals(in void* p1, in void* p2) { return base.equals(p1, p2); }
+    override int compare(in void* p1, in void* p2) { return base.compare(p1, p2); }
+    override size_t tsize() { return base.tsize(); }
+    override void swap(void* p1, void* p2) { return base.swap(p1, p2); }
 
-    TypeInfo next() { return base.next(); }
-    uint flags() { return base.flags(); }
-    void[] init() { return m_init.length ? m_init : base.init(); }
+    override TypeInfo next() { return base.next(); }
+    override uint flags() { return base.flags(); }
+    override void[] init() { return m_init.length ? m_init : base.init(); }
 
     TypeInfo base;
     string   name;
@@ -319,9 +319,9 @@ class TypeInfo_Enum : TypeInfo_Typedef
 
 class TypeInfo_Pointer : TypeInfo
 {
-    string toString() { return m_next.toString() ~ "*"; }
+    override string toString() { return m_next.toString() ~ "*"; }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         TypeInfo_Pointer c;
         return this is o ||
@@ -329,17 +329,17 @@ class TypeInfo_Pointer : TypeInfo
                  this.m_next == c.m_next);
     }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return cast(hash_t)*cast(void**)p;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(void**)p1 == *cast(void**)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         if (*cast(void**)p1 < *cast(void**)p2)
             return -1;
@@ -349,29 +349,29 @@ class TypeInfo_Pointer : TypeInfo
             return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (void*).sizeof;
     }
 
-    void swap(void* p1, void* p2)
+    override void swap(void* p1, void* p2)
     {
         void* tmp = *cast(void**)p1;
         *cast(void**)p1 = *cast(void**)p2;
         *cast(void**)p2 = tmp;
     }
 
-    TypeInfo next() { return m_next; }
-    uint flags() { return 1; }
+    override TypeInfo next() { return m_next; }
+    override uint flags() { return 1; }
 
     TypeInfo m_next;
 }
 
 class TypeInfo_Array : TypeInfo
 {
-    string toString() { return value.toString() ~ "[]"; }
+    override string toString() { return value.toString() ~ "[]"; }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         TypeInfo_Array c;
         return this is o ||
@@ -379,7 +379,7 @@ class TypeInfo_Array : TypeInfo
                 this.value == c.value);
     }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         size_t sz = value.tsize();
         hash_t hash = 0;
@@ -389,7 +389,7 @@ class TypeInfo_Array : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         void[] a1 = *cast(void[]*)p1;
         void[] a2 = *cast(void[]*)p2;
@@ -404,7 +404,7 @@ class TypeInfo_Array : TypeInfo
         return true;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         void[] a1 = *cast(void[]*)p1;
         void[] a2 = *cast(void[]*)p2;
@@ -422,12 +422,12 @@ class TypeInfo_Array : TypeInfo
         return cast(int)a1.length - cast(int)a2.length;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (void[]).sizeof;
     }
 
-    void swap(void* p1, void* p2)
+    override void swap(void* p1, void* p2)
     {
         void[] tmp = *cast(void[]*)p1;
         *cast(void[]*)p1 = *cast(void[]*)p2;
@@ -436,23 +436,23 @@ class TypeInfo_Array : TypeInfo
 
     TypeInfo value;
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return value;
     }
 
-    uint flags() { return 1; }
+    override uint flags() { return 1; }
 }
 
 class TypeInfo_StaticArray : TypeInfo
 {
-    string toString()
+    override string toString()
     {
-        char [10] tmp = void;
-        return value.toString() ~ "[" ~ tmp.intToString(len) ~ "]";
+        char[10] tmp = void;
+        return cast(string)(value.toString() ~ "[" ~ tmp.intToString(len) ~ "]");
     }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         TypeInfo_StaticArray c;
         return this is o ||
@@ -461,7 +461,7 @@ class TypeInfo_StaticArray : TypeInfo
                 this.value == c.value);
     }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         size_t sz = value.tsize();
         hash_t hash = 0;
@@ -470,7 +470,7 @@ class TypeInfo_StaticArray : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         size_t sz = value.tsize();
 
@@ -482,7 +482,7 @@ class TypeInfo_StaticArray : TypeInfo
         return true;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         size_t sz = value.tsize();
 
@@ -495,12 +495,12 @@ class TypeInfo_StaticArray : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return len * value.tsize();
     }
 
-    void swap(void* p1, void* p2)
+    override void swap(void* p1, void* p2)
     {
         void* tmp;
         size_t sz = value.tsize();
@@ -522,9 +522,9 @@ class TypeInfo_StaticArray : TypeInfo
             delete pbuffer;
     }
 
-    void[] init() { return value.init(); }
-    TypeInfo next() { return value; }
-    uint flags() { return value.flags(); }
+    override void[] init() { return value.init(); }
+    override TypeInfo next() { return value; }
+    override uint flags() { return value.flags(); }
 
     TypeInfo value;
     size_t   len;
@@ -532,12 +532,12 @@ class TypeInfo_StaticArray : TypeInfo
 
 class TypeInfo_AssociativeArray : TypeInfo
 {
-    string toString()
+    override string toString()
     {
-        return next.toString() ~ "[" ~ key.toString() ~ "]";
+        return cast(string)(next.toString() ~ "[" ~ key.toString() ~ "]");
     }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         TypeInfo_AssociativeArray c;
         return this is o ||
@@ -548,13 +548,13 @@ class TypeInfo_AssociativeArray : TypeInfo
 
     // BUG: need to add the rest of the functions
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (char[int]).sizeof;
     }
 
-    TypeInfo next() { return value; }
-    uint flags() { return 1; }
+    override TypeInfo next() { return value; }
+    override uint flags() { return 1; }
 
     TypeInfo value;
     TypeInfo key;
@@ -562,12 +562,12 @@ class TypeInfo_AssociativeArray : TypeInfo
 
 class TypeInfo_Function : TypeInfo
 {
-    string toString()
+    override string toString()
     {
-        return next.toString() ~ "()";
+        return cast(string)(next.toString() ~ "()");
     }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         TypeInfo_Function c;
         return this is o ||
@@ -577,7 +577,7 @@ class TypeInfo_Function : TypeInfo
 
     // BUG: need to add the rest of the functions
 
-    size_t tsize()
+    override size_t tsize()
     {
         return 0;       // no size for functions
     }
@@ -587,12 +587,12 @@ class TypeInfo_Function : TypeInfo
 
 class TypeInfo_Delegate : TypeInfo
 {
-    string toString()
+    override string toString()
     {
-        return next.toString() ~ " delegate()";
+        return cast(string)(next.toString() ~ " delegate()");
     }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         TypeInfo_Delegate c;
         return this is o ||
@@ -602,22 +602,22 @@ class TypeInfo_Delegate : TypeInfo
 
     // BUG: need to add the rest of the functions
 
-    size_t tsize()
+    override size_t tsize()
     {
         alias int delegate() dg;
         return dg.sizeof;
     }
 
-    uint flags() { return 1; }
+    override uint flags() { return 1; }
 
     TypeInfo next;
 }
 
 class TypeInfo_Class : TypeInfo
 {
-    string toString() { return info.name; }
+    override string toString() { return info.name; }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         TypeInfo_Class c;
         return this is o ||
@@ -625,13 +625,13 @@ class TypeInfo_Class : TypeInfo
                  this.info.name == c.classinfo.name);
     }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         Object o = *cast(Object*)p;
         return o ? o.toHash() : 0;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         Object o1 = *cast(Object*)p1;
         Object o2 = *cast(Object*)p2;
@@ -639,7 +639,7 @@ class TypeInfo_Class : TypeInfo
         return (o1 is o2) || (o1 && o1.opEquals(o2));
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         Object o1 = *cast(Object*)p1;
         Object o2 = *cast(Object*)p2;
@@ -661,14 +661,14 @@ class TypeInfo_Class : TypeInfo
         return c;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return Object.sizeof;
     }
 
-    uint flags() { return 1; }
+    override uint flags() { return 1; }
 
-    OffsetTypeInfo[] offTi()
+    override OffsetTypeInfo[] offTi()
     {
         return (info.flags & 4) ? info.offTi : null;
     }
@@ -678,9 +678,9 @@ class TypeInfo_Class : TypeInfo
 
 class TypeInfo_Interface : TypeInfo
 {
-    string toString() { return info.name; }
+    override string toString() { return info.name; }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         TypeInfo_Interface c;
         return this is o ||
@@ -688,7 +688,7 @@ class TypeInfo_Interface : TypeInfo
                  this.info.name == c.classinfo.name);
     }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         Interface* pi = **cast(Interface ***)*cast(void**)p;
         Object o = cast(Object)(*cast(void**)p - pi.offset);
@@ -696,7 +696,7 @@ class TypeInfo_Interface : TypeInfo
         return o.toHash();
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         Interface* pi = **cast(Interface ***)*cast(void**)p1;
         Object o1 = cast(Object)(*cast(void**)p1 - pi.offset);
@@ -706,7 +706,7 @@ class TypeInfo_Interface : TypeInfo
         return o1 == o2 || (o1 && o1.opCmp(o2) == 0);
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         Interface* pi = **cast(Interface ***)*cast(void**)p1;
         Object o1 = cast(Object)(*cast(void**)p1 - pi.offset);
@@ -730,21 +730,21 @@ class TypeInfo_Interface : TypeInfo
         return c;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return Object.sizeof;
     }
 
-    uint flags() { return 1; }
+    override uint flags() { return 1; }
 
     ClassInfo info;
 }
 
 class TypeInfo_Struct : TypeInfo
 {
-    string toString() { return name; }
+    override string toString() { return name; }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         TypeInfo_Struct s;
         return this is o ||
@@ -753,7 +753,7 @@ class TypeInfo_Struct : TypeInfo
                  this.init.length == s.init.length);
     }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         assert(p);
         if (xtoHash)
@@ -778,7 +778,7 @@ class TypeInfo_Struct : TypeInfo
         }
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         if (p1 == p2)
             return true;
@@ -791,7 +791,7 @@ class TypeInfo_Struct : TypeInfo
             return memcmp(p1, p2, init.length) == 0;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         // Regard null references as always being "less than"
         if (p1 != p2)
@@ -812,14 +812,14 @@ class TypeInfo_Struct : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return init.length;
     }
 
-    void[] init() { return m_init; }
+    override void[] init() { return m_init; }
 
-    uint flags() { return m_flags; }
+    override uint flags() { return m_flags; }
 
     string name;
     void[] m_init;      // initializer; init.ptr == null if 0 initialize
@@ -836,7 +836,7 @@ class TypeInfo_Tuple : TypeInfo
 {
     TypeInfo[] elements;
 
-    string toString()
+    override string toString()
     {
         string s = "(";
         foreach (i, element; elements)
@@ -849,7 +849,7 @@ class TypeInfo_Tuple : TypeInfo
         return s;
     }
 
-    equals_t opEquals(Object o)
+    override equals_t opEquals(Object o)
     {
         if (this is o)
             return true;
@@ -867,27 +867,27 @@ class TypeInfo_Tuple : TypeInfo
         return false;
     }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         assert(0);
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         assert(0);
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         assert(0);
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         assert(0);
     }
 
-    void swap(void* p1, void* p2)
+    override void swap(void* p1, void* p2)
     {
         assert(0);
     }
@@ -927,7 +927,7 @@ class Exception : Object
         this.info = traceContext();
     }
 
-    string toString()
+    override string toString()
     {
         return msg;
     }
index 469afe2aef7ecdf5f9e87a990fb8f55f20626215..0947d573048613a189b52f9ba41df3681284e4db 100644 (file)
@@ -76,10 +76,10 @@ static timer_t trace_ohd;
 static Symbol** psymbols;
 static uint nsymbols;           // number of symbols
 
-static char[] trace_logfilename = "trace.log";
+static string trace_logfilename = "trace.log";
 static FILE* fplog;
 
-static char[] trace_deffilename = "trace.def";
+static string trace_deffilename = "trace.def";
 static FILE* fpdef;
 
 
@@ -90,7 +90,7 @@ static FILE* fpdef;
 //      0       success
 //      !=0     failure
 
-int trace_setlogfilename(char[] name)
+int trace_setlogfilename(string name)
 {
     trace_logfilename = name;
     return 0;
@@ -103,7 +103,7 @@ int trace_setlogfilename(char[] name)
 //      0       success
 //      !=0     failure
 
-int trace_setdeffilename(char[] name)
+int trace_setdeffilename(string name)
 {
     trace_deffilename = name;
     return 0;
@@ -150,7 +150,7 @@ static void stack_free(Stack *s)
 //////////////////////////////////////
 // Qsort() comparison routine for array of pointers to SymPair's.
 
-static int sympair_cmp(void* e1, void* e2)
+static int sympair_cmp(in void* e1, in void* e2)
 {   SymPair** psp1;
     SymPair** psp2;
 
@@ -285,7 +285,7 @@ static void trace_array(Symbol *s)
 //////////////////////////////////////
 // Qsort() comparison routine for array of pointers to Symbol's.
 
-static int symbol_cmp(void* e1, void* e2)
+static int symbol_cmp(in void* e1, in void* e2)
 {   Symbol** ps1;
     Symbol** ps2;
     timer_t diff;
index 47b9074f9914cad0c7fcfd0a890771f8dc115353..e5eff266648b82f7e2f63e8a44c467e009c35a91 100644 (file)
@@ -4,7 +4,7 @@ module rt.typeinfo.ti_AC;
 
 class TypeInfo_AC : TypeInfo
 {
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   Object[] s = *cast(Object[]*)p;
         hash_t hash = 0;
 
@@ -16,7 +16,7 @@ class TypeInfo_AC : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         Object[] s1 = *cast(Object[]*)p1;
         Object[] s2 = *cast(Object[]*)p2;
@@ -38,7 +38,7 @@ class TypeInfo_AC : TypeInfo
         return false;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         Object[] s1 = *cast(Object[]*)p1;
         Object[] s2 = *cast(Object[]*)p2;
@@ -78,17 +78,17 @@ class TypeInfo_AC : TypeInfo
         return c;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (Object[]).sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(Object);
     }
index b844926c8af2996f8d2a847ce3ebe1d156dc8671..93a8512727ff3e171632151c5c86605a2c3a69e5 100644 (file)
@@ -29,9 +29,9 @@ private import typeinfo.ti_cdouble;
 
 class TypeInfo_Ar : TypeInfo
 {
-    string toString() { return "cdouble[]"; }
+    override string toString() { return "cdouble[]"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   cdouble[] s = *cast(cdouble[]*)p;
         size_t len = s.length;
         cdouble *str = s.ptr;
@@ -51,7 +51,7 @@ class TypeInfo_Ar : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         cdouble[] s1 = *cast(cdouble[]*)p1;
         cdouble[] s2 = *cast(cdouble[]*)p2;
@@ -67,7 +67,7 @@ class TypeInfo_Ar : TypeInfo
         return true;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         cdouble[] s1 = *cast(cdouble[]*)p1;
         cdouble[] s2 = *cast(cdouble[]*)p2;
@@ -88,17 +88,17 @@ class TypeInfo_Ar : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (cdouble[]).sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(cdouble);
     }
index f15a507f75b53f85e566610d4a4c60def3dd3b93..069b09a288b37a2400b97fcb422e4b51f0640401 100644 (file)
@@ -29,9 +29,9 @@ private import typeinfo.ti_cfloat;
 
 class TypeInfo_Aq : TypeInfo
 {
-    string toString() { return "cfloat[]"; }
+    override string toString() { return "cfloat[]"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   cfloat[] s = *cast(cfloat[]*)p;
         size_t len = s.length;
         cfloat *str = s.ptr;
@@ -49,7 +49,7 @@ class TypeInfo_Aq : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         cfloat[] s1 = *cast(cfloat[]*)p1;
         cfloat[] s2 = *cast(cfloat[]*)p2;
@@ -65,7 +65,7 @@ class TypeInfo_Aq : TypeInfo
         return true;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         cfloat[] s1 = *cast(cfloat[]*)p1;
         cfloat[] s2 = *cast(cfloat[]*)p2;
@@ -86,17 +86,17 @@ class TypeInfo_Aq : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (cfloat[]).sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(cfloat);
     }
index 576a0cd89f9c6554fbf94c0eec5338dc5a5841b9..ba26c5186fd6510c63c5b7fc61693dfa08656aab 100644 (file)
@@ -29,9 +29,9 @@ private import typeinfo.ti_creal;
 
 class TypeInfo_Ac : TypeInfo
 {
-    string toString() { return "creal[]"; }
+    override string toString() { return "creal[]"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   creal[] s = *cast(creal[]*)p;
         size_t len = s.length;
         creal *str = s.ptr;
@@ -52,7 +52,7 @@ class TypeInfo_Ac : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         creal[] s1 = *cast(creal[]*)p1;
         creal[] s2 = *cast(creal[]*)p2;
@@ -68,7 +68,7 @@ class TypeInfo_Ac : TypeInfo
         return true;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         creal[] s1 = *cast(creal[]*)p1;
         creal[] s2 = *cast(creal[]*)p2;
@@ -89,17 +89,17 @@ class TypeInfo_Ac : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (creal[]).sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(creal);
     }
index 785f1663a1d5b038f6baa2e7a49b7f0f060509ea..1b3709fa239bd2664354da1b1ac30a1d89207fdf 100644 (file)
@@ -29,9 +29,9 @@ private import typeinfo.ti_double;
 
 class TypeInfo_Ad : TypeInfo
 {
-    string toString() { return "double[]"; }
+    override string toString() { return "double[]"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   double[] s = *cast(double[]*)p;
         size_t len = s.length;
         auto str = s.ptr;
@@ -49,7 +49,7 @@ class TypeInfo_Ad : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         double[] s1 = *cast(double[]*)p1;
         double[] s2 = *cast(double[]*)p2;
@@ -65,7 +65,7 @@ class TypeInfo_Ad : TypeInfo
         return true;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         double[] s1 = *cast(double[]*)p1;
         double[] s2 = *cast(double[]*)p2;
@@ -86,17 +86,17 @@ class TypeInfo_Ad : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (double[]).sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(double);
     }
@@ -106,9 +106,9 @@ class TypeInfo_Ad : TypeInfo
 
 class TypeInfo_Ap : TypeInfo_Ad
 {
-    string toString() { return "idouble[]"; }
+    override string toString() { return "idouble[]"; }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(idouble);
     }
index cb937cd94416d8984bb85595ac6b8c1bc72af549..312882b1ae86c0e34b69a09cba83d7c76aec8e1f 100644 (file)
@@ -29,9 +29,9 @@ private import typeinfo.ti_float;
 
 class TypeInfo_Af : TypeInfo
 {
-    string toString() { return "float[]"; }
+    override string toString() { return "float[]"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   float[] s = *cast(float[]*)p;
         size_t len = s.length;
         auto str = s.ptr;
@@ -48,7 +48,7 @@ class TypeInfo_Af : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         float[] s1 = *cast(float[]*)p1;
         float[] s2 = *cast(float[]*)p2;
@@ -64,7 +64,7 @@ class TypeInfo_Af : TypeInfo
         return true;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         float[] s1 = *cast(float[]*)p1;
         float[] s2 = *cast(float[]*)p2;
@@ -85,17 +85,17 @@ class TypeInfo_Af : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (float[]).sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(float);
     }
@@ -105,9 +105,9 @@ class TypeInfo_Af : TypeInfo
 
 class TypeInfo_Ao : TypeInfo_Af
 {
-    string toString() { return "ifloat[]"; }
+    override string toString() { return "ifloat[]"; }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(ifloat);
     }
index daaa25bc8f9c960f15d21702584d8d1df4460236..9b935d301e2858b20748edf721acab60f3288a47 100644 (file)
@@ -8,9 +8,9 @@ private import stdc.string;
 
 class TypeInfo_Ag : TypeInfo
 {
-    string toString() { return "byte[]"; }
+    override string toString() { return "byte[]"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   byte[] s = *cast(byte[]*)p;
         size_t len = s.length;
         byte *str = s.ptr;
@@ -51,7 +51,7 @@ class TypeInfo_Ag : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         byte[] s1 = *cast(byte[]*)p1;
         byte[] s2 = *cast(byte[]*)p2;
@@ -60,7 +60,7 @@ class TypeInfo_Ag : TypeInfo
                memcmp(cast(byte *)s1, cast(byte *)s2, s1.length) == 0;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         byte[] s1 = *cast(byte[]*)p1;
         byte[] s2 = *cast(byte[]*)p2;
@@ -81,17 +81,17 @@ class TypeInfo_Ag : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (byte[]).sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(byte);
     }
@@ -102,9 +102,9 @@ class TypeInfo_Ag : TypeInfo
 
 class TypeInfo_Ah : TypeInfo_Ag
 {
-    string toString() { return "ubyte[]"; }
+    override string toString() { return "ubyte[]"; }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         char[] s1 = *cast(char[]*)p1;
         char[] s2 = *cast(char[]*)p2;
@@ -112,7 +112,7 @@ class TypeInfo_Ah : TypeInfo_Ag
         return dstrcmp(s1, s2);
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(ubyte);
     }
@@ -122,9 +122,9 @@ class TypeInfo_Ah : TypeInfo_Ag
 
 class TypeInfo_Av : TypeInfo_Ah
 {
-    string toString() { return "void[]"; }
+    override string toString() { return "void[]"; }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(void);
     }
@@ -134,9 +134,9 @@ class TypeInfo_Av : TypeInfo_Ah
 
 class TypeInfo_Ab : TypeInfo_Ah
 {
-    string toString() { return "bool[]"; }
+    override string toString() { return "bool[]"; }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(bool);
     }
@@ -146,9 +146,9 @@ class TypeInfo_Ab : TypeInfo_Ah
 
 class TypeInfo_Aa : TypeInfo_Ag
 {
-    string toString() { return "char[]"; }
+    override string toString() { return "char[]"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   char[] s = *cast(char[]*)p;
         hash_t hash = 0;
 
@@ -197,7 +197,7 @@ else
         return hash;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(char);
     }
index 32b940f5d4bfcb31b57910cbaac7b49eead74765..9eecc171b5dfe915e160e917a79469ab4e4af07a 100644 (file)
@@ -7,9 +7,9 @@ private import stdc.string;
 
 class TypeInfo_Ai : TypeInfo
 {
-    string toString() { return "int[]"; }
+    override string toString() { return "int[]"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   int[] s = *cast(int[]*)p;
         auto len = s.length;
         auto str = s.ptr;
@@ -26,7 +26,7 @@ class TypeInfo_Ai : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         int[] s1 = *cast(int[]*)p1;
         int[] s2 = *cast(int[]*)p2;
@@ -35,7 +35,7 @@ class TypeInfo_Ai : TypeInfo
                memcmp(cast(void *)s1, cast(void *)s2, s1.length * int.sizeof) == 0;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         int[] s1 = *cast(int[]*)p1;
         int[] s2 = *cast(int[]*)p2;
@@ -56,17 +56,17 @@ class TypeInfo_Ai : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (int[]).sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(int);
     }
@@ -87,9 +87,9 @@ unittest
 
 class TypeInfo_Ak : TypeInfo_Ai
 {
-    string toString() { return "uint[]"; }
+    override string toString() { return "uint[]"; }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         uint[] s1 = *cast(uint[]*)p1;
         uint[] s2 = *cast(uint[]*)p2;
@@ -110,7 +110,7 @@ class TypeInfo_Ak : TypeInfo_Ai
         return 0;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(uint);
     }
@@ -120,9 +120,9 @@ class TypeInfo_Ak : TypeInfo_Ai
 
 class TypeInfo_Aw : TypeInfo_Ak
 {
-    string toString() { return "dchar[]"; }
+    override string toString() { return "dchar[]"; }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(dchar);
     }
index 0a3b7f9320a1db31eabdd3e19dad09ca9b11486d..2263e92efc76504072f89597fcc9e75e91aa3a81 100644 (file)
@@ -7,9 +7,9 @@ private import stdc.string;
 
 class TypeInfo_Al : TypeInfo
 {
-    string toString() { return "long[]"; }
+    override string toString() { return "long[]"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   long[] s = *cast(long[]*)p;
         size_t len = s.length;
         auto str = s.ptr;
@@ -26,7 +26,7 @@ class TypeInfo_Al : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         long[] s1 = *cast(long[]*)p1;
         long[] s2 = *cast(long[]*)p2;
@@ -35,7 +35,7 @@ class TypeInfo_Al : TypeInfo
                memcmp(cast(void *)s1, cast(void *)s2, s1.length * long.sizeof) == 0;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         long[] s1 = *cast(long[]*)p1;
         long[] s2 = *cast(long[]*)p2;
@@ -57,17 +57,17 @@ class TypeInfo_Al : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (long[]).sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(long);
     }
@@ -78,9 +78,9 @@ class TypeInfo_Al : TypeInfo
 
 class TypeInfo_Am : TypeInfo_Al
 {
-    string toString() { return "ulong[]"; }
+    override string toString() { return "ulong[]"; }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         ulong[] s1 = *cast(ulong[]*)p1;
         ulong[] s2 = *cast(ulong[]*)p2;
@@ -102,7 +102,7 @@ class TypeInfo_Am : TypeInfo_Al
         return 0;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(ulong);
     }
index 93040d9afce0cb215976bd5cb0b0fcc6928ac341..a5d3279ce67450cdb594ffeac7683bd6f8ef96f2 100644 (file)
@@ -29,9 +29,9 @@ private import typeinfo.ti_real;
 
 class TypeInfo_Ae : TypeInfo
 {
-    string toString() { return "real[]"; }
+    override string toString() { return "real[]"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   real[] s = *cast(real[]*)p;
         size_t len = s.length;
         auto str = s.ptr;
@@ -50,7 +50,7 @@ class TypeInfo_Ae : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         real[] s1 = *cast(real[]*)p1;
         real[] s2 = *cast(real[]*)p2;
@@ -66,7 +66,7 @@ class TypeInfo_Ae : TypeInfo
         return true;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         real[] s1 = *cast(real[]*)p1;
         real[] s2 = *cast(real[]*)p2;
@@ -87,17 +87,17 @@ class TypeInfo_Ae : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (real[]).sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(real);
     }
@@ -107,9 +107,9 @@ class TypeInfo_Ae : TypeInfo
 
 class TypeInfo_Aj : TypeInfo_Ae
 {
-    string toString() { return "ireal[]"; }
+    override string toString() { return "ireal[]"; }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(ireal);
     }
index b5b494d123b8937e70cdb8bf2eedf874fa658fd1..12c9f56aa10ffc3969bab9c645bc1b500cef80e8 100644 (file)
@@ -7,9 +7,9 @@ private import stdc.string;
 
 class TypeInfo_As : TypeInfo
 {
-    string toString() { return "short[]"; }
+    override string toString() { return "short[]"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   short[] s = *cast(short[]*)p;
         size_t len = s.length;
         short *str = s.ptr;
@@ -39,7 +39,7 @@ class TypeInfo_As : TypeInfo
         return hash;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         short[] s1 = *cast(short[]*)p1;
         short[] s2 = *cast(short[]*)p2;
@@ -48,7 +48,7 @@ class TypeInfo_As : TypeInfo
                memcmp(cast(void *)s1, cast(void *)s2, s1.length * short.sizeof) == 0;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         short[] s1 = *cast(short[]*)p1;
         short[] s2 = *cast(short[]*)p2;
@@ -69,17 +69,17 @@ class TypeInfo_As : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (short[]).sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(short);
     }
@@ -90,9 +90,9 @@ class TypeInfo_As : TypeInfo
 
 class TypeInfo_At : TypeInfo_As
 {
-    string toString() { return "ushort[]"; }
+    override string toString() { return "ushort[]"; }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         ushort[] s1 = *cast(ushort[]*)p1;
         ushort[] s2 = *cast(ushort[]*)p2;
@@ -113,7 +113,7 @@ class TypeInfo_At : TypeInfo_As
         return 0;
     }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(ushort);
     }
@@ -123,9 +123,9 @@ class TypeInfo_At : TypeInfo_As
 
 class TypeInfo_Au : TypeInfo_At
 {
-    string toString() { return "wchar[]"; }
+    override string toString() { return "wchar[]"; }
 
-    TypeInfo next()
+    override TypeInfo next()
     {
         return typeid(wchar);
     }
index 5311398cec520ecceef3ad411a856503a2b3b40f..011ffb4028d9ede641def6c20870d33758291b7a 100644 (file)
@@ -27,13 +27,13 @@ module rt.typeinfo.ti_C;
 
 class TypeInfo_C : TypeInfo
 {
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         Object o = *cast(Object*)p;
         return o ? o.toHash() : 0;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         Object o1 = *cast(Object*)p1;
         Object o2 = *cast(Object*)p2;
@@ -41,7 +41,7 @@ class TypeInfo_C : TypeInfo
         return o1 == o2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         Object o1 = *cast(Object*)p1;
         Object o2 = *cast(Object*)p2;
@@ -62,12 +62,12 @@ class TypeInfo_C : TypeInfo
         return c;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return Object.sizeof;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
index ef0c8f209156c2c17ce5fe1b4a8732f835c7dda6..4ddb46913906d0a09fb9913df3f3073a6b838fd7 100644 (file)
@@ -5,29 +5,29 @@ module rt.typeinfo.ti_byte;
 
 class TypeInfo_g : TypeInfo
 {
-    string toString() { return "byte"; }
+    override string toString() { return "byte"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(byte *)p;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(byte *)p1 == *cast(byte *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return *cast(byte *)p1 - *cast(byte *)p2;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return byte.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         byte t;
 
index 0890360a4cfccf1ec2ecdcaca00b1e6ea6ad43a6..89fa9f1a3cf819007c07c4089bed35e97a80708b 100644 (file)
@@ -5,9 +5,9 @@ module rt.typeinfo.ti_cdouble;
 
 class TypeInfo_r : TypeInfo
 {
-    string toString() { return "cdouble"; }
+    override string toString() { return "cdouble"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return (cast(uint *)p)[0] + (cast(uint *)p)[1] +
                (cast(uint *)p)[2] + (cast(uint *)p)[3];
@@ -34,22 +34,22 @@ class TypeInfo_r : TypeInfo
         return result;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return _equals(*cast(cdouble *)p1, *cast(cdouble *)p2);
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return _compare(*cast(cdouble *)p1, *cast(cdouble *)p2);
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return cdouble.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         cdouble t;
 
@@ -58,7 +58,7 @@ class TypeInfo_r : TypeInfo
         *cast(cdouble *)p2 = t;
     }
 
-    void[] init()
+    override void[] init()
     {   static cdouble r;
 
         return (cast(cdouble *)&r)[0 .. 1];
index 50c7ba8cbcb40db869bf87b12270b69b53a10fbc..f07b96a63e2973bf35cc2393d767cfe2793fcfa7 100644 (file)
@@ -5,9 +5,9 @@ module rt.typeinfo.ti_cfloat;
 
 class TypeInfo_q : TypeInfo
 {
-    string toString() { return "cfloat"; }
+    override string toString() { return "cfloat"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return (cast(uint *)p)[0] + (cast(uint *)p)[1];
     }
@@ -33,22 +33,22 @@ class TypeInfo_q : TypeInfo
         return result;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return _equals(*cast(cfloat *)p1, *cast(cfloat *)p2);
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return _compare(*cast(cfloat *)p1, *cast(cfloat *)p2);
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return cfloat.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         cfloat t;
 
@@ -57,7 +57,7 @@ class TypeInfo_q : TypeInfo
         *cast(cfloat *)p2 = t;
     }
 
-    void[] init()
+    override void[] init()
     {   static cfloat r;
 
         return (cast(cfloat *)&r)[0 .. 1];
index 60e49e202cd75902bc42845b1e97b66d0105ebbf..774bcb2af600f9d2b5cb17c42007ac0cb96c309b 100644 (file)
@@ -3,29 +3,29 @@ module rt.typeinfo.ti_char;
 
 class TypeInfo_a : TypeInfo
 {
-    string toString() { return "char"; }
+    override string toString() { return "char"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(char *)p;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(char *)p1 == *cast(char *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return *cast(char *)p1 - *cast(char *)p2;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return char.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         char t;
 
@@ -34,7 +34,7 @@ class TypeInfo_a : TypeInfo
         *cast(char *)p2 = t;
     }
 
-    void[] init()
+    override void[] init()
     {   static char c;
 
         return (cast(char *)&c)[0 .. 1];
index 8221dad8a7dd3d391ab81c79bf2c6075b2f8da12..1b3968430efb0c161986312f2179c58517fc2750 100644 (file)
@@ -5,9 +5,9 @@ module rt.typeinfo.ti_creal;
 
 class TypeInfo_c : TypeInfo
 {
-    string toString() { return "creal"; }
+    override string toString() { return "creal"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return (cast(uint *)p)[0] + (cast(uint *)p)[1] +
                (cast(uint *)p)[2] + (cast(uint *)p)[3] +
@@ -35,22 +35,22 @@ class TypeInfo_c : TypeInfo
         return result;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return _equals(*cast(creal *)p1, *cast(creal *)p2);
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return _compare(*cast(creal *)p1, *cast(creal *)p2);
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return creal.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         creal t;
 
@@ -59,7 +59,7 @@ class TypeInfo_c : TypeInfo
         *cast(creal *)p2 = t;
     }
 
-    void[] init()
+    override void[] init()
     {   static creal r;
 
         return (cast(creal *)&r)[0 .. 1];
index fda33bf55c31160313edf40b530a34f31207e3f1..b028a2e35147b21e4fb327f3d7756c86a862ae55 100644 (file)
@@ -5,29 +5,29 @@ module rt.typeinfo.ti_dchar;
 
 class TypeInfo_w : TypeInfo
 {
-    string toString() { return "dchar"; }
+    override string toString() { return "dchar"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(dchar *)p;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(dchar *)p1 == *cast(dchar *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return *cast(dchar *)p1 - *cast(dchar *)p2;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return dchar.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         dchar t;
 
@@ -36,7 +36,7 @@ class TypeInfo_w : TypeInfo
         *cast(dchar *)p2 = t;
     }
 
-    void[] init()
+    override void[] init()
     {   static dchar c;
 
         return (cast(dchar *)&c)[0 .. 1];
index c4d41df5ea3937e6a3b791987dd86a43de55d18a..e1c8972b6b62e45fe2823de69417d2e481ec0090 100644 (file)
@@ -7,23 +7,23 @@ alias void delegate(int) dg;
 
 class TypeInfo_D : TypeInfo
 {
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {   long l = *cast(long *)p;
 
         return cast(uint)(l + (l >> 32));
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(dg *)p1 == *cast(dg *)p2;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return dg.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         dg t;
 
@@ -32,7 +32,7 @@ class TypeInfo_D : TypeInfo
         *cast(dg *)p2 = t;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
index db79d37c52bb391d07f761da941cc8b3f7466c52..d62f4f7fc85de71dadb241f8140a9473ea151227 100644 (file)
@@ -5,9 +5,9 @@ module rt.typeinfo.ti_double;
 
 class TypeInfo_d : TypeInfo
 {
-    string toString() { return "double"; }
+    override string toString() { return "double"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return (cast(uint *)p)[0] + (cast(uint *)p)[1];
     }
@@ -32,22 +32,22 @@ class TypeInfo_d : TypeInfo
         return (d1 == d2) ? 0 : ((d1 < d2) ? -1 : 1);
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return _equals(*cast(double *)p1, *cast(double *)p2);
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return _compare(*cast(double *)p1, *cast(double *)p2);
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return double.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         double t;
 
@@ -56,7 +56,7 @@ class TypeInfo_d : TypeInfo
         *cast(double *)p2 = t;
     }
 
-    void[] init()
+    override void[] init()
     {   static double r;
 
         return (cast(double *)&r)[0 .. 1];
index 6b0688c7379ef6e79e3afff7623007a7c6235b9f..7d6d719d33d5445b41eaf3c9e459fbd8c22f708a 100644 (file)
@@ -5,9 +5,9 @@ module rt.typeinfo.ti_float;
 
 class TypeInfo_f : TypeInfo
 {
-    string toString() { return "float"; }
+    override string toString() { return "float"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(uint *)p;
     }
@@ -32,22 +32,22 @@ class TypeInfo_f : TypeInfo
         return (d1 == d2) ? 0 : ((d1 < d2) ? -1 : 1);
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return _equals(*cast(float *)p1, *cast(float *)p2);
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return _compare(*cast(float *)p1, *cast(float *)p2);
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return float.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         float t;
 
@@ -56,7 +56,7 @@ class TypeInfo_f : TypeInfo
         *cast(float *)p2 = t;
     }
 
-    void[] init()
+    override void[] init()
     {   static float r;
 
         return (cast(float *)&r)[0 .. 1];
index fbb1a02ecf2f0170fd889caa462e36d1b59f9c51..45ad7d76e95a287f9f8df38fa2e6acd5a2f46eb9 100644 (file)
@@ -7,5 +7,5 @@ private import typeinfo.ti_double;
 
 class TypeInfo_p : TypeInfo_d
 {
-    string toString() { return "idouble"; }
+    override string toString() { return "idouble"; }
 }
index 6b63dc60b35316846c31542e6d93ca1c1acd3681..d19646e1a915fd53d7e908119b0ed597f5a378d1 100644 (file)
@@ -7,5 +7,5 @@ private import typeinfo.ti_float;
 
 class TypeInfo_o : TypeInfo_f
 {
-    string toString() { return "ifloat"; }
+    override string toString() { return "ifloat"; }
 }
index b2d0cf84ebbd3b993aaa0f6422caf2a23a0aa156..31fb3520b22ef045c61838e8135a0decf1c9e1f8 100644 (file)
@@ -5,19 +5,19 @@ module rt.typeinfo.ti_int;
 
 class TypeInfo_i : TypeInfo
 {
-    string toString() { return "int"; }
+    override string toString() { return "int"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(uint *)p;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(uint *)p1 == *cast(uint *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         if (*cast(int*) p1 < *cast(int*) p2)
             return -1;
@@ -26,12 +26,12 @@ class TypeInfo_i : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return int.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         int t;
 
index edf6815ee3dbae8cb150ac160dcb045e63f41d2e..242d3c12883913cf0d6c06986bf237e79a12769b 100644 (file)
@@ -7,5 +7,5 @@ private import typeinfo.ti_real;
 
 class TypeInfo_j : TypeInfo_e
 {
-    string toString() { return "ireal"; }
+    override string toString() { return "ireal"; }
 }
index ed64daeec0e03285f2af91a91953b1f1823fbe5b..e4912b2632f056726169849fc9b419c7cfa63e0d 100644 (file)
@@ -5,19 +5,19 @@ module rt.typeinfo.ti_long;
 
 class TypeInfo_l : TypeInfo
 {
-    string toString() { return "long"; }
+    override string toString() { return "long"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(uint *)p + (cast(uint *)p)[1];
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(long *)p1 == *cast(long *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         if (*cast(long *)p1 < *cast(long *)p2)
             return -1;
@@ -26,12 +26,12 @@ class TypeInfo_l : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return long.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         long t;
 
index c285a64b3887303da5804db3884a9401e66cda9a..31568efe170937224f81c7355480d42c7583cef8 100644 (file)
@@ -5,17 +5,17 @@ module rt.typeinfo.ti_ptr;
 
 class TypeInfo_P : TypeInfo
 {
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return cast(uint)*cast(void* *)p;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(void* *)p1 == *cast(void* *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         auto c = *cast(void* *)p1 - *cast(void* *)p2;
         if (c < 0)
@@ -25,12 +25,12 @@ class TypeInfo_P : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return (void*).sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         void* t;
 
@@ -39,7 +39,7 @@ class TypeInfo_P : TypeInfo
         *cast(void* *)p2 = t;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
index b678d2c78a5c58f7e892a3e8ec7ea84c24ad8b54..a117a5088a1805150be1ef4a7564aecc77ffb14a 100644 (file)
@@ -5,9 +5,9 @@ module rt.typeinfo.ti_real;
 
 class TypeInfo_e : TypeInfo
 {
-    string toString() { return "real"; }
+    override string toString() { return "real"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return (cast(uint *)p)[0] + (cast(uint *)p)[1] + (cast(ushort *)p)[4];
     }
@@ -32,22 +32,22 @@ class TypeInfo_e : TypeInfo
         return (d1 == d2) ? 0 : ((d1 < d2) ? -1 : 1);
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return _equals(*cast(real *)p1, *cast(real *)p2);
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return _compare(*cast(real *)p1, *cast(real *)p2);
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return real.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         real t;
 
@@ -56,7 +56,7 @@ class TypeInfo_e : TypeInfo
         *cast(real *)p2 = t;
     }
 
-    void[] init()
+    override void[] init()
     {   static real r;
 
         return (cast(real *)&r)[0 .. 1];
index fa6a40909065f73725b50c3364c2a7fbb06128fd..7c14ede3d3a7a8095728bcdeeb76f82d69cf230b 100644 (file)
@@ -5,29 +5,29 @@ module rt.typeinfo.ti_short;
 
 class TypeInfo_s : TypeInfo
 {
-    string toString() { return "short"; }
+    override string toString() { return "short"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(short *)p;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(short *)p1 == *cast(short *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return *cast(short *)p1 - *cast(short *)p2;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return short.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         short t;
 
index a555e9e86ad30c87cda74905f6f6fe283e442b3e..7131b44b03ccb6781561841bda6fdb263dd8855f 100644 (file)
@@ -5,29 +5,29 @@ module rt.typeinfo.ti_ubyte;
 
 class TypeInfo_h : TypeInfo
 {
-    string toString() { return "ubyte"; }
+    override string toString() { return "ubyte"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(ubyte *)p;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(ubyte *)p1 == *cast(ubyte *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return *cast(ubyte *)p1 - *cast(ubyte *)p2;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return ubyte.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         ubyte t;
 
@@ -39,5 +39,5 @@ class TypeInfo_h : TypeInfo
 
 class TypeInfo_b : TypeInfo_h
 {
-    string toString() { return "bool"; }
+    override string toString() { return "bool"; }
 }
index e3cf4c6dd4dcb77adb17a45b2f2e65e4f53a0330..a4594d31223c2d89f7f3c7c84765f4c5f72bbabe 100644 (file)
@@ -5,19 +5,19 @@ module rt.typeinfo.ti_uint;
 
 class TypeInfo_k : TypeInfo
 {
-    string toString() { return "uint"; }
+    override string toString() { return "uint"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(uint *)p;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(uint *)p1 == *cast(uint *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         if (*cast(uint*) p1 < *cast(uint*) p2)
             return -1;
@@ -26,12 +26,12 @@ class TypeInfo_k : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return uint.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         int t;
 
index e4ec94daa6ed1dcf4d2879a1cd48981cf5c76627..d6f54d45fe8aa8ca483805797fff11ec616f9e46 100644 (file)
@@ -5,19 +5,19 @@ module rt.typeinfo.ti_ulong;
 
 class TypeInfo_m : TypeInfo
 {
-    string toString() { return "ulong"; }
+    override string toString() { return "ulong"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(uint *)p + (cast(uint *)p)[1];
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(ulong *)p1 == *cast(ulong *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         if (*cast(ulong *)p1 < *cast(ulong *)p2)
             return -1;
@@ -26,12 +26,12 @@ class TypeInfo_m : TypeInfo
         return 0;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return ulong.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         ulong t;
 
index e5702a27f51cbf70a2d5155ad767125062633d1f..353c56c5fb5050f93f009720d204244a3b603487 100644 (file)
@@ -5,29 +5,29 @@ module rt.typeinfo.ti_ushort;
 
 class TypeInfo_t : TypeInfo
 {
-    string toString() { return "ushort"; }
+    override string toString() { return "ushort"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(ushort *)p;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(ushort *)p1 == *cast(ushort *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return *cast(ushort *)p1 - *cast(ushort *)p2;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return ushort.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         ushort t;
 
index 495aa1e691dfc959902e7e4c5849cd4fa9eabb86..d0aa2dafae52b192880620d6f7e3f0c7587871e0 100644 (file)
@@ -5,29 +5,29 @@ module rt.typeinfo.ti_void;
 
 class TypeInfo_v : TypeInfo
 {
-    string toString() { return "void"; }
+    override string toString() { return "void"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         assert(0);
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(byte *)p1 == *cast(byte *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return *cast(byte *)p1 - *cast(byte *)p2;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return void.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         byte t;
 
@@ -36,7 +36,7 @@ class TypeInfo_v : TypeInfo
         *cast(byte *)p2 = t;
     }
 
-    uint flags()
+    override uint flags()
     {
         return 1;
     }
index 29c7963d5fc322aade9ce206744f3e35de8f3da3..875f8ca348ec6710636e8f845ce5775890cb4563 100644 (file)
@@ -4,29 +4,29 @@ module rt.typeinfo.ti_wchar;
 
 class TypeInfo_u : TypeInfo
 {
-    string toString() { return "wchar"; }
+    override string toString() { return "wchar"; }
 
-    hash_t getHash(in void* p)
+    override hash_t getHash(in void* p)
     {
         return *cast(wchar *)p;
     }
 
-    equals_t equals(in void* p1, in void* p2)
+    override equals_t equals(in void* p1, in void* p2)
     {
         return *cast(wchar *)p1 == *cast(wchar *)p2;
     }
 
-    int compare(in void* p1, in void* p2)
+    override int compare(in void* p1, in void* p2)
     {
         return *cast(wchar *)p1 - *cast(wchar *)p2;
     }
 
-    size_t tsize()
+    override size_t tsize()
     {
         return wchar.sizeof;
     }
 
-    void swap(void *p1, void *p2)
+    override void swap(void *p1, void *p2)
     {
         wchar t;
 
@@ -35,7 +35,7 @@ class TypeInfo_u : TypeInfo
         *cast(wchar *)p2 = t;
     }
 
-    void[] init()
+    override void[] init()
     {   static wchar c;
 
         return (cast(wchar *)&c)[0 .. 1];
index b4d9cbab15647eb57b19cb366034b2b44652b13b..cbc5a3e05f1e07a9a8cabb164382d1a12d538e4f 100644 (file)
@@ -47,7 +47,7 @@ version(D_InlineAsm_X86)
     /// Returns vendor string
     char[] vendor()             {return vendorStr;}
     /// Returns processor string
-    char[] processor()          {return processorStr;}
+    string processor()          {return processorStr;}
 
     /// Is MMX supported?
     bool mmx()                  {return (flags&MMX_BIT)!=0;}
@@ -186,8 +186,8 @@ private:
     uint flags, misc, exflags, apic, signature;
     uint _stepping, _model, _family;
 
-    char[12] vendorStr = "";
-    char[] processorStr = "";
+    char[12] vendorStr = 0;
+    string processorStr = "";
 
     uint maxThreads=1;
     uint maxCores=1;
@@ -250,7 +250,7 @@ private:
             return;
 
         // seems many intel processors prepend whitespace
-        processorStr = strip(toString(dst)).dup;
+        processorStr = cast(string)strip(toString(dst)).dup;
     }
 
     private void getFeatureFlags()
@@ -421,9 +421,14 @@ private:
             return stripr(stripl(s));
         }
 
-        string toString(char *s)
+        char[] toString(char* s)
         {
-            return s ? s[0 .. strlen(s)] : cast(char[])null;
+            return s ? s[0 .. strlen(s)] : null;
+        }
+
+        string toString(invariant(char)* s)
+        {
+            return s ? s[0 .. strlen(s)] : null;
         }
     }
 }
index 84ace7c7d0c701d607465b7c5400e509dc381032..50d4a51972eed92dda777cd47d1758b18630cb7c 100644 (file)
@@ -1,4 +1,4 @@
-// utf.d
+// Written in the D programming language
 
 /*
  *  Copyright (C) 2003-2004 by Digital Mars, www.digitalmars.com
  *     distribution.
  */
 
-// Description of UTF-8 at:
-// http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
-// http://anubis.dkuug.dk/JTC1/SC2/WG2/docs/n1335
-
+/********************************************
+ * Encode and decode UTF-8, UTF-16 and UTF-32 strings.
+ *
+ * For Win32 systems, the C wchar_t type is UTF-16 and corresponds to the D
+ * wchar type.
+ * For linux systems, the C wchar_t type is UTF-32 and corresponds to
+ * the D utf.dchar type.
+ *
+ * UTF character support is restricted to (\u0000 &lt;= character &lt;= \U0010FFFF).
+ *
+ * See_Also:
+ *     $(LINK2 http://en.wikipedia.org/wiki/Unicode, Wikipedia)<br>
+ *     $(LINK http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8)<br>
+ *     $(LINK http://anubis.dkuug.dk/JTC1/SC2/WG2/docs/n1335)
+ * Macros:
+ *     WIKI = Phobos/StdUtf
+ */
 
 module rt.util.utf;
 
 
-extern (C) void onUnicodeError( char[] msg, size_t idx );
+extern (C) void onUnicodeError( string msg, size_t idx );
 
+/*******************************
+ * Test if c is a valid UTF-32 character.
+ *
+ * \uFFFE and \uFFFF are considered valid by this function,
+ * as they are permitted for internal use by an application,
+ * but they are not allowed for interchange by the Unicode standard.
+ *
+ * Returns: true if it is, false if not.
+ */
 
 bool isValidDchar(dchar c)
 {
@@ -53,14 +75,10 @@ unittest
 }
 
 
-/* This array gives the length of a UTF-8 sequence indexed by the value
- * of the leading byte. An FF represents an illegal starting value of
- * a UTF-8 sequence.
- * FF is used instead of 0 to avoid having loops hang.
- */
 
-ubyte[256] UTF8stride =
+auto UTF8stride =
 [
+    cast(ubyte)
     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
     1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
@@ -79,77 +97,89 @@ ubyte[256] UTF8stride =
     4,4,4,4,4,4,4,4,5,5,5,5,6,6,0xFF,0xFF,
 ];
 
-uint stride(char[] s, size_t i)
+/**
+ * stride() returns the length of a UTF-8 sequence starting at index i
+ * in string s.
+ * Returns:
+ *     The number of bytes in the UTF-8 sequence or
+ *     0xFF meaning s[i] is not the start of of UTF-8 sequence.
+ */
+uint stride(in char[] s, size_t i)
 {
     return UTF8stride[s[i]];
 }
 
-uint stride(wchar[] s, size_t i)
+/**
+ * stride() returns the length of a UTF-16 sequence starting at index i
+ * in string s.
+ */
+uint stride(in wchar[] s, size_t i)
 {   uint u = s[i];
     return 1 + (u >= 0xD800 && u <= 0xDBFF);
 }
 
-uint stride(dchar[] s, size_t i)
+/**
+ * stride() returns the length of a UTF-32 sequence starting at index i
+ * in string s.
+ * Returns: The return value will always be 1.
+ */
+uint stride(in dchar[] s, size_t i)
 {
     return 1;
 }
 
 /*******************************************
- * Given an index into an array of char's,
- * and assuming that index is at the start of a UTF character,
- * determine the number of UCS characters up to that index.
+ * Given an index i into an array of characters s[],
+ * and assuming that index i is at the start of a UTF character,
+ * determine the number of UCS characters up to that index i.
  */
 
-size_t toUCSindex(char[] s, size_t i)
+size_t toUCSindex(in char[] s, size_t i)
 {
     size_t n;
     size_t j;
-    size_t stride;
 
-    for (j = 0; j < i; j += stride)
+    for (j = 0; j < i; )
     {
-       stride = UTF8stride[s[j]];
-       if (stride == 0xFF)
-           goto Lerr;
+       j += stride(s, j);
        n++;
     }
     if (j > i)
     {
-      Lerr:
-      onUnicodeError("invalid UTF-8 sequence", j);
+        onUnicodeError("invalid UTF-8 sequence", j);
     }
     return n;
 }
 
-size_t toUCSindex(wchar[] s, size_t i)
+/** ditto */
+size_t toUCSindex(in wchar[] s, size_t i)
 {
     size_t n;
     size_t j;
 
     for (j = 0; j < i; )
-    {  uint u = s[j];
-
-       j += 1 + (u >= 0xD800 && u <= 0xDBFF);
+    {
+       j += stride(s, j);
        n++;
     }
     if (j > i)
     {
-      Lerr:
-      onUnicodeError("invalid UTF-16 sequence", j);
+        onUnicodeError("invalid UTF-16 sequence", j);
     }
     return n;
 }
 
-size_t toUCSindex(dchar[] s, size_t i)
+/** ditto */
+size_t toUCSindex(in dchar[] s, size_t i)
 {
     return i;
 }
 
 /******************************************
- * Given a UCS index into an array of characters, return the UTF index.
+ * Given a UCS index n into an array of characters s[], return the UTF index.
  */
 
-size_t toUTFindex(char[] s, size_t n)
+size_t toUTFindex(in char[] s, size_t n)
 {
     size_t i;
 
@@ -163,7 +193,8 @@ size_t toUTFindex(char[] s, size_t n)
     return i;
 }
 
-size_t toUTFindex(wchar[] s, size_t n)
+/** ditto */
+size_t toUTFindex(in wchar[] s, size_t n)
 {
     size_t i;
 
@@ -175,14 +206,20 @@ size_t toUTFindex(wchar[] s, size_t n)
     return i;
 }
 
-size_t toUTFindex(dchar[] s, size_t n)
+/** ditto */
+size_t toUTFindex(in dchar[] s, size_t n)
 {
     return n;
 }
 
 /* =================== Decode ======================= */
 
-dchar decode(char[] s, inout size_t idx)
+/***************
+ * Decodes and returns character starting at s[idx]. idx is advanced past the
+ * decoded character. If the character is not well formed, a UtfException is
+ * thrown and idx remains unchanged.
+ */
+dchar decode(in char[] s, inout size_t idx)
     in
     {
        assert(idx >= 0 && idx < s.length);
@@ -275,7 +312,7 @@ unittest
 
     debug(utf) printf("utf.decode.unittest\n");
 
-    static char[] s1 = "abcd";
+    static s1 = "abcd"c;
     i = 0;
     c = decode(s1, i);
     assert(c == cast(dchar)'a');
@@ -284,20 +321,20 @@ unittest
     assert(c == cast(dchar)'b');
     assert(i == 2);
 
-    static char[] s2 = "\xC2\xA9";
+    static s2 = "\xC2\xA9"c;
     i = 0;
     c = decode(s2, i);
     assert(c == cast(dchar)'\u00A9');
     assert(i == 2);
 
-    static char[] s3 = "\xE2\x89\xA0";
+    static s3 = "\xE2\x89\xA0"c;
     i = 0;
     c = decode(s3, i);
     assert(c == cast(dchar)'\u2260');
     assert(i == 3);
 
-    static char[][] s4 =
-    [  "\xE2\x89"            // too short
+    static s4 =
+    [  "\xE2\x89"c,            // too short
        "\xC0\x8A",
        "\xE0\x80\x8A",
        "\xF0\x80\x80\x8A",
@@ -321,9 +358,9 @@ unittest
     }
 }
 
-/********************************************************/
+/** ditto */
 
-dchar decode(wchar[] s, inout size_t idx)
+dchar decode(in wchar[] s, inout size_t idx)
     in
     {
        assert(idx >= 0 && idx < s.length);
@@ -334,7 +371,7 @@ dchar decode(wchar[] s, inout size_t idx)
     }
     body
     {
-       char[] msg;
+       string msg;
        dchar V;
        size_t i = idx;
        uint u = s[i];
@@ -379,9 +416,9 @@ dchar decode(wchar[] s, inout size_t idx)
        return cast(dchar)u; // dummy return
     }
 
-/********************************************************/
+/** ditto */
 
-dchar decode(dchar[] s, inout size_t idx)
+dchar decode(in dchar[] s, inout size_t idx)
     in
     {
        assert(idx >= 0 && idx < s.length);
@@ -404,6 +441,9 @@ dchar decode(dchar[] s, inout size_t idx)
 
 /* =================== Encode ======================= */
 
+/*******************************
+ * Encodes character c and appends it to array s[].
+ */
 void encode(inout char[] s, dchar c)
     in
     {
@@ -456,7 +496,7 @@ unittest
 {
     debug(utf) printf("utf.encode.unittest\n");
 
-    char[] s = "abcd";
+    char[] s = "abcd".dup;
     encode(s, cast(dchar)'a');
     assert(s.length == 5);
     assert(s == "abcda");
@@ -471,7 +511,7 @@ unittest
     assert(s == "abcda\xC2\xA9\xE2\x89\xA0");
 }
 
-/********************************************************/
+/** ditto */
 
 void encode(inout wchar[] s, dchar c)
     in
@@ -497,6 +537,7 @@ void encode(inout wchar[] s, dchar c)
        s = r;
     }
 
+/** ditto */
 void encode(inout dchar[] s, dchar c)
     in
     {
@@ -507,36 +548,46 @@ void encode(inout dchar[] s, dchar c)
        s ~= c;
     }
 
-/* =================== Validation ======================= */
+/**
+Returns the code length of $(D c) in the encoding using $(D C) as a
+code point. The code is returned in character count, not in bytes.
+ */
 
-void validate(char[] s)
+ubyte codeLength(C)(dchar c)
 {
-    size_t len = s.length;
-    size_t i;
 
-    for (i = 0; i < len; )
+    static if (C.sizeof == 1)
     {
-       decode(s, i);
-    }
+        return
+            c <= 0x7F ? 1
+            : c <= 0x7FF ? 2
+            : c <= 0xFFFF ? 3
+            : c <= 0x10FFFF ? 4
+            : (assert(false), 6);
 }
 
-void validate(wchar[] s)
+    else static if (C.sizeof == 2)
 {
-    size_t len = s.length;
-    size_t i;
-
-    for (i = 0; i < len; )
+       return c <= 0xFFFF ? 1 : 2;
+    }
+    else
     {
-       decode(s, i);
+        static assert(C.sizeof == 4);
+        return 1;
     }
 }
 
-void validate(dchar[] s)
-{
-    size_t len = s.length;
-    size_t i;
+/* =================== Validation ======================= */
 
-    for (i = 0; i < len; )
+/***********************************
+Checks to see if string is well formed or not. $(D S) can be an array
+ of $(D char), $(D wchar), or $(D dchar). Throws a $(D UtfException)
+ if it is not. Use to check all untrusted input for correctness.
+ */
+void validate(S)(in S s)
+{
+    invariant len = s.length;
+    for (size_t i = 0; i < len; )
     {
        decode(s, i);
     }
@@ -580,7 +631,10 @@ char[] toUTF8(char[4] buf, dchar c)
        assert(0);
     }
 
-char[] toUTF8(char[] s)
+/*******************
+ * Encodes string s into UTF-8 and returns the encoded string.
+ */
+string toUTF8(string s)
     in
     {
        validate(s);
@@ -590,7 +644,8 @@ char[] toUTF8(char[] s)
        return s;
     }
 
-char[] toUTF8(wchar[] s)
+/** ditto */
+string toUTF8(in wchar[] s)
 {
     char[] r;
     size_t i;
@@ -613,10 +668,11 @@ char[] toUTF8(wchar[] s)
            break;
        }
     }
-    return r;
+    return cast(string)r;
 }
 
-char[] toUTF8(dchar[] s)
+/** ditto */
+string toUTF8(in dchar[] s)
 {
     char[] r;
     size_t i;
@@ -639,7 +695,7 @@ char[] toUTF8(dchar[] s)
            break;
        }
     }
-    return r;
+    return cast(string)r;
 }
 
 /* =================== Conversion to UTF16 ======================= */
@@ -664,7 +720,12 @@ wchar[] toUTF16(wchar[2] buf, dchar c)
        }
     }
 
-wchar[] toUTF16(char[] s)
+/****************
+ * Encodes string s into UTF-16 and returns the encoded string.
+ * toUTF16z() is suitable for calling the 'W' functions in the Win32 API that take
+ * an LPWSTR or LPCWSTR argument.
+ */
+wstring toUTF16(in char[] s)
 {
     wchar[] r;
     size_t slen = s.length;
@@ -685,10 +746,12 @@ wchar[] toUTF16(char[] s)
            encode(r, c);
        }
     }
-    return r;
+    return cast(wstring)r;
 }
 
-wchar* toUTF16z(char[] s)
+alias const(wchar)* wptr;
+/** ditto */
+wptr toUTF16z(in char[] s)
 {
     wchar[] r;
     size_t slen = s.length;
@@ -713,7 +776,8 @@ wchar* toUTF16z(char[] s)
     return r.ptr;
 }
 
-wchar[] toUTF16(wchar[] s)
+/** ditto */
+wstring toUTF16(wstring s)
     in
     {
        validate(s);
@@ -723,7 +787,8 @@ wchar[] toUTF16(wchar[] s)
        return s;
     }
 
-wchar[] toUTF16(dchar[] s)
+/** ditto */
+wstring toUTF16(in dchar[] s)
 {
     wchar[] r;
     size_t slen = s.length;
@@ -734,12 +799,15 @@ wchar[] toUTF16(dchar[] s)
     {
        encode(r, s[i]);
     }
-    return r;
+    return cast(wstring)r;
 }
 
 /* =================== Conversion to UTF32 ======================= */
 
-dchar[] toUTF32(char[] s)
+/*****
+ * Encodes string s into UTF-32 and returns the encoded string.
+ */
+dstring toUTF32(in char[] s)
 {
     dchar[] r;
     size_t slen = s.length;
@@ -755,10 +823,11 @@ dchar[] toUTF32(char[] s)
            i++;                // c is ascii, no need for decode
        r[j++] = c;
     }
-    return r[0 .. j];
+    return cast(dstring)r[0 .. j];
 }
 
-dchar[] toUTF32(wchar[] s)
+/** ditto */
+dstring toUTF32(in wchar[] s)
 {
     dchar[] r;
     size_t slen = s.length;
@@ -774,10 +843,11 @@ dchar[] toUTF32(wchar[] s)
            i++;                // c is ascii, no need for decode
        r[j++] = c;
     }
-    return r[0 .. j];
+    return cast(dstring)r[0 .. j];
 }
 
-dchar[] toUTF32(dchar[] s)
+/** ditto */
+dstring toUTF32(dstring s)
     in
     {
        validate(s);
@@ -793,14 +863,10 @@ unittest
 {
     debug(utf) printf("utf.toUTF.unittest\n");
 
-    char[] c;
-    wchar[] w;
-    dchar[] d;
-
-    c = "hello";
-    w = toUTF16(c);
+    auto c = "hello"c;
+    auto w = toUTF16(c);
     assert(w == "hello");
-    d = toUTF32(c);
+    auto d = toUTF32(c);
     assert(d == "hello");
 
     c = toUTF8(w);
@@ -834,7 +900,7 @@ unittest
     c = "he\U0010AAAAllo";
     w = toUTF16(c);
     //foreach (wchar c; w) printf("c = x%x\n", c);
-    //foreach (wchar c; cast(wchar[])"he\U0010AAAAllo") printf("c = x%x\n", c);
+    //foreach (wchar c; cast(wstring)"he\U0010AAAAllo") printf("c = x%x\n", c);
     assert(w == "he\U0010AAAAllo");
     d = toUTF32(c);
     assert(d == "he\U0010AAAAllo");
index 24a5bdcaa53aafc12e33925b7b5d4a21dc10e400..1dd603d78a81686360b9a49fdb89ef30bdc8c73f 100644 (file)
@@ -11,7 +11,7 @@ module exception;
 
 private
 {
-    alias void  function( char[] file, size_t line, char[] msg = null ) assertHandlerType;
+    alias void  function( string file, size_t line, string msg = null ) assertHandlerType;
 
     assertHandlerType   assertHandler   = null;
 }
@@ -22,7 +22,7 @@ private
  */
 class ArrayBoundsException : Exception
 {
-    this( char[] file, size_t line )
+    this( string file, size_t line )
     {
         super( "Array index out of bounds", file, line );
     }
@@ -34,12 +34,12 @@ class ArrayBoundsException : Exception
  */
 class AssertException : Exception
 {
-    this( char[] file, size_t line )
+    this( string file, size_t line )
     {
         super( "Assertion failure", file, line );
     }
 
-    this( char[] msg, char[] file, size_t line )
+    this( string msg, string file, size_t line )
     {
         super( msg, file, line );
     }
@@ -59,7 +59,7 @@ class FinalizeException : Exception
         info = c;
     }
 
-    string toString()
+    override string toString()
     {
         return "An exception was thrown while finalizing an instance of class " ~ info.name;
     }
@@ -71,12 +71,12 @@ class FinalizeException : Exception
  */
 class OutOfMemoryException : Exception
 {
-    this( char[] file, size_t line )
+    this( string file, size_t line )
     {
         super( "Memory allocation failed", file, line );
     }
 
-    string toString()
+    override string toString()
     {
         return msg ? super.toString() : "Memory allocation failed";
     }
@@ -88,7 +88,7 @@ class OutOfMemoryException : Exception
  */
 class SwitchException : Exception
 {
-    this( char[] file, size_t line )
+    this( string file, size_t line )
     {
         super( "No appropriate switch clause found", file, line );
     }
@@ -102,7 +102,7 @@ class UnicodeException : Exception
 {
     size_t idx;
 
-    this( char[] msg, size_t idx )
+    this( string msg, size_t idx )
     {
         super( msg );
         this.idx = idx;
@@ -141,7 +141,7 @@ void setAssertHandler( assertHandlerType h )
  *  file = The name of the file that signaled this error.
  *  line = The line number on which this error occurred.
  */
-extern (C) void onAssertError( char[] file, size_t line )
+extern (C) void onAssertError( string file, size_t line )
 {
     if( assertHandler is null )
         throw new AssertException( file, line );
@@ -159,7 +159,7 @@ extern (C) void onAssertError( char[] file, size_t line )
  *  line = The line number on which this error occurred.
  *  msg  = An error message supplied by the user.
  */
-extern (C) void onAssertErrorMsg( char[] file, size_t line, char[] msg )
+extern (C) void onAssertErrorMsg( string file, size_t line, string msg )
 {
     if( assertHandler is null )
         throw new AssertException( msg, file, line );
@@ -183,7 +183,7 @@ extern (C) void onAssertErrorMsg( char[] file, size_t line, char[] msg )
  * Throws:
  *  ArrayBoundsException.
  */
-extern (C) void onArrayBoundsError( char[] file, size_t line )
+extern (C) void onArrayBoundsError( string file, size_t line )
 {
     throw new ArrayBoundsException( file, line );
 }
@@ -229,7 +229,7 @@ extern (C) void onOutOfMemoryError()
  * Throws:
  *  SwitchException.
  */
-extern (C) void onSwitchError( char[] file, size_t line )
+extern (C) void onSwitchError( string file, size_t line )
 {
     throw new SwitchException( file, line );
 }
@@ -245,7 +245,7 @@ extern (C) void onSwitchError( char[] file, size_t line )
  * Throws:
  *  UnicodeException.
  */
-extern (C) void onUnicodeError( char[] msg, size_t idx )
+extern (C) void onUnicodeError( string msg, size_t idx )
 {
     throw new UnicodeException( msg, idx );
 }
index 9e7c82dd27cb87d4a9caed1cc887358dc07b8c39..2571e8c3b4646e5c4b4120fe659c22191cdff05f 100644 (file)
@@ -112,6 +112,11 @@ core.doc : $(ALL_DOCS)
 bitmanip.o : bitmanip.d\r
        $(DC) -c $(DFLAGS) bitmanip.d -of$@\r
 \r
+### thread\r
+\r
+thread.o : thread.d\r
+       $(DC) -c $(DFLAGS) -d -Hf$*.di thread.d -of$@\r
+\r
 ######################################################\r
 \r
 clean :\r
index 1a912d0c3b378dfede07e0b05625be0d94b8eb86..846f2495d1780f1a9b75e5370260f40857966f50 100644 (file)
@@ -22,7 +22,7 @@ version = StackGrowsDown;
  */
 class ThreadException : Exception
 {
-    this( char[] msg )
+    this( string msg )
     {
         super( msg );
     }
@@ -34,7 +34,7 @@ class ThreadException : Exception
  */
 class FiberException : Exception
 {
-    this( char[] msg )
+    this( string msg )
     {
         super( msg );
     }
index 32de084863dbcf447be38020796475d7788d36a6..1c0eecec6dd8827f31dfdbd5ee7a6f9f129f321f 100644 (file)
@@ -108,6 +108,11 @@ core.doc : $(ALL_DOCS)
 bitmanip.obj : bitmanip.d\r
        $(DC) -c $(DFLAGS) bitmanip.d -of$@\r
 \r
+### thread\r
+\r
+thread.obj : thread.d\r
+       $(DC) -c $(DFLAGS) -d -Hf$*.di thread.d -of$@\r
+\r
 ######################################################\r
 \r
 clean :\r