changeset 341:1bb99290e03a trunk

[svn r362] Started merging the old 'test' dir as well as the newer 'tangotests' dir into 'tests/mini' and 'tests/minicomplex'.
author lindquist
date Sun, 13 Jul 2008 02:51:19 +0200
parents 351c0077d0b3
children d8b165faae9b
files runalltests.d tangotests/a.d tangotests/aa1.d tangotests/arrays2.d tangotests/arrays4.d tangotests/asm1.d tangotests/asm2.d tangotests/asm3.d tangotests/asm4.d tangotests/asm7.d tangotests/b.d tangotests/c.d tangotests/classes1.d tangotests/compile/d.d tangotests/compile/g.d tangotests/constructors.d tangotests/debug1.d tangotests/debug10.d tangotests/debug11.d tangotests/debug2.d tangotests/debug3.d tangotests/debug4.d tangotests/debug5.d tangotests/debug6.d tangotests/debug7.d tangotests/debug8.d tangotests/debug9.d tangotests/e.d tangotests/f.d tangotests/fail/p.d tangotests/fail/q.d tangotests/files1.d tangotests/h.d tangotests/i.d tangotests/j.d tangotests/k.d tangotests/l.d tangotests/lazy1.d tangotests/lazy2.d tangotests/m.d tangotests/marray1.d tangotests/marray2.d tangotests/marray3.d tangotests/mem1.d tangotests/mem2.d tangotests/mem3.d tangotests/mem4.d tangotests/mem5.d tangotests/mem6.d tangotests/n.d tangotests/nested1.d tangotests/nested2.d tangotests/o.d tangotests/r.d tangotests/s.d tangotests/stdout1.d tangotests/stdout2.d tangotests/t.d tangotests/templ1.d tangotests/u.d tangotests/vararg1.d tangotests/vararg2.d tangotests/vararg3.d tangotests/vararg4.d tangotests/volatile1.d test/a.d test/aa1.d test/aa2.d test/aa3.d test/aa4.d test/aa5.d test/aa6.d test/alignment.d test/alloca1.d test/arrayinit.d test/arrays10.d test/arrays11.d test/arrays12.d test/arrays13.d test/arrays14.d test/arrays15.d test/arrays2.d test/arrays3.d test/arrays4.d test/arrays5.d test/arrays6.d test/arrays7.d test/arrays8.d test/arrays9.d test/asm1.d test/assign.d test/b.d test/bitops.d test/bug1.d test/bug10.d test/bug11.d test/bug12.d test/bug13.d test/bug14.d test/bug15.d test/bug16.d test/bug17.d test/bug18.d test/bug19.d test/bug2.d test/bug20.d test/bug21.d test/bug22.d test/bug23.d test/bug24.d test/bug25.d test/bug26.d test/bug27.d test/bug28.d test/bug29.d test/bug3.d test/bug30.d test/bug32.d test/bug33.d test/bug34.d test/bug35.d test/bug36.d test/bug37.d test/bug38.d test/bug39.d test/bug4.d test/bug40.d test/bug41.d test/bug42.d test/bug43.d test/bug44.d test/bug45.d test/bug47.d test/bug48.d test/bug49.d test/bug5.d test/bug50.d test/bug51.d test/bug52.d test/bug53.d test/bug54.d test/bug55.d test/bug56.d test/bug57.d test/bug58.d test/bug59.d test/bug6.d test/bug60.d test/bug61.d test/bug62.d test/bug63.d test/bug64.d test/bug66.d test/bug7.d test/bug70.d test/bug71.d test/bug72.d test/bug73.d test/bug74.d test/bug75.d test/bug76.d test/bug77.d test/bug78.d test/bug79.d test/bug8.d test/bug80.d test/bug9.d test/c.d test/calls1.d test/classes.d test/classes10.d test/classes11.d test/classes2.d test/classes3.d test/classes4.d test/classes5.d test/classes6.d test/classes7.d test/classes8.d test/classes9.d test/classinfo1.d test/classinfo2.d test/classinfo3.d test/classinfo4.d test/comma.d test/complex1.d test/complex2.d test/complex3.d test/cond.d test/cond1.d test/condexp.d test/condexp1.d test/cyclic.d test/d.d test/dgs.d test/dotproduct.d test/e.d test/enum1.d test/enum2.d test/enum3.d test/f.d test/fail1.d test/fail2.d test/floatcmp.d test/foreach1.d test/foreach2.d test/foreach3.d test/foreach4.d test/foreach5.d test/foreach6.d test/foreach7.d test/forwdecl.d test/funcptr.d test/funcs.d test/funcs2.d test/g.d test/globals1.d test/globals2.d test/goto1.d test/imag1.d test/imports2.d test/imports_1of2.d test/imports_2of2.d test/innerclass1.d test/interface1.d test/interface2.d test/interface3.d test/interface4.d test/interface5.d test/interface6.d test/interface7.d test/intrinsics.d test/mainargs1.d test/memory1.d test/moduleinfo1.d test/moduleinfo2.d test/multiarr1.d test/multiarr2.d test/multiarr3.d test/multiarr4.d test/neg.d test/nested1.d test/nested10.d test/nested11.d test/nested12.d test/nested2.d test/nested3.d test/nested4.d test/nested5.d test/nested6.d test/nested7.d test/nested8.d test/nested9.d test/pointers.d test/pt.d test/ptrarith.d test/scope1.d test/scope2.d test/scope3.d test/scope4.d test/scope5.d test/sieve.d test/slices.d test/sqrts.d test/static_ctor.d test/staticarrays.d test/staticvars.d test/stdiotest.d test/stdiotest2.d test/strings1.d test/strings2.d test/structinit.d test/structinit2.d test/structs.d test/structs2.d test/structs3.d test/structs4.d test/structs5.d test/structs6.d test/structs7.d test/switch1.d test/switch2.d test/switch3.d test/sync1.d test/templ1.d test/templ2.d test/terms.d test/throw1.d test/tuple1.d test/typeinfo.d test/typeinfo10.d test/typeinfo11.d test/typeinfo12.d test/typeinfo13.d test/typeinfo2.d test/typeinfo3.d test/typeinfo4.d test/typeinfo5.d test/typeinfo6.d test/typeinfo7.d test/typeinfo8.d test/typeinfo9.d test/union1.d test/union2.d test/union3.d test/union4.d test/union5.d test/union6.d test/union7.d test/unittest1.d test/unrolled.d test/v2d.d test/vararg1.d test/vararg2.d test/vararg3.d test/vararg4.d test/vararg5.d test/virtcall.d test/with1.d tests/mini/a.d tests/mini/a_1.d tests/mini/aa1.d tests/mini/aa1_1.d tests/mini/aa2.d tests/mini/aa2_1.d tests/mini/aa3.d tests/mini/aa4.d tests/mini/aa5.d tests/mini/aa6.d tests/mini/align1.d tests/mini/alignment.d tests/mini/alloca1.d tests/mini/arrayinit.d tests/mini/arrays1.d tests/mini/arrays10.d tests/mini/arrays11.d tests/mini/arrays12.d tests/mini/arrays13.d tests/mini/arrays14.d tests/mini/arrays15.d tests/mini/arrays16.d tests/mini/arrays17.d tests/mini/arrays18.d tests/mini/arrays2.d tests/mini/arrays3.d tests/mini/arrays4.d tests/mini/arrays5.d tests/mini/arrays6.d tests/mini/arrays7.d tests/mini/arrays8.d tests/mini/arrays9.d tests/mini/asm1.d tests/mini/asm1_1.d tests/mini/asm2.d tests/mini/asm3.d tests/mini/asm4.d tests/mini/asm5.d tests/mini/asm6.d tests/mini/asm7.d tests/mini/assign.d tests/mini/b.d tests/mini/bitops.d tests/mini/bug1.d tests/mini/bug10.d tests/mini/bug11.d tests/mini/bug12.d tests/mini/bug13.d tests/mini/bug14.d tests/mini/bug15.d tests/mini/bug16.d tests/mini/bug17.d tests/mini/bug18.d tests/mini/bug19.d tests/mini/bug2.d tests/mini/bug20.d tests/mini/bug21.d tests/mini/bug22.d tests/mini/bug23.d tests/mini/bug24.d tests/mini/bug25.d tests/mini/bug26.d tests/mini/bug27.d tests/mini/bug28.d tests/mini/bug29.d tests/mini/bug3.d tests/mini/bug30.d tests/mini/bug32.d tests/mini/bug33.d tests/mini/bug34.d tests/mini/bug35.d tests/mini/bug36.d tests/mini/bug37.d tests/mini/bug38.d tests/mini/bug39.d tests/mini/bug4.d tests/mini/bug40.d tests/mini/bug41.d tests/mini/bug42.d tests/mini/bug43.d tests/mini/bug44.d tests/mini/bug45.d tests/mini/bug47.d tests/mini/bug48.d tests/mini/bug49.d tests/mini/bug5.d tests/mini/bug50.d tests/mini/bug51.d tests/mini/bug52.d tests/mini/bug53.d tests/mini/bug54.d tests/mini/bug55.d tests/mini/bug56.d tests/mini/bug57.d tests/mini/bug58.d tests/mini/bug59.d tests/mini/bug6.d tests/mini/bug60.d tests/mini/bug61.d tests/mini/bug62.d tests/mini/bug63.d tests/mini/bug64.d tests/mini/bug66.d tests/mini/bug7.d tests/mini/bug70.d tests/mini/bug71.d tests/mini/bug72.d tests/mini/bug73.d tests/mini/bug74.d tests/mini/bug75.d tests/mini/bug76.d tests/mini/bug77.d tests/mini/bug78.d tests/mini/bug79.d tests/mini/bug8.d tests/mini/bug80.d tests/mini/bug9.d tests/mini/c.d tests/mini/calls1.d tests/mini/classes.d tests/mini/classes1.d tests/mini/classes10.d tests/mini/classes11.d tests/mini/classes12.d tests/mini/classes2.d tests/mini/classes3.d tests/mini/classes4.d tests/mini/classes5.d tests/mini/classes6.d tests/mini/classes7.d tests/mini/classes8.d tests/mini/classes9.d tests/mini/classinfo1.d tests/mini/classinfo2.d tests/mini/classinfo3.d tests/mini/classinfo4.d tests/mini/comma.d tests/mini/complex1.d tests/mini/complex2.d tests/mini/complex3.d tests/mini/cond.d tests/mini/cond1.d tests/mini/condexp.d tests/mini/condexp1.d tests/mini/cyclic.d tests/mini/d.d tests/mini/debug1.d tests/mini/debug10.d tests/mini/debug11.d tests/mini/debug12.d tests/mini/debug2.d tests/mini/debug3.d tests/mini/debug4.d tests/mini/debug5.d tests/mini/debug6.d tests/mini/debug7.d tests/mini/debug8.d tests/mini/debug9.d tests/mini/dgs.d tests/mini/dotproduct.d tests/mini/e.d tests/mini/enum1.d tests/mini/enum2.d tests/mini/enum3.d tests/mini/f.d tests/mini/floatcmp.d tests/mini/foreach1.d tests/mini/foreach2.d tests/mini/foreach3.d tests/mini/foreach4.d tests/mini/foreach5.d tests/mini/foreach6.d tests/mini/foreach7.d tests/mini/foreach8.d tests/mini/forwdecl.d tests/mini/funcptr.d tests/mini/funcs.d tests/mini/funcs2.d tests/mini/g.d tests/mini/gc1.d tests/mini/globals1.d tests/mini/globals2.d tests/mini/goto1.d tests/mini/h.d tests/mini/i.d tests/mini/imag1.d tests/mini/imports2.d tests/mini/imports_1of2.d tests/mini/imports_2of2.d tests/mini/innerclass1.d tests/mini/interface1.d tests/mini/interface2.d tests/mini/interface3.d tests/mini/interface4.d tests/mini/interface5.d tests/mini/interface6.d tests/mini/interface7.d tests/mini/intrinsics.d tests/mini/j.d tests/mini/k.d tests/mini/lazy1.d tests/mini/lazy2.d tests/mini/loops1.d tests/mini/m.d tests/mini/mainargs1.d tests/mini/marray1.d tests/mini/marray2.d tests/mini/marray3.d tests/mini/mem2.d tests/mini/mem3.d tests/mini/mem5.d tests/mini/mem6.d tests/mini/memory1.d tests/mini/moduleinfo1.d tests/mini/moduleinfo2.d tests/mini/multiarr1.d tests/mini/multiarr2.d tests/mini/multiarr3.d tests/mini/multiarr4.d tests/mini/n.d tests/mini/neg.d tests/mini/nested1.d tests/mini/nested10.d tests/mini/nested11.d tests/mini/nested12.d tests/mini/nested13.d tests/mini/nested2.d tests/mini/nested3.d tests/mini/nested4.d tests/mini/nested5.d tests/mini/nested6.d tests/mini/nested7.d tests/mini/nested8.d tests/mini/nested9.d tests/mini/o.d tests/mini/pointers.d tests/mini/pt.d tests/mini/ptrarith.d tests/mini/r.d tests/mini/s.d tests/mini/scope1.d tests/mini/scope2.d tests/mini/scope3.d tests/mini/scope4.d tests/mini/scope5.d tests/mini/sieve.d tests/mini/slices.d tests/mini/sqrts.d tests/mini/static_ctor.d tests/mini/staticarrays.d tests/mini/staticvars.d tests/mini/stdiotest.d tests/mini/stdiotest2.d tests/mini/strings1.d tests/mini/strings2.d tests/mini/structinit.d tests/mini/structinit2.d tests/mini/structs.d tests/mini/structs2.d tests/mini/structs3.d tests/mini/structs4.d tests/mini/structs5.d tests/mini/structs6.d tests/mini/structs7.d tests/mini/switch1.d tests/mini/switch2.d tests/mini/switch3.d tests/mini/switch4.d tests/mini/switch5.d tests/mini/switch6.d tests/mini/sync1.d tests/mini/sync1_1.d tests/mini/sync2.d tests/mini/sync3.d tests/mini/t.d tests/mini/templ1.d tests/mini/templ2.d tests/mini/terms.d tests/mini/throw1.d tests/mini/tuple1.d tests/mini/typeinfo.d tests/mini/typeinfo10.d tests/mini/typeinfo11.d tests/mini/typeinfo12.d tests/mini/typeinfo13.d tests/mini/typeinfo2.d tests/mini/typeinfo3.d tests/mini/typeinfo4.d tests/mini/typeinfo5.d tests/mini/typeinfo6.d tests/mini/typeinfo7.d tests/mini/typeinfo8.d tests/mini/typeinfo9.d tests/mini/union1.d tests/mini/union2.d tests/mini/union3.d tests/mini/union4.d tests/mini/union5.d tests/mini/union6.d tests/mini/union7.d tests/mini/unittest1.d tests/mini/unrolled.d tests/mini/v2d.d tests/mini/vararg1.d tests/mini/vararg2.d tests/mini/vararg3.d tests/mini/vararg4.d tests/mini/vararg5.d tests/mini/vararg6.d tests/mini/vararg7.d tests/mini/virtcall.d tests/mini/void1.d tests/mini/with1.d tests/minicomplex/arrays1.d tests/minicomplex/constructors.d tests/minicomplex/files1.d tests/minicomplex/gc2.d tests/minicomplex/ina1.d tests/minicomplex/l.d tests/minicomplex/mem1.d tests/minicomplex/mem4.d tests/minicomplex/stdout1.d tests/minicomplex/stdout2.d tests/minicomplex/templ1.d tests/minicomplex/u.d tests/minicomplex/vararg1.d tests/minicomplex/vararg2.d tests/minicomplex/volatile1.d tests/runminitest.d
diffstat 648 files changed, 7046 insertions(+), 6830 deletions(-) [+]
line wrap: on
line diff
--- a/runalltests.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-module runalltests;
-
-import std.file;
-import std.path;
-import std.process;
-import std.stdio;
-
-int main(string[] args) {
-    string[] bad;
-    string[] badrun;
-
-    chdir("test");
-
-    auto contents = listdir(".", "*.d");
-    foreach(c; contents) {
-        string cmd = "llvmdc -quiet "~c;
-        foreach(v; args[1..$]) {
-            cmd ~= ' ';
-            cmd ~= v;
-        }
-        writefln(cmd);
-        if (system(cmd) != 0) {
-            bad ~= c;
-        }
-        else if (system(getName(c)) != 0) {
-            badrun ~= c;
-        }
-    }
-
-    int ret = 0;
-    if (bad.length > 0 || badrun.length > 0) {
-        writefln(bad.length, '/', contents.length, " of the tests failed to compile:");
-        foreach(b; bad) {
-            writefln("  ",b);
-        }
-        writefln(badrun.length, '/', contents.length - bad.length, " of the compiled tests failed to run:");
-        foreach(b; badrun) {
-            writefln("  ",b);
-        }
-        ret = 1;
-    }
-
-    writefln(contents.length - bad.length - badrun.length, '/', contents.length, " of the tests passed");
-    return ret;
-}
--- a/tangotests/a.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-class Foo
-{
-    this(int j)
-    {
-        i = pi = j;
-    }
-
-    int i;
-
-private:
-
-    int pi;
-}
-
-class Bar : Foo
-{
-    this(int j)
-    {
-        super(j);
-        baz = 42;
-    }
-
-    int baz;
-}
-
-void func()
-{
-    auto bar = new Bar(12);
-}
-
-void main()
-{
-    func();
-}
--- a/tangotests/aa1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module tangotests.aa1;
-
-extern(C) int printf(char*,...);
-
-void main()
-{
-    int[int] map;
-    map[1] = 1;
-    map[10] = 1;
-    map[11] = 11;
-    map[14] = 41;
-    map[21] = 12;
-    map[23] = 32;
-    map[32] = 23;
-    map[201] = 102;
-    foreach(k,v; map)
-    {
-        printf("%d:%d ", k,v);
-    }
-    printf("\n");
-}
--- a/tangotests/arrays2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-module tangotests.arrays2;
-
-void main()
-{
-    intarrays!(byte)();
-    intarrays!(ubyte)();
-    intarrays!(short)();
-    intarrays!(ushort)();
-    intarrays!(int)();
-    intarrays!(uint)();
-    intarrays!(long)();
-    intarrays!(ulong)();
-}
-
-void intarrays(T)()
-{
-    T[] ia = [cast(T)1,2,3,4];
-    T[] ib = [cast(T)1,2,3,4];
-    T[] ic = [cast(T)1,2,3];
-    T[] id = [cast(T)1,2,3,4,5];
-
-    assert(ia == ia);
-    assert(ia == ib);
-    assert(ia != ic);
-    assert(ia != id);
-    assert(ia > ic);
-    assert(ia !< ic);
-    assert(ia < id);
-    assert(ia !> id);
-}
--- a/tangotests/arrays4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-module tangotests.arrays4;
-
-struct Str { int a,b; }
-void main() {
-    Str[] arr = new Str[64];
-
-    auto tmp = Str(1,2);
-    arr[] = tmp;
-    assert(arr[0].a == 1);
-    assert(arr[0].b == 2);
-    assert(arr[13].a == 1);
-    assert(arr[13].b == 2);
-    assert(arr[42].a == 1);
-    assert(arr[42].b == 2);
-    assert(arr[63].a == 1);
-    assert(arr[63].b == 2);
-
-    arr[] = Str(3,4);
-    assert(arr[0].a == 3);
-    assert(arr[0].b == 4);
-    assert(arr[13].a == 3);
-    assert(arr[13].b == 4);
-    assert(arr[42].a == 3);
-    assert(arr[42].b == 4);
-    assert(arr[63].a == 3);
-    assert(arr[63].b == 4);
-}
--- a/tangotests/asm1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module tangotests.asm1;
-
-extern(C) int printf(char*, ...);
-
-int main()
-{
-    int i = 12;
-    int* ip = &i;
-    printf("%d\n", i);
-    asm
-    {
-        mov EBX, ip;
-        mov EAX, [EBX];
-        add EAX, 8;
-        mul EAX, EAX;
-        mov [EBX], EAX;
-    }
-    printf("%d\n", i);
-    assert(i == 400);
-    return 0;
-}
--- a/tangotests/asm2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module tangotests.asm2;
-
-extern(C) int printf(char*, ...);
-
-int main()
-{
-    int i = 40;
-    int j = 2;
-    asm
-    {
-        mov EAX, i;
-        mov EBX, j;
-        add EAX, EBX;
-        mov i, EAX;
-    }
-    printf("42 = %d\n", i);
-    assert(i == 42);
-    return 0;
-}
--- a/tangotests/asm3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module tangotests.asm3;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    char* fmt = "Hello D World\n";
-    printf(fmt);
-    asm
-    {
-        push fmt;
-        call printf;
-        pop EAX;
-    }
-}
--- a/tangotests/asm4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-module tangotests.asm4;
-
-extern(C) int printf(char*,...);
-
-void main()
-{
-    char* fmt = "yay!\n";
-    asm
-    {
-        jmp L2;
-    L1:;
-        jmp L3;
-    L2:;
-        jmp L1;
-    L3:;
-        push fmt;
-        call printf;
-        pop EAX;
-    }
-}
--- a/tangotests/asm7.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-module tangotests.asm7;
-
-// test massive label collisions (runtime uses Loverflow too)
-
-void main()
-{
-    int a = add(1,2);
-    int s = sub(1,2);
-    assert(a == 3);
-    assert(s == -1);
-}
-
-int add(int a, int b)
-{
-    int res;
-    asm
-    {
-        mov EAX, a;
-        add EAX, b;
-        jo Loverflow;
-        mov res, EAX;
-    }
-    return res;
-Loverflow:
-    assert(0, "add overflow");
-}
-
-int sub(int a, int b)
-{
-    int res;
-    asm
-    {
-        mov EAX, a;
-        sub EAX, b;
-        jo Loverflow;
-        mov res, EAX;
-    }
-    return res;
-Loverflow:
-    assert(0, "sub overflow");
-}
--- a/tangotests/b.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-class C
-{
-    int a;
-    union
-    {
-        int i;
-        double d;
-    }
-    int z;
-}
-
-void func()
-{
-    scope c = new C;
-    access1(c);
-    assert(c.i == 42);
-    access2(c);
-    assert(c.d == 2.5);
-}
-
-void access1(C c)
-{
-    c.i = 42;
-}
-
-void access2(C c)
-{
-    c.d = 2.5;
-}
-
-void main()
-{
-    func();
-}
--- a/tangotests/c.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-class Foo
-{
-    int i;
-}
-
-class Bar : Foo
-{
-    int j;
-}
-
-void func()
-{
-    scope c = new Bar;
-    func2(c);
-}
-
-void func2(Bar c)
-{
-    c.i = 123;
-}
-
-void main()
-{
-    func();
-}
\ No newline at end of file
--- a/tangotests/classes1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-module tangotests.classes1;
-
-class Outer
-{
-    int data;
-
-    class Inner
-    {
-        long data;
-
-        this(long d)
-        {
-            data = d*2;
-        }
-    }
-
-    void func()
-    {
-        auto i = new Inner(data);
-        data += (i.data/4);
-    }
-
-    this(int d)
-    {
-        data = d;
-    }
-}
-
-void main()
-{
-    scope c = new Outer(100);
-    c.func();
-    int d = c.data;
-    printf("150 = %d\n", d);
-}
-
-extern(C) int printf(char*, ...);
--- a/tangotests/compile/d.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-char* toStringz (char[] s)
-{
-        if (s.ptr)
-            if (! (s.length && s[$-1] is 0))
-                   s = s ~ '\0';
-        return s.ptr;
-}
-
--- a/tangotests/compile/g.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-extern(C)
-{
-    private extern int integer;
-}
-
-void func()
-{
-    integer++;
-}
\ No newline at end of file
--- a/tangotests/constructors.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-import tango.io.Console;
-
-class C
-{
-    this()
-    {
-        Cout("C()").newline;
-    }
-    this(char[] str)
-    {
-        Cout("C(")(str)(")").newline;
-    }
-}
-
-class D : C
-{
-    this()
-    {
-        super("D");
-        Cout("D()").newline;
-    }
-}
-
-void main()
-{
-    auto c1 = new C();
-    auto c2 = new C("C");
-    auto d = new D();
-}
--- a/tangotests/debug1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module tangotests.debug1;
-
-void main()
-{
-    int* ptr;
-
-    // all these should be inspectable
-    int i = 1;
-    int j = 2;
-    long k = 3;
-    float l = 4.521;
-    ubyte m = 5;
-
-    *ptr = 0;//cast(int)(i+j+k+l+m);
-}
-
-extern(C) int printf(char*, ...);
--- a/tangotests/debug10.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module tangotests.debug10;
-
-struct Vec2
-{
-    float x,y;
-}
-
-void main()
-{
-    Vec2 v2;
-    char[] str = "hello";
-    int i = void;
-    float f = 3.14;
-    func(v2, v2, str, i, f);
-}
-
-void func(Vec2 v2, ref Vec2 rv2, char[] str, out int i, ref float f)
-{
-    int* fail;
-    *fail = 0;
-}
--- a/tangotests/debug11.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-module tangotests.debug11;
-
-class C
-{
-}
-
-class D : C
-{
-    int i = 42;
-}
-
-class E : D
-{
-    float fp = 3.14f;
-}
-
-class F : E
-{
-    F f;
-}
-
-void main()
-{
-    auto c = new C;
-    auto d = new D;
-    auto e = new E;
-    auto f = new F;
-
-    auto ci = c.classinfo;
-
-    int* fail;
-    *fail = 0;
-}
--- a/tangotests/debug2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module tangotests.debug2;
-
-import tango.stdc.stdlib : rand;
-
-void main()
-{
-    size_t iter;
-    while (iter < 25)
-    {
-        if (rand() % 20 == 10)
-            *cast(int*)null = 0;
-        ++iter;
-    }
-    assert(0);
-}
--- a/tangotests/debug3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module tangotests.debug3;
-
-void main()
-{
-    int i = 42;
-    int* ip = &i;
-
-    int* fail;
-    *fail = 0;
-}
--- a/tangotests/debug4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module tangotests.debug4;
-
-void main()
-{
-    char c = 'c';
-    wchar wc = 'w';
-    dchar dc = 'd';
-
-    int* fail;
-    *fail = 32;
-}
--- a/tangotests/debug5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module tangotests.debug5;
-
-void main()
-{
-    int i = 32;
-    real r = 3.1415;
-    real* p = &r;
-    func(i,r,p);
-}
-
-void func(int i, real r, real* p)
-{
-    int* fail;
-    *fail = 666;
-}
--- a/tangotests/debug6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-module tangotests.debug6;
-
-void main()
-{
-    char[] str = "hello world :)";
-
-    int* fail;
-    *fail = 32;
-}
--- a/tangotests/debug7.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-module tangotests.debug7;
-
-int gi;
-
-void main()
-{
-    int* fail;
-    *fail = 0;
-}
--- a/tangotests/debug8.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-module tangotests.debug8;
-
-struct Str
-{
-    size_t len;
-    void* ptr;
-}
-
-struct Foo
-{
-    long l;
-    Bar bar;
-}
-
-struct Bar
-{
-    float x,y,z;
-    Foo* foo;
-}
-
-void main()
-{
-    Str str;
-    Foo foo;
-    foo.l = 42;
-    foo.bar.y = 3.1415;
-    foo.bar.foo = &foo;
-
-    int* fail;
-    *fail = 0;
-}
--- a/tangotests/debug9.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-module tangotests.debug9;
-
-struct Foo
-{
-    int a,b,c;
-
-    void func()
-    {
-        int* fail;
-        *fail = 0;
-    }
-}
-
-void main()
-{
-    Foo foo = Foo(1,10,73);
-    foo.func();
-}
--- a/tangotests/e.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-extern(C) int printf(char*,...);
-
-class MyClass
-{
-    this(int i = 4)
-    {
-        inner = this.new InnerClass;
-    }
-
-    class InnerClass : Object.Monitor
-    {
-        void lock() {}
-        void unlock() {}
-    }
-
-    InnerClass inner;
-}
-
-void func()
-{
-    scope c = new MyClass(42);
-}
-
-void main()
-{
-    func();
-}
\ No newline at end of file
--- a/tangotests/f.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-extern(C) int printf(char*,...);
-
-void main()
-{
-    printf("Hello World!\n");
-}
--- a/tangotests/fail/p.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-extern(C) int printf(char*, ...);
-
-int main(char[][] args)
-{
-    printf("getint\n");
-    int i = getint();
-    printf("assert true\n");
-    assert(i == 1234);
-    printf("assert false\n");
-    assert(i != 1234);
-    printf("return\n");
-    return 0;
-}
-
-int getint()
-{
-    return 1234;
-}
--- a/tangotests/fail/q.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-class E : Exception
-{
-    this(char[] msg)
-    {
-        super(msg);
-    }
-
-    char[] toString()
-    {
-        return super.toString();
-    }
-}
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    auto e = new E("hello world");
-    auto msg = e.toString();
-    printf("message should be: '%.*s'\n", msg.length, msg.ptr);
-    throw e;
-}
--- a/tangotests/files1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module tangotests.files1;
-
-//import tango.io.Stdout;
-import tango.io.File;
-
-void main()
-{
-    auto file = new File("files1.output");
-    char[] str = "hello world from files1 test\n";
-    void[] data = cast(void[])str;
-    file.write(str);
-}
--- a/tangotests/h.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-interface Iin
-{
-    void[] read(size_t n);
-}
-
-interface Iout
-{
-    size_t write(void[] d);
-}
-
-class C : Iin
-{
-    void[] read(size_t n)
-    {
-        return null;
-    }
-
-    size_t write(void[] d)
-    {
-        return 0;
-    }
-}
-
-void main()
-{
-    scope c = new C;
-}
--- a/tangotests/i.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-interface IN
-{
-    void func();
-}
-abstract class AC
-{
-    abstract void func();
-    long ll;
-}
-class C : AC
-{
-    void func()
-    {
-    }
-}
-
-void main()
-{
-    scope c = new C;
-}
--- a/tangotests/j.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-module j;
-
-interface Inter1
-{
-    int func1();
-}
-
-interface Inter2
-{
-    int func2();
-}
-
-class C12 : Inter1, Inter2
-{
-    int func1()
-    {
-        return 1;
-    }
-    int func2()
-    {
-        return 2;
-    }
-}
-
-void func(Object c)
-{
-    auto i1 = cast(Inter1)c;
-    assert(i1.func1() == 1);
-    auto i2 = cast(Inter2)c;
-    assert(i2.func2() == 2);
-    auto j1 = cast(Inter1)i2;
-    assert(j1.func1() == 1);
-    auto j2 = cast(Inter2)i1;
-    assert(j2.func2() == 2);
-}
-
-void main()
-{
-    scope c = new C12;
-    func(c);
-    printf("OK\n");
-}
-
-extern(C) int printf(char*,...);
--- a/tangotests/k.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-interface Inter
-{
-    int func();
-}
-
-extern(C) int printf(char*, ...);
-
-class InterClass : Inter
-{
-    int func()
-    {
-        return printf("InterClass.func()\n");
-    }
-}
-
-alias int delegate() dg_t;
-
-void main()
-{
-    scope c = new InterClass;
-
-    {
-    Inter i = cast(Inter)c;
-        {
-        dg_t dg = &i.func;
-            {
-            int j = dg();
-            }
-        }
-    }
-}
--- a/tangotests/l.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-import tango.io.Console;
-
-void main()
-{
-    Cout("Hi, says LLVMDC + Tango").newline;
-}
--- a/tangotests/lazy1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module tangotests.lazy1;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    lazystr("whee\n");
-}
-
-void lazystr(lazy char[] msg)
-{
-    printf("%.*s", msg.length, msg.ptr);
-}
--- a/tangotests/lazy2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-module tangotests.lazy2;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    lazy1("hello\n");
-}
-
-void lazy1(lazy char[] str)
-{
-    lazy2(str);
-}
-
-void lazy2(lazy char[] msg)
-{
-    printf("%.*s", msg.length, msg.ptr);
-}
--- a/tangotests/m.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-void main()
-{
-    int* e = __errno_location();
-    printf("&errno = %p\n", e);
-    printf("errno = %d\n", *e);
-}
-
-extern(C):
-int* __errno_location();
-int printf(char*,...);
--- a/tangotests/marray1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module tangotest.marray1;
-
-void main()
-{
-    int[][] arr;
-    int[] a = [1,2];
-    int[] b = [6,7,8,9];
-    arr ~= a;
-    arr ~= b;
-    assert(a.length == 2);
-    assert(b.length == 4);
-    assert(arr.length == 2);
-    assert(arr[0][0] == 1);
-    assert(arr[0][1] == 2);
-    assert(arr[1][0] == 6);
-    assert(arr[1][1] == 7);
-    assert(arr[1][2] == 8);
-    assert(arr[1][3] == 9);
-}
--- a/tangotests/marray2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module tangotests.marray2;
-
-void main()
-{
-    int[][] ma = new int[][](2,4);
-    assert(ma.length == 2);
-    assert(ma[0].length == 4);
-    assert(ma[1].length == 4);
-    ma[0][3] = 32;
-    ma[1][2] = 123;
-    ma[0][0] = 55;
-    assert(ma[0][3] == 32);
-    assert(ma[1][2] == 123);
-    assert(ma[0][0] == 55);
-}
--- a/tangotests/marray3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-module tangotests.marray3;
-
-void main()
-{
-    int[][][] ma = new int[][][](2,4,3);
-    assert(ma.length == 2);
-    assert(ma[0].length == 4);
-    assert(ma[0][0].length == 3);
-    assert(ma[0][1].length == 3);
-    assert(ma[0][2].length == 3);
-    assert(ma[0][3].length == 3);
-    assert(ma[1].length == 4);
-    assert(ma[1][0].length == 3);
-    assert(ma[1][1].length == 3);
-    assert(ma[1][2].length == 3);
-    assert(ma[1][3].length == 3);
-    ma[0][3][1] = 32;
-    ma[1][2][2] = 123;
-    ma[0][0][3] = 55;
-    assert(ma[0][3][1] == 32);
-    assert(ma[1][2][2] == 123);
-    assert(ma[0][0][3] == 55);
-}
--- a/tangotests/mem1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-module tangotests.mem1;
-
-import tango.stdc.stdio;
-
-void main()
-{
-    printf("new int;\n");
-    int* i = new int;
-    assert(*i == 0);
-
-    printf("new int[3];\n");
-    int[] ar = new int[3];
-    ar[0] = 1;
-    ar[1] = 56;
-    assert(ar.length == 3);
-    assert(ar[0] == 1);
-    assert(ar[1] == 56);
-    assert(ar[2] == 0);
-
-    printf("array ~= elem;\n");
-    int[] ar2;
-    ar2 ~= 22;
-    assert(ar2.length == 1);
-    assert(ar2[0] == 22);
-
-    printf("array ~= array;\n");
-    ar2 ~= ar;
-    assert(ar2.length == 4);
-    assert(ar2[0] == 22);
-    assert(ar2[1] == 1);
-    printf("%d %d %d %d\n", ar2[0], ar2[1], ar2[2], ar2[3]);
-    assert(ar2[2] == 56);
-    assert(ar2[3] == 0);
-
-    printf("array ~ array;\n");
-    int[] ar5 = ar ~ ar2;
-    assert(ar5.length == 7);
-    assert(ar5[0] == 1);
-    assert(ar5[1] == 56);
-    assert(ar5[2] == 0);
-    assert(ar5[3] == 22);
-    assert(ar5[4] == 1);
-    assert(ar5[5] == 56);
-    assert(ar5[6] == 0);
-
-    printf("array ~ elem;\n");
-    int[] ar4 = ar2 ~ 123;
-    assert(ar4.length == 5);
-    assert(ar4[0] == 22);
-    assert(ar4[1] == 1);
-    assert(ar4[2] == 56);
-    assert(ar4[3] == 0);
-    assert(ar4[4] == 123);
-
-    printf("elem ~ array;\n");
-    int[] ar3 = 123 ~ ar2;
-    assert(ar3.length == 5);
-    assert(ar3[0] == 123);
-    assert(ar3[1] == 22);
-    assert(ar3[2] == 1);
-    assert(ar3[3] == 56);
-    assert(ar3[4] == 0);
-}
--- a/tangotests/mem2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module tangotests.mem2;
-
-void main()
-{
-    int* ip = new int;
-    assert(*ip == 0);
-    *ip = 4;
-    assert(*ip == 4);
-    delete ip;
-    assert(ip is null);
-}
--- a/tangotests/mem3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module tangotests.mem3;
-
-void main()
-{
-    int[] arr;
-    arr ~= [1,2,3];
-    assert(arr[0] == 1);
-    assert(arr[1] == 2);
-    assert(arr[2] == 3);
-    delete arr;
-    assert(arr is null);
-}
--- a/tangotests/mem4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-module tangotests.mem4;
-
-import tango.stdc.stdio;
-
-class C {
-    int* ptr;
-    this() {
-        printf("this()\n");
-        ptr = new int;
-    }
-    ~this() {
-        printf("~this()\n");
-        delete ptr;
-        assert(ptr is null);
-    }
-    final void check()
-    {
-        printf("check()\n");
-        assert(ptr !is null);
-    }
-}
-
-void main()
-{
-    C c = new C();
-    c.check();
-    delete c;
-    assert(c is null);
-}
\ No newline at end of file
--- a/tangotests/mem5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-module tangotests.mem5;
-
-class SC
-{
-    int* ip;
-    this()
-    {
-        ip = new int;
-    }
-    ~this()
-    {
-        delete ip;
-    }
-    void check()
-    {
-        assert(ip !is null);
-    }
-}
-
-void main()
-{
-    scope sc = new SC;
-    sc.check();
-}
--- a/tangotests/mem6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module tangotests.mem6;
-
-extern(C) int printf(char*,...);
-
-int main(){
-        int[] index;
-        char[] value;
-
-        foreach(int i, char c; "_\U00012345-"){
-                printf("str[%d] = %d\n", i , cast(int)c);
-                index ~= i;
-                //value ~= c;
-        }
-        printf("done\n");
-
-        return 0;
-}
--- a/tangotests/n.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-struct Structure
-{
-    static void static_method()
-    {
-    }
-
-    void method()
-    {
-    }
-}
-
-void main()
-{
-    //Structure.static_method();
-
-    Structure s;
-    s.method();
-}
--- a/tangotests/nested1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module tangotests.nested1;
-
-void main()
-{
-    int i = 42;
-    assert(i == 42);
-    void func()
-    {
-        assert(i == 42);
-    }
-    func();
-}
--- a/tangotests/nested2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-module tangotests.nested2;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int var = 2;
-
-    void exec(void delegate() dg)
-    {
-        printf("var = %d\n", var);
-        dg();
-    }
-
-    void foo()
-    {
-        printf("var = %d\n", var);
-        assert(var == 5);
-    }
-
-    void bar()
-    {
-        printf("var = %d\n", var);
-        var += 3;
-        exec(&foo);
-    }
-
-    printf("var = %d\n", var);
-    exec(&bar);
-
-    return 0;
-}
--- a/tangotests/o.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-extern(C) int printf(char*, ...);
-
-void func()
-{
-    try
-    {
-        printf("try\n");
-        return 0;
-    }
-    catch
-    {
-        printf("catch\n");
-    }
-    finally
-    {
-        printf("finally\n");
-    }
-    return 0;
-}
-
-void main()
-{
-    func();
-}
--- a/tangotests/r.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-extern(C) int printf(char*, ...);
-
-class C
-{
-    void dump()
-    {
-        printf("C dumped\n");
-    }
-}
-
-void heap()
-{
-    auto c = new C;
-    c.dump();
-}
-
-void stack()
-{
-    scope c = new C;
-    c.dump();
-}
-
-void main()
-{
-    heap();
-    stack();
-}
--- a/tangotests/s.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-module s;
-
-interface Inter
-{
-    void inter();
-}
-
-interface Inter2
-{
-    void inter2();
-}
-
-interface InterOne : Inter
-{
-    void interOne();
-}
-
-abstract class ClassAbstract : InterOne
-{
-    abstract void inter();
-    abstract void interOne();
-}
-
-class TheClassOne : ClassAbstract
-{
-    void inter()
-    {
-    }
-    void interOne()
-    {
-    }
-}
-
-class TheClassTwo : TheClassOne, Inter2
-{
-    long l;
-    double d;
-
-    void inter2()
-    {
-    }
-}
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    printf("classinfo test\n");
-    {
-        auto c = new TheClassOne;
-        {
-            auto ci = c.classinfo;
-            printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
-            printf("ci.interfaces.length = %lu\n", ci.interfaces.length);
-            printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr);
-            printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr);
-        }
-    }
-    {
-        auto c = new TheClassTwo;
-        {
-            auto ci = c.classinfo;
-            printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
-            printf("ci.interfaces.length = %lu\n", ci.interfaces.length);
-            printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr);
-            printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr);
-            printf("i[2] = %.*s\n", ci.interfaces[2].classinfo.name.length, ci.interfaces[2].classinfo.name.ptr);
-        }
-        auto i = cast(InterOne)c;
-        {
-            auto ci = i.classinfo;
-            printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
-        }
-        auto i2 = cast(Inter2)i;
-        {
-            auto ci = i2.classinfo;
-            printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
-        }
-        auto o = cast(Object)i2;
-        {
-            auto ci = o.classinfo;
-            printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
-        }
-    }
-}
--- a/tangotests/stdout1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-import tango.io.Stdout;
-
-void main()
-{
-    Stdout("Hello World").newline;
-    Stdout.formatln("{} {}", "Hello", "World");
-}
--- a/tangotests/stdout2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-module tangotests.stdout2;
-
-import tango.io.Stdout;
-
-void main()
-{
-    Stdout.formatln("{} {} {}", "a", "b", 1.0);
-}
--- a/tangotests/t.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-interface MyInterface
-{
-    int func();
-}
-
-class MyClass : MyInterface
-{
-    int var;
-    int func()
-    {
-        return var;
-    }
-}
-
-void func1(MyInterface i)
-{
-    int delegate() dg = &i.func;
-    func2(dg);
-}
-
-extern(C) int printf(char*, ...);
-
-void func2(int delegate() dg)
-{
-    int i = dg();
-    printf("%d\n", i);
-}
-
-void main()
-{
-    auto c = new MyClass;
-    c.var = 42;
-    func1(c);
-}
--- a/tangotests/templ1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module tangotests.templ1;
-
-import Util = tango.text.Util;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    foreach (line; Util.lines("a\nb\nc"))
-    {
-        printf("%.*s\n", line.length, line.ptr);
-    }
-}
--- a/tangotests/u.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-import tango.io.Console;
-void main()
-{
-    Cout("getting name std").newline;
-    Cerr("getting name err").newline;
-    auto s = Cin.get();
-    Cout("putting name").newline;
-    Cout (s).newline;
-}
--- a/tangotests/vararg1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module tangotests.vararg1;
-
-import tango.stdc.stdio;
-
-void func(int[] arr...)
-{
-    printf("1,2,4,5,6 == %d,%d,%d,%d,%d\n", arr[0],arr[1],arr[2],arr[3],arr[4]);
-}
-
-void main()
-{
-    func(1,2,4,5,6);
-}
--- a/tangotests/vararg2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-module tangotests.vararg2;
-
-extern(C) int printf(char*, ...);
-
-import tango.core.Vararg;
-
-void main()
-{
-    func(0xf00, 1, " ", 2, " ", 3, "\n", 0.3, "\n");
-}
-
-void func(int foo, ...)
-{
-    foreach(t; _arguments)
-    {
-        if (t == typeid(char[]))
-        {
-            char[] str = va_arg!(char[])(_argptr);
-            printf("%.*s", str.length, str.ptr);
-        }
-        else if (t == typeid(int))
-        {
-            printf("%d", va_arg!(int)(_argptr));
-        }
-        else if (t == typeid(float))
-        {
-            printf("%f", va_arg!(float)(_argptr));
-        }
-        else if (t == typeid(double))
-        {
-            printf("%f", va_arg!(double)(_argptr));
-        }
-        else if (t == typeid(real))
-        {
-            printf("%f", va_arg!(real)(_argptr));
-        }
-        else
-        {
-            assert(0, "not int");
-        }
-    }
-}
--- a/tangotests/vararg3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-// tries to implement a fairly complete variadic print function
-module tangotests.vararg3;
-
-extern(C) int printf(char*, ...);
-
-struct User
-{
-    char[] name;
-    char[] nick;
-    uint age;
-
-    char[] toString()
-    {
-        return nick ~ "(" ~ name ~ ")";
-    }
-}
-
-struct Infidel
-{
-    char[] whocares;
-}
-
-class Obj
-{
-    private char[] ty;
-
-    this(char[] t)
-    {
-        ty = t;
-    }
-
-    char[] toString()
-    {
-        return "Obj(" ~ ty ~ ")";
-    }
-}
-
- struct TLA
- {
-    char[3] acronym;
-
-    char[] toString()
-    {
-        return acronym;
-    }
-}
-
-void main()
-{
-    User user = User("Bob Doe", "bd", 47);
-    char[] str = user.toString();
-    printf("Direct call:\n%.*s\nBy typeinfo:\n", str.length, str.ptr);
-    print(user, '\n');
-
-    print("Without toString:\n");
-    Infidel inf = Infidel("not me");
-    print(inf, '\n');
-
-    print("Character arrays:\n");
-    print("hello world\n");
-
-    print("Signed integers:\n");
-    print(cast(byte)byte.max,' ',cast(short)short.max,' ',cast(int)int.max,' ',cast(long)long.max,'\n');
-
-    print("Unsigned integers:\n");
-    print(cast(ubyte)ubyte.max,' ',cast(ushort)ushort.max,' ',cast(uint)uint.max,' ',cast(ulong)ulong.max,'\n');
-
-    print("Floating point:\n");
-    print(cast(float)1.273f, ' ', cast(double)3.412367, ' ', cast(real)142.96731112, '\n');
-
-    print("Arrays:\n");
-    int[] ia1 = [1,2,3,4,5,6,7,8,9];
-    print(ia1, '\n');
-    float[] fa1 = [0.1f, 0.15f, 0.2f, 0.25f, 0.3f];
-    print(fa1, '\n');
-
-    print("Pointers:\n");
-    print(&user,'\n');
-    print(&inf,'\n');
-    print(&ia1,'\n');
-    print(&fa1,'\n');
-
-    print("Static arrays:\n");
-    int[5] isa1 = [1,2,4,8,16];
-    print(isa1,'\n');
-
-    print("Classes:\n");
-    Obj o = new Obj("foo");
-    print(o, '\n');
-
-    print("Mixed:\n");
-    print(123, ' ', 42.536f, " foobar ", ia1, ' ', user, '\n');
-    print(42, ' ', cast(byte)12, ' ', user, ' ', cast(short)1445, " foo\n");
-
-    print("International:\n");
-    print('æ','ø','å','\n');
-    print('Æ','Ø','Å','\n');
-    print("rød grød med fløde\n");
-    print("Heiße\n");
-
-    print("TLAs:\n");
-    TLA tla1 = TLA("FBI");
-    TLA tla2 = TLA("CIA");
-    TLA tla3 = TLA("TLA");
-    print(tla1);
-    print(tla2);
-    print(tla3, '\n');
-    print(tla1, tla2, tla3, '\n');
-    print(TLA("FBI"), TLA("CIA"), TLA("TLA"), '\n');
-
-    print("Done!\n");
-}
-
-private void* get_va_arg(TypeInfo ti, ref void* vp)
-{
-    void* arg = vp;
-    vp = vp + ( ( ti.tsize + size_t.sizeof - 1 ) & ~( size_t.sizeof - 1 ) );
-    return arg;
-}
-
-void print(TypeInfo ti, void* arg)
-{
-    if (ti == typeid(byte))
-        printf("%d", *cast(byte*)arg);
-    else if (ti == typeid(short))
-        printf("%d", *cast(short*)arg);
-    else if (ti == typeid(int))
-        printf("%d", *cast(int*)arg);
-    else if (ti == typeid(long))
-        printf("%lld", *cast(long*)arg);
-
-    else if (ti == typeid(ubyte))
-        printf("%u", *cast(ubyte*)arg);
-    else if (ti == typeid(ushort))
-        printf("%u", *cast(ushort*)arg);
-    else if (ti == typeid(uint))
-        printf("%u", *cast(uint*)arg);
-    else if (ti == typeid(ulong))
-        printf("%llu", *cast(ulong*)arg);
-
-    else if (ti == typeid(float))
-        printf("%f", *cast(float*)arg);
-    else if (ti == typeid(double))
-        printf("%f", *cast(double*)arg);
-    else if (ti == typeid(real)) // FIXME: 80bit?
-    {
-        version(LLVM_X86_FP80)
-            printf("%llf", *cast(real*)arg);
-        else
-            printf("%f", *cast(real*)arg);
-    }
-
-    else if (ti == typeid(char))
-        printf("%.*s", 1, arg);
-    else if (ti == typeid(wchar))
-        printf("%.*s", 2, arg);
-    else if (ti == typeid(dchar))
-        printf("%.*s", 4, arg);
-
-    else if (ti == typeid(char[]))
-    {
-        char[] str = *cast(char[]*)arg;
-        printf("%.*s", str.length, str.ptr);
-    }
-    else if (ti == typeid(wchar[]))
-    {
-        wchar[] str = *cast(wchar[]*)arg;
-        printf("%.*s", str.length*2, str.ptr);
-    }
-    else if (ti == typeid(dchar[]))
-    {
-        dchar[] str = *cast(dchar[]*)arg;
-        printf("%.*s", str.length*4, str.ptr);
-    }
-
-    else if (auto pti = cast(TypeInfo_Pointer)ti)
-    {
-        printf("%p", *cast(void**)arg);
-    }
-
-    else if (auto sti = cast(TypeInfo_Struct)ti)
-    {
-        if (sti.xtoString !is null)
-        {
-            char[] str = sti.xtoString(arg);
-            printf("%.*s", str.length, str.ptr);
-        }
-        else
-        {
-            char[] str = sti.toString();
-            printf("%.*s", str.length, str.ptr);
-        }
-    }
-
-    else if (auto ati = cast(TypeInfo_Array)ti)
-    {
-        auto tnext = ati.next;
-        size_t len = *cast(size_t*)arg;
-        void* ptr = *(cast(void**)arg + 1);
-        printf("[");
-        for(auto i=0; i<len; ++i)
-        {
-            print(tnext, get_va_arg(tnext, ptr));
-            if (i < len-1)
-                printf(",");
-        }
-        printf("]");
-    }
-
-    else if (auto cti = cast(TypeInfo_Class)ti)
-    {
-        auto o = *cast(Object*)arg;
-        char[] str = o.toString();
-        printf("%.*s", str.length, str.ptr);
-    }
-
-    // static arrays are converted to dynamic arrays when passed to variadic functions
-    else if (auto sati = cast(TypeInfo_StaticArray)ti)
-    {
-        assert(0, "static arrays not supported");
-    }
-
-    else if (auto aati = cast(TypeInfo_AssociativeArray)ti)
-    {
-        assert(0, "associative array not supported");
-    }
-
-    else
-    {
-        char[] str = ti.toString();
-        printf("typeinfo: %.*s\n", str.length, str.ptr);
-        str = ti.classinfo.name;
-        printf("typeinfo.classinfo: %.*s\n", str.length, str.ptr);
-        assert(0, "unsupported type ^");
-    }
-}
-
-void print(...)
-{
-    void* argptr = _argptr;
-    assert(argptr);
-
-    foreach(i,ti; _arguments)
-    {
-        void* arg = get_va_arg(ti, argptr);
-        assert(arg);
-        print(ti, arg);
-    }
-}
--- a/tangotests/vararg4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-module tangotests.vararg4;
-
-extern(C) int printf(char*, ...);
-
-struct S
-{
-    int i;
-}
-
-void func(...)
-{
-    S* sp = cast(S*)_argptr;
-    assert(sp.i == 42);
-}
-
-void main()
-{
-    printf("1st:\n");
-    {
-    S s = S(42);
-    func(s);
-    }
-    printf("ok\n");
-
-    printf("2nd:\n");
-    {
-    func(S(42));
-    }
-    printf("ok\n");
-}
--- a/tangotests/volatile1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module tangotests.volatile1;
-
-import tango.stdc.stdlib;
-
-void main()
-{
-    int var = rand();
-    {
-        int i = var;
-        volatile;
-        int j = i;
-    }
-}
--- a/test/a.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-module a;
-
-extern(C) int printf(char*, ...);
-
-int i = 42;
-
-void main()
-{
-    int j;
-    j = i;
-    int* p;
-    p = &j;
-    int k = *p;
-    assert(k == 42);
-
-    byte b = -1;
-    int i = b;
-    assert(i == -1);
-
-    int* p2 = p;
-
-    printf("Done\n");
-}
--- a/test/aa1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module aa1;
-
-void main()
-{
-    int[int] aai;
-    assert(aai is null);
-    aai[0] = 52;
-    assert(aai !is null);
-    int i = aai[0];
-    assert(i == 52);
-    aai[32] = 123;
-    int j = aai[32];
-    assert(i == 52);
-    assert(j == 123);
-}
--- a/test/aa2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module aa2;
-
-void main()
-{
-    long[float] aa;
-    long* p = 2.0f in aa;
-    assert(!p);
-    aa[4f] = 23;
-    p = 4f in aa;
-    assert(p);
-    assert(*p == 23);
-}
--- a/test/aa3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-module aa3;
-
-extern(C) int printf(char*, ...);
-alias char[] string;
-
-void main()
-{
-    int[string] aa;
-    {aa["hello"] = 1;}
-    {int* p = "" in aa;}
-    aa[" worl"] = 2;
-    aa["d"] = 3;
-    aa["thisisgreat"] = 10;
-    int sum;
-    string cat;
-    {
-    foreach(k,v;aa)
-    {
-        printf("int[%.*s] = %d\n", k.length, k.ptr, v);
-        sum += v;
-        cat ~= k;
-    }
-    }
-    assert(sum == 16);
-    printf("cat = %.*s\n", cat.length, cat.ptr);
-    assert(cat.length == 22);
-}
--- a/test/aa4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-module aa4;
-
-void main()
-{
-    int[int] aa;
-    aa = addkey(aa,42,12);
-    int* p = haskey(aa,42);
-    assert(p && *p == 12);
-}
-
-int[int] addkey(int[int] aa, int key, int val)
-{
-    aa[key] = val;
-    return aa;
-}
-
-int* haskey(int[int] aa, int key)
-{
-    return key in aa;
-}
--- a/test/aa5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-module aa5;
-
-void main()
-{
-    int[int] aa;
-    aa[42] = 1;
-    int i = aa[42];
-    assert(i == 1);
-}
--- a/test/aa6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-module aa6;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int[int] aa;
-    aa = [1:1, 2:4, 3:9, 4:16];
-    printf("---\n");
-    foreach(int k, int v; aa)
-        printf("aa[%d] = %d\n", k, v);
-    aa.rehash;
-    printf("---\n");
-    foreach(int k, int v; aa)
-        printf("aa[%d] = %d\n", k, v);
-    size_t n = aa.length;
-    assert(n == 4);
-    int[] keys = aa.keys;
-    assert(keys[] == [1,2,3,4][]);
-    int[] vals = aa.values;
-    assert(vals[] == [1,4,9,16][]);
-    aa.remove(3);
-    printf("---\n");
-    foreach(int k, int v; aa)
-        printf("aa[%d] = %d\n", k, v);
-    assert(aa.length == 3);
-}
--- a/test/alignment.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module alignment;
-
-align(1) struct S
-{
-    ubyte b;
-    int i;
-    ubyte[2] b2;
-    long l;
-    real r;
-}
-
-void main()
-{
-    byte b;
-    short s;
-    int i;
-    long l;
-    float f;
-    double d;
-    real r;
-}
--- a/test/alloca1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module alloca1;
-
-pragma(LLVM_internal, "alloca")
-void* alloca(uint);
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int n = 16;
-    int* p = cast(int*)alloca(n*int.sizeof);
-    int[] a = p[0..n];
-    a[] = 0;
-    foreach(i,v; a) {
-        printf("a[%2d] = %d\n", i, v);
-    }
-}
--- a/test/arrayinit.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module arrayinit;
-float[4] ftable = [1,2,3,4];
-int[8] itable = [3:42,6:123];
-
-private uint[7] crc32_table = [0x00000000,0x77073096,0xee0e612c,0x990951ba,0x076dc419,0x706af48f,0xe963a535];
-
-void main()
-{
-    assert(crc32_table[3] == 0x990951ba);
-}
--- a/test/arrays10.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module arrays10;
-
-void main()
-{
-    int[] a = new int[10];
-    a[] = 3;
-}
\ No newline at end of file
--- a/test/arrays11.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-module arrays11;
-
-void ints()
-{
-    int[] a = [1,2,3,4,5,6];
-    {assert(a == a);}
-
-    int[] b = [4,5,6,7,8,9];
-    {assert(a != b);}
-    {assert(a[3..$] == b[0..3]);}
-}
-
-void floats()
-{
-    float[] a = [1.0f, 2.0f, 3.0f, 4.0f];
-    {assert(a == a);}
-
-    float[] b = [2.0f, 3.0f, 5.0f];
-    {assert(a != b);}
-    {assert(a[1..3] == b[0..2]);}
-}
-
-struct S
-{
-    int i;
-    int j;
-
-    int opEquals(S s)
-    {
-        return (i == s.i) && (j == s.j);
-    }
-}
-
-void structs()
-{
-    S[] a = [S(0,0), S(1,0), S(2,0), S(3,0)];
-    {assert(a == a);}
-    S[] b = [S(0,1), S(1,0), S(2,0), S(3,1)];
-    {assert(a != b);}
-    {assert(a[1..3] == b[1..3]);}
-
-    S[2] c = [S(2,0), S(3,1)];
-    {assert(c == b[2..$]);}
-}
-
-void main()
-{
-    ints();
-    floats();
-    structs();
-}
--- a/test/arrays12.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module arrays12;
-
-void ints()
-{
-    int[3] a = [1,2,3];
-    int[3] b = [2,3,4];
-    int[3] c = [2,5,0];
-    {assert(a < b);}
-    {assert(b > a);}
-    {assert(a < c);}
-    {assert(c > a);}
-    {assert(b < c);}
-    {assert(c > b);}
-}
-
-void main()
-{
-    ints();
-}
--- a/test/arrays13.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-module arrays13;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    char[] a = "hello";
-
-    assert(a >  "hel");
-    assert(a >= "hel");
-    assert(a <  "helloo");
-    assert(a <= "helloo");
-    assert(a >  "betty");
-    assert(a >= "betty");
-    assert(a == "hello");
-    assert(a <= "hello");
-    assert(a >= "hello");
-}
--- a/test/arrays14.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module arrays14;
-
-void main()
-{
-    auto s = "hello world";
-    auto d = s.dup;
-}
--- a/test/arrays15.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-module arrays15;
-
-extern(C) int printf(char*, ...);
-
-void integer()
-{
-    auto arr = new int[16];
-    arr[1] = 42;
-    arr[6] = 555;
-    print_int(arr);
-    delete arr;
-}
-
-void floating()
-{
-    auto arr = new float[6];
-    arr[1] = 3.14159265;
-    arr[3] = 1.61803399;
-    print_float(arr);
-    delete arr;
-}
-
-void print_int(int[] arr)
-{
-    printf("arr[%lu] = [", arr.length);
-    for (auto i=0; i<arr.length; i++)
-        printf("%d,", arr[i]);
-    printf("\b]\n");
-}
-
-void print_float(float[] arr)
-{
-    printf("arr[%lu] = [", arr.length);
-    for (auto i=0; i<arr.length; i++)
-        printf("%f,", arr[i]);
-    printf("\b]\n");
-}
-
-void main()
-{
-    integer();
-    floating();
-}
--- a/test/arrays2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-char[] get()
-{
-    return "hello";
-}
-
-void param(char[] s)
-{
-}
-
-void refparam(ref char[] s)
-{
-}
-
-void main()
-{
-    char[] dstr = get();
-    param(dstr);
-    refparam(dstr);
-}
--- a/test/arrays3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module arrays3;
-
-void main()
-{
-    int[] arr;
-    {arr = new int[25];}
-    {assert(arr.length == 25);}
-    {arr.length = arr.length + 5;}
-    {assert(arr.length == 30);}
-}
--- a/test/arrays4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module arrays4;
-
-void main()
-{
-    int[] arr;
-    arr ~= 3;
-    assert(arr.length == 1);
-    assert(arr[0] == 3);
-    arr ~= 5;
-    assert(arr.length == 2);
-    assert(arr[0] == 3);
-    assert(arr[1] == 5);
-}
--- a/test/arrays5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module arrays5;
-void main()
-{
-    auto arr = new float[5];
-    {arr[4] = 1f;}
-    {assert(arr[0] !<>= 0f);}
-    {assert(arr[1] !<>= 0f);}
-    {assert(arr[2] !<>= 0f);}
-    {assert(arr[3] !<>= 0f);}
-    {assert(arr[4] == 1f);}
-}
--- a/test/arrays6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-module arrays6;
-
-void main()
-{
-    int[4] a = [1,2,3,4];
-}
--- a/test/arrays7.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-module arrays7;
-
-extern(C) int printf(char*, ...);
-
-pragma(LLVM_internal, "notypeinfo")
-struct S
-{
-    int i;
-    float f;
-    long l;
-
-    void print()
-    {
-        printf("%d %f %lx\n", i, f, l);
-    }
-}
-
-void main()
-{
-    S[] arr;
-    S s;
-    assert(arr.length == 0);
-    arr ~= s;
-    assert(arr.length == 1);
-    arr ~= S(1,2.64,0xFFFF_FFFF_FFFF);
-    assert(arr.length == 2);
-    arr[0].print();
-    arr[1].print();
-    assert(arr[1].i == 1);
-    assert(arr[1].f > 2.63 && arr[1].f < 2.65);
-    assert(arr[1].l == 0xFFFF_FFFF_FFFF);
-}
--- a/test/arrays8.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module arrays8;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    char[] a = "hello ";
-    printf("  \"%s\".length = %u\n", a.ptr, a.length);
-    char[] b = "world";
-    printf("  \"%s\".length = %u\n", b.ptr, b.length);
-    char[] c = a ~ b;
-    printf("After 'a ~ b':\n");
-    printf("  \"%.*s\".length = %u\n", a.length, a.ptr, a.length);
-    printf("  \"%.*s\".length = %u\n", b.length, b.ptr, b.length);
-    printf("  \"%.*s\".length = %u\n", c.length, c.ptr, c.length);
-    assert(c.length == a.length + b.length);
-    assert(c !is a);
-    assert(c !is b);
-}
--- a/test/arrays9.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-module arrays9;
-
-const int[] g = [1,2,3,4];
-
-void main()
-{
-
-}
--- a/test/asm1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-module asm1;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    version(D_InlineAsm_X86)
-    {
-	int x;
-	asm
-	{
-	    mov EAX, 42;
-	    mov x, EAX;
-	}
-	printf("x = %d\n", x);
-    }
-    else version(D_InlineAsm_X86_64)
-    {
-        long x;
-        asm
-        {
-            mov RAX, 42L;
-            mov x, RAX;
-        }
-        printf("x = %ld\n", x);
-    }
-    else
-    {
-        static assert(0, "no inline asm for this platform yet");
-    }
-}
--- a/test/assign.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-module assign;
-
-// this is taken from std.intrinsic from gdc
-
-int mybtc(uint *p, uint bitnum)
-{
-    uint * q = p + (bitnum / (uint.sizeof*8));
-    uint mask = 1 << (bitnum & ((uint.sizeof*8) - 1));
-    int result = *q & mask;
-    *q ^= mask;
-    return result ? -1 : 0;
-}
-
-void main()
-{
-    uint i = 0xFFFF_FFFF;
-    int r = mybtc(&i, 31);
-    assert(r);
-    assert(i == 0x7FFF_FFFF);
-    r = mybtc(&i, 31);
-    assert(!r);
-    assert(i == 0xFFFF_FFFF);
-}
--- a/test/b.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-module b;
-
-extern(C) int printf(char*, ...);
-
-struct S
-{
-    int i;
-    float[4] f;
-}
-
-void main()
-{
-    S s;
-    int i = s.i;
-    int* p = &s.i;
-    *p = 42;
-    printf("%d == %d\n", *p, s.i);
-
-    float* f = &s.f[0];
-    printf("%f == %f\n", *f, s.f[0]);
-    *f = 3.1415;
-    printf("%f == %f\n", *f, s.f[0]);
-    s.f[0] = 123.456;
-    printf("%f == %f\n", *f, s.f[0]);
-}
--- a/test/bitops.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    printf("Bitwise operations test\n");
-    {   ushort a = 0xFFF0;
-        ushort b = 0x0FFF;
-        assert((a&b) == 0x0FF0);
-        assert((a|b) == 0xFFFF);
-        assert((a^b) == 0xF00F);
-    }
-    {   ubyte a = 0xFF;
-        ulong b = 0xFFFF_FFFF_FFFF_FFF0;
-        assert((a&b) == 0xF0);
-    }
-    {   ushort s = 0xFF;
-        assert((s<<1) == s*2);
-        assert((s>>>1) == s/2);
-    }
-    {   int s = -10;
-        assert((s>>1) == -5);
-        assert((s>>>1) != -5);
-    }
-
-    {   ushort a = 0xFFF0;
-        ushort b = 0x0FFF;
-        auto t = a;
-        t &= b;
-        assert(t == 0x0FF0);
-        t = a;
-        t |= b;
-        assert(t == 0xFFFF);
-        t = a;
-        t ^= b;
-        assert(t == 0xF00F);
-    }
-    {   ubyte a = 0xFF;
-        ulong b = 0xFFFF_FFFF_FFFF_FFF0;
-        a &= b;
-        assert(a == 0xF0);
-    }
-    {   ushort s = 0xFF;
-        auto t = s;
-        t <<= 1;
-        assert(t == (s*2));
-        t = s;
-        t >>>= 1;
-        assert(t == s/2);
-    }
-    {   int s = -10;
-        auto t = s;
-        t >>= 1;
-        assert(t == -5);
-        t = s;
-        t >>>= 1;
-        assert(t != -5);
-    }
-    {   struct S
-        {
-            uint i;
-            ulong l;
-        };
-        S s = S(1,4);
-        auto a = s.i | s.l;
-        assert(a == 5);
-        s.i = 0xFFFF_00FF;
-        s.l = 0xFFFF_FFFF_0000_FF00;
-        s.l ^= s.i;
-        assert(s.l == ulong.max);
-        s.i = 0x__FFFF_FF00;
-        s.l = 0xFF00FF_FF00;
-        s.i &= s.l;
-        assert(s.i == 0x00FF_FF00);
-    }
-
-    printf("  SUCCESS\n");
-}
--- a/test/bug1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-module bug1;
-struct Foo { Foo opSub(ref Foo b) { return Foo(); } }
-struct Bar { Foo whee; }
-void test(ref Bar moo) { Foo nngh; auto plonk = nngh - moo.whee; }
-void main() { Bar bar; test(bar); }
--- a/test/bug10.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-module bug10;
-extern(C) int printf(char*, ...);
-
-class C
-{
-    char[] msg;
-
-    this()
-    {
-    }
-    this(char[] msg)
-    {
-        this.msg = msg;
-    }
-}
-
-void main()
-{
-    auto c = new C();
-    c.msg = "world";
-    auto b = new C("hello");
-    printf("%.*s\n", b.msg.length, b.msg.ptr);
-    printf("%.*s\n", c.msg.length, c.msg.ptr);
-}
--- a/test/bug11.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module bug11;
-
-struct S
-{
-    int[4] arr;
-}
-
-S s=S([1,2,3,4]);
-
-void main()
-{
-}
--- a/test/bug12.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-module bug12;
-
-void main()
-{
-    const char[] name="y";
-}
--- a/test/bug13.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-module bug13;
-
-void func1(ubyte[4]* arr)
-{
-    ubyte* b = &(*arr)[0];
-    func2(&(*arr)[1]);
-}
-
-void func2(ubyte* ptr)
-{
-    assert(*ptr == 2);
-}
-
-void main()
-{
-    ubyte[4] arr = [cast(ubyte)1,2,3,4];
-    func1(&arr);
-}
--- a/test/bug14.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module bug14;
-
-void main()
-{
-    int[] arr = new int[12];
-    int i = arr[0];
-}
--- a/test/bug15.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module bug15;
-
-bool bool1(bool b) {
-    if (b) return true;
-    else return false;
-}
-
-bool bool2(bool b) {
-    if (b) {return true;}
-    else {return false;}
-}
-
-void main()
-{
-    assert(bool1(true));
-    assert(!bool2(false));
-}
--- a/test/bug16.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module bug16;
-
-void func(long val)
-{
-    val >>= 32;
-}
-
-void main()
-{
-    func(64L);
-}
--- a/test/bug17.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module bug17;
-
-struct Vec
-{
-    Vec opAdd(ref Vec b) { return Vec(); }
-    Vec opMul(double a) { return Vec(); }
-}
-void main()
-{
-    Vec foo;
-    Vec bar;
-    auto whee=foo+bar*1f;
-}
--- a/test/bug18.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module bug18;
-
-struct S {
-    int[9] i;
-}
-
-void main()
-{
-    int[9] i;
-    auto s = S(i);
-}
--- a/test/bug19.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module bug19;
-
-void main()
-{
-    auto dg = (int i) { return i*2; };
-    assert(dg(2) == 4);
-}
--- a/test/bug2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-module bug2;
-struct Vec { Vec barf() { return Vec(); } }
-class test { this(Vec whee) { } }
-void main() { Vec whee; new test(whee.barf()); }
--- a/test/bug20.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module bug20;
-extern(C) int printf(char*, ...);
-
-void func(void delegate() dg)
-{
-    dg();
-}
-
-void main()
-{
-    int i = 42;
-    void delegate() dg = {
-        i++;
-    };
-    printf("i = %d\n",i);
-    func(dg);
-    printf("i = %d\n",i);
-    assert(i == 43);
-}
--- a/test/bug21.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module bug21;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int i = 42;
-    auto a = {
-        int j = i*2;
-        auto b = {
-            return j;
-        };
-        return b();
-    };
-    int i2 = a();
-    printf("%d\n", i2);
-    assert(i2 == i*2);
-}
--- a/test/bug22.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module bug22;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int i;
-    delegate {
-        i = 42;
-    }();
-    printf("%d\n", i);
-    assert(i == 42);
-}
--- a/test/bug23.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module bug23;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int i;
-    delegate {
-        i++;
-        delegate {
-            i++;
-        }();
-    }();
-    printf("%d\n", i);
-    assert(i == 2);
-}
--- a/test/bug24.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-module bug24;
-extern(C) int printf(char*, ...);
-
-struct S
-{
-    long l;
-    float f;
-}
-
-void main()
-{
-    S s = S(3L,2f);
-    delegate {
-        S t = S(4L, 1f);
-        delegate {
-            s.l += t.l;
-            s.f += t.f;
-        }();
-    }();
-    printf("%lu %f\n", s.l, s.f);
-    assert(s.l == 7 && s.f == 3);
-}
--- a/test/bug25.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module bug25;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int i = 2;
-    delegate {
-        i = i*i;
-        i += i*i;
-    }();
-    printf("%d\n", i);
-    assert(i == 20);
-}
--- a/test/bug26.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-module bug26;
-
-extern int i;
-
-void main()
-{
-    int j = i;
-}
--- a/test/bug27.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module bug27;
-
-int func(int a, int b)
-{
-    if (a == b)
-        return 0;
-    else if (a < b)
-        return -1;
-    else
-        return 1;
-}
-
-void main()
-{
-    int i = func(3,4);
-    assert(i == -1);
-}
--- a/test/bug28.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module bug28;
-
-void main()
-{
-    char[] a = "hello";
-    char[] b = "hello";
-    char[] c = "world";
-    char[] d = "somethingelse";
-    assert(a == a);
-    assert(a == b);
-    assert(a != c);
-    assert(b != c);
-    assert(a != d);
-    assert(b != d);
-    assert(c != d);
-    assert(d == d);
-}
--- a/test/bug29.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-module bug29;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int[] arr16 = new int[4];
-    {
-        void[] arr = arr16;
-        {
-            printf("%lu\n", arr.length);
-            {
-                assert(arr.length == 16);
-            }
-        }
-    }
-}
--- a/test/bug3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-module bug3;
-
-struct S
-{
-    int[] arr;
-    char[5] ch;
-}
-
-class C
-{
-    int[] arr;
-    char[4] crs;
-}
-
-void main()
-{
-    S s;
-    s.arr = new int[5];
-    s.arr[1] = 32;
-    int i;
-    i = s.arr[0];
-    //assert(s.arr[0] == 0);
-    //assert(s.arr[1] == 32);
-}
--- a/test/bug30.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-module bug30;
-
-void main()
-{
-    int[] a = new int[4];
-    {a[0] = 1;
-    a[1] = 2;
-    a[2] = 3;
-    a[3] = 4;}
-    int[] b = new int[4];
-    {b[0] = 1;
-    b[1] = 2;
-    b[2] = 3;
-    b[3] = 4;}
-    int[] c = new int[4];
-    {c[0] = 1;
-    c[1] = 2;
-    c[2] = 4;
-    c[3] = 3;}
-    {assert(a == b);}
-    {assert(a != c);}
-}
--- a/test/bug32.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module bug32;
-extern(C) int printf(char*, ...);
-
-struct S
-{
-    char[] getName() { return name; }
-    char[] name;
-}
-
-void main()
-{
-    S s = S("Kyle");
-    char[] name = s.name;
-    printf("%.*s\n", name.length, name.ptr);
-}
--- a/test/bug33.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-module bug33;
-
-extern(C) int memcmp(void*,void*,size_t);
-
-private int string_cmp(char[] s1, char[] s2)
-{
-    auto len = s1.length;
-    if (s2.length < len)
-        len = s2.length;
-    int result = memcmp(s1.ptr, s2.ptr, len);
-    if (result == 0)
-        result = cast(int)(cast(ptrdiff_t)s1.length - cast(ptrdiff_t)s2.length);
-    return result;
-}
-
-struct S
-{
-    char[] toString()
-    {
-        return "S";
-    }
-}
-
-int func()
-{
-    S a,b;
-    return string_cmp(a.toString(),b.toString());
-}
-
-void main()
-{
-    assert(func() == 0);
-}
--- a/test/bug34.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-module bug34;
-
-class MyTypeInfo_Pointer
-{
-    char[] toString() { return m_next.toString() ~ "*"; }
-
-    int opEquals(Object o)
-    {   TypeInfo_Pointer c;
-
-    return this is o ||
-        ((c = cast(TypeInfo_Pointer)o) !is null &&
-         this.m_next == c.m_next);
-    }
-
-    hash_t getHash(void *p)
-    {
-        return cast(uint)*cast(void* *)p;
-    }
-
-    int equals(void *p1, void *p2)
-    {
-        return cast(int)(*cast(void* *)p1 == *cast(void* *)p2);
-    }
-
-    int compare(void *p1, void *p2)
-    {
-    if (*cast(void* *)p1 < *cast(void* *)p2)
-        return -1;
-    else if (*cast(void* *)p1 > *cast(void* *)p2)
-        return 1;
-    else
-        return 0;
-    }
-
-    size_t tsize()
-    {
-    return (void*).sizeof;
-    }
-
-    void swap(void *p1, void *p2)
-    {   void* tmp;
-    tmp = *cast(void**)p1;
-    *cast(void**)p1 = *cast(void**)p2;
-    *cast(void**)p2 = tmp;
-    }
-
-    TypeInfo next() { return m_next; }
-    uint flags() { return 1; }
-
-    TypeInfo m_next;
-}
-
-void main()
-{
-}
--- a/test/bug35.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module bug35;
-
-private const char[10] digits    = "0123456789";            /// 0..9
-
-void main()
-{
-}
--- a/test/bug36.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-module bug36;
-
-void main()
-{
-    int[] a;
-    void* cp = cast(void*)a;
-
-}
--- a/test/bug37.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module bug37;
-
-void main()
-{
-    char[] a = "hello";
-    assert(a !is null);
-}
--- a/test/bug38.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module bug38;
-
-void func(int* p)
-{
-    p++;
-}
-
-void main()
-{
-    int i;
-    func(&i);
-}
--- a/test/bug39.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module bug39;
-
-struct S
-{
-    long l;
-}
-
-void main()
-{
-    S s;
-    s.l = 23;
-    void* p = &s;
-}
--- a/test/bug4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module bug4;
-
-int func(int i)
-{
-    i += 2;
-    i -= 3;
-    return i;
-}
-
-void main()
-{
-    assert(func(4) == 3);
-}
--- a/test/bug40.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module bug40;
-
-char[] func(void* p)
-{
-    return null;
-}
-
-void main()
-{
-    char[] function(void*) fp = &func;
-    assert(fp(null) is null);
-}
--- a/test/bug41.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module bug41;
-
-void main()
-{
-    char[] a = "hello world";
-    char* ap = a.ptr;
-    size_t i = 5;
-    char[] b = ap[0..i];
-    assert(b == "hello");
-}
--- a/test/bug42.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module bug42;
-
-void main() {
-    int i = 2;
-    switch (i) {
-    case 0:
-    case 1:
-    default:
-    }
-}
--- a/test/bug43.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-module bug43;
-
-struct S
-{
-    ubyte[3] vals;
-}
-
-void func(ubyte[3] v)
-{
-}
-
-void main()
-{
-    S s;
-    func(s.vals);
-}
--- a/test/bug44.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module bug44;
-
-pragma(LLVM_internal, "notypeinfo")
-struct rgb
-{
-    long l;
-}
-
-void foo()
-{
-}
-
-rgb test() {
-  scope(exit) foo();
-  return rgb();
-}
-
-void main()
-{
-    rgb r = test();
-}
--- a/test/bug45.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module bug45;
-
-void foo() {
-    int bar;
-    scope(exit) { bar++; }
-    if (bar) return;
-}
-
-void main() {
-    foo();
-}
--- a/test/bug47.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module bug47;
-
-bool func(bool a, bool b)
-{
-    if (a) b = false;
-    return b;
-}
-
-void main()
-{
-    assert(func(0,0) == 0);
-    assert(func(0,1) == 1);
-    assert(func(1,0) == 0);
-    assert(func(1,1) == 0);
-}
--- a/test/bug48.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module bug48;
-
-size_t func(void *p)
-{
-    return cast(size_t)*cast(void* *)p;
-}
-
-void main()
-{
-}
--- a/test/bug49.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-module bug49;
-
-pragma(LLVM_internal, "notypeinfo")
-struct S
-{
-    int i;
-    long l;
-}
-
-void main()
-{
-    S s;
-    s.i = 0x__FFFF_FF00;
-    s.l = 0xFF00FF_FF00;
-    s.i &= s.l;
-}
--- a/test/bug5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module bug5;
-
-struct hah {
-    static hah f()
-    {
-        hah res;
-        return res;
-    }
-    hah g()
-    {
-        return hah.init;
-    }
-}
-
-void main()
-{
-}
--- a/test/bug50.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-module bug50;
-extern(C) int printf(char*, ...);
-
-pragma(LLVM_internal, "notypeinfo")
-struct S
-{
-    int i;
-    float f;
-    long l;
-
-    void print()
-    {
-        printf("%d %f %lx\n", i, f, l);
-    }
-}
-
-void main()
-{
-    S s;
-    s.print();
-    s = S(1,2,3);
-    s.print();
-
-    S[] arr;
-    {arr ~= s;}
-    {arr[0].print();}
-    {arr ~= S(1,2,3);}
-    {arr[1].print();}
-}
--- a/test/bug51.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module bug51;
-const ubyte[3] arr1 = 1;
-const ubyte[3] arr2 = [1];
-const ubyte[3] arr3 = [1:1];
-void main()
-{
-    assert(arr1 == [cast(ubyte)1,1,1][]);
-    assert(arr2 == [cast(ubyte)1,0,0][]);
-    assert(arr3 == [cast(ubyte)0,1,0][]);
-}
--- a/test/bug52.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-module bug52;
-struct Vec { double x,y,z; }
-struct Pair(T, U) { T first; U second; }
-typedef Pair!(double, Vec) Hit;
-void main() {}
--- a/test/bug53.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-module bug53;
-class Foo {
-    final void bar() {}
-    void test() { bar(); }
-}
-void main() {}
--- a/test/bug54.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module bug54;
-
-extern(C) size_t strlen(char*);
-
-// creating args for main
-void d_main_args(size_t n, char** args, ref char[][] res)
-{
-    assert(res.length == n);
-    foreach(i,v; args[0..n])
-    {
-        res[i] = v[0 .. strlen(v)];
-    }
-}
-
-void main()
-{
-}
--- a/test/bug55.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module bug55;
-extern(C) int printf(char*, ...);
-
-int atoi(char[] s) {
-    int i, fac=1;
-    bool neg = (s.length) && (s[0] == '-');
-    char[] a = neg ? s[1..$] : s;
-    foreach_reverse(c; a) {
-        i += (c-'0') * fac;
-        fac *= 10;
-    }
-    return !neg ? i : -i;
-}
-
-void main()
-{
-    printf("64213 = %d\n", atoi("64213"));
-    printf("-64213 = %d\n", atoi("-64213"));
-    assert(atoi("64213") == 64213);
-    assert(atoi("-64213") == -64213);
-}
--- a/test/bug56.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-module bug56;
-
-void main()
-{
-    int[] a;
-    a = [1,2,3];
-    {int[] b = [4,5,6];}
-}
\ No newline at end of file
--- a/test/bug57.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-import std.stdio;
-class Foo {}
-void func3()
-{
-    Foo[1] test=[new Foo];
-    writefln(test);
-}
-void main() {
-    func3();
-}
--- a/test/bug58.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module bug58;
-import std.stdio;
-void main()
-{
-    int[16] arr = [1,16,2,15,3,14,4,13,5,12,6,11,7,10,8,9];
-    writefln("arr = ",arr);
-    arr.sort;
-    writefln("arr.sort = ",arr);
-    assert(arr == [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]);
-}
--- a/test/bug59.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-module bug59;
-
-void main()
-{
-    int[2] a = 0;
-    //func(a);
-    a[0] = 1;
-    int i = a[0];
-    int* p = &a[0];
-}
-
-void func(int[2] a)
-{
-    int* p = cast(int*)a;
-}
-
-void func2(int[4] a)
-{
-    int* p = 3+cast(int*)a;
-}
--- a/test/bug6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module bug6;
-class wrong { }
-void bark(ref wrong s) { s = new wrong; }
-void foo(wrong tree) {
-    auto old = tree;
-    bark(tree);
-    assert(old !is tree);
-}
-void main()
-{
-    auto w = new wrong;
-    auto old = w;
-    foo(w);
-    assert(w is old);
-}
--- a/test/bug60.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-module bug60;
-extern(C) int printf(char*, ...);
-
-void func(T...)(T t)
-{
-    foreach(v;t) {
-        if (v.length) {
-            foreach(i;v) {
-                printf("%d\n", i);
-            }
-        }
-    }
-}
-void main()
-{
-    auto a = [1,2,3];
-    func(a);
-}
--- a/test/bug61.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-module bug61;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int[3] a = [42,4,141414];
-    printf("empty:\n");
-    foreach(v; a[3..$]) {
-        printf("int = %d\n", v);
-    }
-    printf("one element:\n");
-    foreach(v; a[2..$]) {
-        printf("int = %d\n", v);
-    }
-    printf("all elements:\n");
-    foreach(v; a) {
-        printf("int = %d\n", v);
-    }
-    printf("empty reversed:\n");
-    foreach_reverse(v; a[3..$]) {
-        printf("int = %d\n", v);
-    }
-    printf("all elements reversed:\n");
-    foreach_reverse(v; a) {
-        printf("int = %d\n", v);
-    }
-}
--- a/test/bug62.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module bug62;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int[] arr = [1,2,5,7,9];
-    int i = 0;
-    foreach(v; arr) {
-        i += v;
-    }
-    printf("sum = %d\n", i);
-    assert(i == 24);
-}
\ No newline at end of file
--- a/test/bug63.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module bug63;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    static void notnested()
-    {
-        printf("hello world\n");
-    }
-    notnested();
-}
--- a/test/bug64.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module bug64;
-
-void main()
-{
-    float f;
-    float* p = &f;
-    float* end1 = p+1;
-    float* end2 = 1+p;
-    assert(end1 is end2);
-}
--- a/test/bug66.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-module bug66;
-import std.stdio;
-class Scene { string name() { return "Scene"; } }
-class Group : Scene { this () { } }
-void main() { writefln((new Group).name); }
--- a/test/bug7.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-module bug7;
-
-class love { }
-void bug() {
-    love[] child;
-    child.length=1;
-    assert(child[0] is null);
-    child[0]=null;
-    assert(child[0] is null);
-}
-void main()
-{
-    bug();
-}
--- a/test/bug70.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-module bug70;
-
-void main()
-{
-    for (;false;)
-    {
-        break;
-    }
-}
--- a/test/bug71.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-module bug71;
-
-void main()
-{
-    static TypeInfo skipCI(TypeInfo valti)
-    {
-      while (1)
-      {
-    if (valti.classinfo.name.length == 18 &&
-        valti.classinfo.name[9..18] == "Invariant")
-        valti = (cast(TypeInfo_Invariant)valti).next;
-    else if (valti.classinfo.name.length == 14 &&
-        valti.classinfo.name[9..14] == "Const")
-        valti = (cast(TypeInfo_Const)valti).next;
-    else
-        break;
-      }
-      return valti;
-    }
-}
\ No newline at end of file
--- a/test/bug72.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-module bug72;
-
-void main()
-{
-    char c = void;
-    int i = void;
-    c += i;
-}
--- a/test/bug73.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-int find(char[] s, dchar c)
-{
-    // c is a universal character
-    foreach (int i, dchar c2; s)
-    {
-    if (c == c2)
-        return i;
-    }
-    return -1;
-}
-
-void main()
-{
-    char[] hello = "hello world";
-    int i = find(hello, 'w');
-    assert(i == 6);
-    i = find(hello, 'z');
-    assert(i == -1);
-}
--- a/test/bug74.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module bug74;
-
-char[] sformat(char[] s, ...)
-{
-    TypeInfo[] ti = _arguments;
-    void* args = _argptr;
-    return "";
-}
-
-void main()
-{
-}
--- a/test/bug75.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module bug75;
-
-void func(void delegate() dg)
-{
-}
-
-void main()
-{
-    void nested() {
-    }
-    //func(&nested);
-    void delegate() dg = &nested;
-}
--- a/test/bug76.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-module bug76;
-char[] fmt(...)
-{
-    return "";
-}
-void main()
-{
-    char[] s = fmt();
-}
--- a/test/bug77.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module bug77;
-import tango.stdc.string;
-void main()
-{
-    size_t len;
-    void func2()
-    {
-        char* prefix = "";
-
-        void func()
-        {
-        len = strlen(prefix);
-        assert(len == 0);
-        }
-
-        func();
-    }
-    func2();
-}
--- a/test/bug78.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-module bug78;
-
-void main()
-{
-    typedef int int_t = 42;
-    int_t i;
-    assert(i == int_t.init);
-}
\ No newline at end of file
--- a/test/bug79.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-module bug79;
-import std.c.linux.linux;
-void main()
-{
-    timespec ts; 
-    ts.tv_nsec -= 1;
-    //auto t = ts.tv_nsec - 1;
-    //t -= 1;
-}
--- a/test/bug8.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module bug8;
-
-void main()
-{
-    s = newS();
-}
-
-S* s;
-
-struct S
-{
-    int i;
-}
-
-S* newS()
-{
-    auto tmp = new S;
-    tmp.i = 4;
-    return tmp;
-}
-
--- a/test/bug80.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module bug80;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    byte b = 10;
-    int i = b += 2;
-    printf("byte=%d int=%d\n", b, i);
-    assert(b == 12);
-    assert(i == 12);
-}
--- a/test/bug9.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-module bug9;
-extern(C) int printf(char*, ...);
-
-struct rgb
-{
-  ubyte[3] values;
-  rgb average(rgb other)
-  {
-    rgb res;
-    foreach (id, ref v; res.values) v=(values[id]+other.values[id])/2;
-    return res;
-  }
-  void print()
-  {
-    printf("[%d,%d,%d]\n", values[0], values[1], values[2]);
-  }
-}
-
-void main()
-{
-    rgb a,b;
-    a.values[0] = 10;
-    a.values[1] = 20;
-    a.values[2] = 30;
-    b.values[0] = 30;
-    b.values[1] = 20;
-    b.values[2] = 10;
-    rgb avg = a.average(b);
-    avg.print();
-    assert(avg.values[0] == 20);
-    assert(avg.values[1] == 20);
-    assert(avg.values[2] == 20);
-}
-
--- a/test/c.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module c;
-
-void main()
-{
-    ushort a = 0xFFF0;
-    ushort b = 0x0FFF;
-    auto t = a & b;
-    a &= b;
-    assert(t == a);
-}
--- a/test/calls1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-module calls1;
-import tango.core.Vararg;
-extern(C) int printf(char*, ...);
-void main()
-{
-    {int a = byVal1(3);}
-    {int a = void; byRef1(a);}
-    {char[] c = void; refType(c);}
-    {char[] c = void; refTypeByRef(c);}
-    {S s = void; structByVal(s);}
-    {S s = void; structByRef(s);}
-    {S s = void; structByPtr(&s);}
-    {printf("c-varargs %d %d %d\n", 1,2,3);}
-    {int i=3; float f=24.7; dvararg(i,f);}
-    {char[] s = "hello"; dvarargRefTy(s);}
-    {char[] ss = "hello world!"; dvarargRefTy(ss);}
-}
-
-int byVal1(int a)
-{
-    return a;
-}
-
-void byRef1(ref int a)
-{
-    a = 3;
-}
-
-void refType(char[] s)
-{
-}
-
-void refTypeByRef(ref char[] s)
-{
-}
-
-struct S
-{
-    float f;
-    double d;
-    long l;
-    byte b;
-}
-
-void structByVal(S s)
-{
-}
-
-void structByRef(ref S s)
-{
-}
-
-void structByPtr(S* s)
-{
-}
-
-void dvararg(...)
-{
-    printf("%d %.1f\n", va_arg!(int)(_argptr), va_arg!(float)(_argptr));
-}
-
-void dvarargRefTy(...)
-{
-    char[] s = va_arg!(char[])(_argptr);
-    printf("%.*s\n", s.length, s.ptr);
-}
--- a/test/classes.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-extern(C) int printf(char*, ...);
-
-class C
-{
-    int i;
-    void p()
-    {
-        printf("%d\n", i);
-    }
-}
-
-void main()
-{
-    printf("should print 4\n");
-    C c = new C;
-    c.i = 4;
-    c.p();
-    //delete c;
-}
--- a/test/classes10.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module classes10;
-
-class C
-{
-    int i;
-    override char[] toString()
-    {
-        return "foobar";
-    }
-}
-
-void main()
-{
-    Object o = new C;
-    char[] s = o.toString();
-    assert(s == "foobar");
-}
--- a/test/classes11.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-module classes11;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    static class C
-    {
-        void func()
-        {
-            printf("Hello world\n");
-        }
-    }
-
-    scope c = new C;
-    c.func();
-}
--- a/test/classes2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-extern(C) int printf(char*, ...);
-
-class A
-{
-    int i;
-    void f()
-    {
-        printf("A.f\n");
-    }
-}
-
-class B : A
-{
-    long l;
-    void f()
-    {
-        printf("B.f\n");
-    }
-}
-
-void main()
-{
-    A a = new B;
-    a.f();
-}
--- a/test/classes3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-class C
-{
-    int c;
-    long f(long l)
-    {
-        return l;
-    }
-}
-
-class D : C
-{
-    int d;
-    override long f(long l)
-    {
-        return l*2;
-    }
-}
-
-void main()
-{
-    scope c = new C;
-    assert(c.f(25L) == 25);
-    scope d = new D;
-    assert(d.f(25L) == 50);
-    C cd = d;
-    assert(cd.f(25L) == 50);
-    assert(func(d,25L) == 50);
-}
-
-long func(C c, long l)
-{
-    return c.f(l);
-}
--- a/test/classes4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-extern(C) int printf(char*, ...);
-
-class A
-{
-    int i = 42;
-    double df = 3.1415;
-    this()
-    {
-    }
-    char[] toString()
-    {
-        return "A:Object";
-    }
-}
-
-class B : A
-{
-    ubyte b;
-    char[] toString()
-    {
-        return "B:A";
-    }
-}
-
-void main()
-{
-    scope a = new A;
-    char[] as = a.toString;
-    {printf("a.toString = '%.*s'\n", as.length, as.ptr);}
-
-    Object o = a;
-    char[] os = o.toString;
-    {printf("o.toString = '%.*s'\n", os.length, os.ptr);}
-
-    scope b = new B;
-    char[] bs = b.toString;
-    {printf("b.toString = '%.*s'\n", bs.length, bs.ptr);}
-}
--- a/test/classes5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-module classes5;
-extern(C) int printf(char*, ...);
-
-struct S
-{
-    long l;
-}
-
-class C
-{
-    C c;
-    S s;
-}
-
-void main()
-{
-    C c = new C;
-    long* lp = void;
-    {c.s.l = 64;}
-    {assert(c.s.l == 64);}
-    {lp = &c.s.l;}
-    {assert(*lp == 64);}
-    printf("classes5 success\n");
-}
--- a/test/classes6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-module classes6;
-extern(C) int printf(char*, ...);
-
-class C
-{
-    void f()
-    {
-        printf("world\n");
-    }
-}
-
-class D : C
-{
-    void f()
-    {
-        printf("moon\n");
-    }
-}
-
-
-extern(C)
-{
-    void srand(uint seed);
-    int rand();
-}
-
-import llvm.intrinsic;
-
-void main()
-{
-    C c;
-    srand(readcyclecounter());
-    if (rand() % 2)
-        c = new C;
-    else
-        c = new D;
-    c.f();
-}
--- a/test/classes7.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module classes7;
-
-class C
-{
-    int i=0;
-    void f()
-    {
-        i=42;
-    }
-    void g()
-    {
-        f();
-    }
-}
-
-void main()
-{
-    scope c = new C;
-    c.g();
-    assert(c.i == 42);
-}
--- a/test/classes8.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-class A {
-    int i;
-    int l;
-    this(bool b,bool b2=false) {
-        if (b) this = new B;
-        i = 4;
-        if (b2) this = new C;
-        l = 64;
-    }
-}
-class B : A{
-    this() {
-        super(false);
-    }
-}
-class C : A{
-    this() {
-        super(false);
-    }
-}
-void main() {
-}
--- a/test/classes9.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-module classes9;
-
-class C
-{
-}
-
-class D : C
-{
-}
-
-class E
-{
-}
-
-class F : E
-{
-}
-
-void main()
-{
-    {
-        D d = new D;
-        {
-            C c = d;
-            assert(c !is null);
-            D d2 = cast(D)c;
-            assert(d2 !is null);
-            E e = cast(E)d;
-            assert(e is null);
-            F f = cast(F)d;
-            assert(f is null);
-        }
-    }
-    {
-        F f = new F;
-        {
-            E e = f;
-            assert(e !is null);
-            F f2 = cast(F)e;
-            assert(f2 !is null);
-            C c = cast(C)f;
-            assert(c is null);
-            D d2 = cast(D)f;
-            assert(d2 is null);
-        }
-    }
-}
--- a/test/classinfo1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-module classinfo1;
-
-extern(C) int printf(char*, ...);
-
-class NoPtrs
-{
-}
-
-class HasPtrs
-{
-    void* p;
-}
-
-void main()
-{
-    {
-    ClassInfo ci = NoPtrs.classinfo;
-    char[] name = ci.name;
-    printf("%.*s\n", name.length, name.ptr);
-    assert(ci.name == "classinfo1.NoPtrs");
-    assert(ci.flags & 2);
-    }
-    {
-    ClassInfo ci = HasPtrs.classinfo;
-    char[] name = ci.name;
-    printf("%.*s\n", name.length, name.ptr);
-    assert(ci.name == "classinfo1.HasPtrs");
-    assert(!(ci.flags & 2));
-    }
-}
--- a/test/classinfo2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module classinfo2;
-
-class C
-{
-}
-
-class D : C
-{
-}
-
-void main()
-{
-    D d;
-    d = new D;
-    ClassInfo ci = d.classinfo;
-    assert(ci is D.classinfo);
-}
--- a/test/classinfo3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-module classinfo3;
-
-class C
-{
-    int i;
-    float f;
-    long l;
-    int j;
-}
-
-void main()
-{
-    auto c = C.classinfo;
-    assert(c.offTi !is null);
-    assert(c.offTi.length == 4);
-
-    size_t base = 2*size_t.sizeof;
-
-    assert(c.offTi[0].offset == base);
-    assert(c.offTi[0].ti == typeid(int));
-    assert(c.offTi[1].offset == base+4);
-    assert(c.offTi[1].ti == typeid(float));
-    assert(c.offTi[2].offset == base+8);
-    assert(c.offTi[2].ti == typeid(long));
-    assert(c.offTi[3].offset == base+16);
-    assert(c.offTi[3].ti == typeid(int));
-}
--- a/test/classinfo4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-module classinfo4;
-
-class C
-{
-}
-
-class D : C
-{
-    this()
-    {
-    }
-    ~this()
-    {
-    }
-}
-
-template T()
-{
-    ~this()
-    {
-    }
-}
-
-class E : D
-{
-    this()
-    {
-    }
-    ~this()
-    {
-    }
-    mixin T;
-}
-
-void main()
-{
-    assert(C.classinfo.defaultConstructor is null);
-    assert(C.classinfo.destructor is null);
-    assert(D.classinfo.defaultConstructor !is null);
-    assert(D.classinfo.destructor !is null);
-    assert(E.classinfo.defaultConstructor !is null);
-    assert(E.classinfo.destructor !is null);
-}
--- a/test/comma.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module comma;
-
-void main()
-{
-    int i=0,j=0;
-    for (; i<10; i++,j++)
-    {
-    }
-    assert(i == 10);
-    assert(j == 10);
-}
--- a/test/complex1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module complex1;
-
-void main()
-{
-    cfloat cf1 = 3f + 0i;
-    cfloat cf2 = 4f + 1i;
-    cfloat cf3 = func();
-    auto c1 = cf1 + cf2;
-    auto c2 = cf2 - cf3;
-    {
-    auto c3 = cf1 * cf3;
-    {
-    auto c4 = cf2 / cf3;
-    }
-    }
-}
-
-cfloat func()
-{
-    return 3f + 1i;
-}
--- a/test/complex2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-module complex2;
-
-void main()
-{
-    cdouble c = 3.0 + 0i;
-    cdouble d = 2.0 + 0i;
-    {
-        cdouble c1 = c + 3.0;
-        cdouble c2 = c - 3.0i;
-    }
-    {
-        cdouble c1 = c / 2.0;
-    }
-}
--- a/test/complex3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-module complex3;
-
-void main()
-{
-    cfloat c1 = 1f + 0i;
-    cfloat c2 = 0f + 0i;
-    c2 += 1f + 0i;
-    //assert(c1 == c2);
-}
--- a/test/cond.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-extern(C) int printf(char*, ...);
-
-version=AndAnd;
-version=OrOr;
-
-version(AndAnd)
-void andand1()
-{
-    int a,b;
-    a = 4;
-    b = 5;
-    assert(a == 4);
-    assert(b == 5);
-    assert(a+b == 9);
-    assert(a == 4 && b == 5);
-    assert(a != 3 && b == 5);
-    assert(a > 2);
-    assert(a < 54);
-    assert(a < b);
-    assert(a > b-2);
-    
-    int apb = a+b;
-    int amb = a*b;
-    assert(apb < amb && apb > a);
-}
-
-version(OrOr)
-void oror1()
-{
-    int a,b;
-    a = 10;
-    b = 1000;
-    assert(a);
-    assert(b);
-    assert(a || b);
-    assert(a > b || a < b);
-}
-
-void main()
-{
-    printf("Conditionals test\n");
-    version(AndAnd) andand1();
-    version(OrOr) oror1();
-    printf("  SUCCESS\n");
-}
--- a/test/cond1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-module cond1;
-
-void main()
-{
-    double a = 2;
-    double b = 4;
-    double c = (a > 0) ? a : b;
-}
--- a/test/condexp.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-module condexp;
-
-int f()
-{
-    return 42;
-}
-
-void main()
-{
-    int i = f() < 25 ? -1 : 1;
-    /*int j = f() > 25 ? 1 : -1;
-    assert(i);
-    assert(!j);*/
-}
--- a/test/condexp1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module condexp1;
-
-void main()
-{
-    char[] a = "hello";
-    char[] b = "world";
-    int i = 42;
-    {
-    char[] c = i > 50 ? b : a;
-    assert(c is a);
-    }
-}
--- a/test/cyclic.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-void main()
-{
-    S t;
-}
-
-struct T
-{
-    int i;
-    S* s;
-}
-
-struct S
-{
-    long i;
-    T* t;
-}
--- a/test/d.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-module d;
-
-void main()
-{
-    int delegate() dg;
-
-    struct S
-    {
-        int i;
-        long l;
-        float f;
-
-        int func()
-        {
-            return 42;
-        }
-    }
-
-    S s;
-    auto dg2 = &s.func;
-    int i = dg2();
-    assert(i == 42);
-
-    i = f(dg2, 1);
-    assert(i == 43);
-}
-
-int f(int delegate() dg, int i)
-{
-    return dg() + i;
-}
-
-/*
-struct S
-{
-    int i;
-    float f;
-    int square()
-    {
-        return i*i;
-    }
-}
-
-S s;
-
-void main()
-{
-    auto dg = &s.square;
-}
-*/
\ No newline at end of file
--- a/test/dgs.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-
-extern(C) int printf(char*, ...);
-
-struct S
-{
-    int i;
-    int square()
-    {
-        return i*i;
-    }
-    int plus(int a)
-    {
-        return i + a;
-    }
-    int minus(int a)
-    {
-        return i - a;
-    }
-    int delegate(int) get(char op)
-    {
-        int delegate(int) rval;
-        if (op == '+')
-            rval = &plus;
-        else if (op == '-')
-            rval = &minus;
-        return rval;
-    }
-}
-
-int calldg1(int delegate(int) dg, int i)
-{
-    return dg(i);
-}
-
-void delegate() retdg()
-{
-    void delegate() dg;
-    return dg;
-}
-
-void getretdg()
-{
-    void delegate() dg;
-    dg = retdg();
-}
-
-class C
-{
-    int i;
-    void m()
-    {
-        i = 42;
-    }
-}
-
-void getclassdg()
-{
-    scope c = new C;
-    void delegate() dg = &c.m;
-    assert(c.i != 42);
-    dg();
-    assert(c.i == 42);
-}
-
-void main()
-{
-    printf("Delegate test\n");
-    S s = S(4);
-    
-    auto dg = &s.square;
-    //assert(dg() == 16);
-    //dg();
-    
-    /*auto dg1 = &s.plus;
-    assert(dg1(6) == 10);
-    
-    auto dg2 = &s.minus;
-    assert(calldg1(dg2,30) == -26);
-    
-    auto dg3 = s.get('+');
-    assert(dg3(16) == 20);
-    
-    getretdg();
-    getclassdg();*/
-    
-    printf("  SUCCESS\n");
-}
--- a/test/dotproduct.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-extern(C) int printf(char*, ...);
-
-struct vec3
-{
-    float x,y,z;
-
-    float dot(ref vec3 v)
-    {
-        return x*v.x + y*v.y + z*v.z;
-    }
-
-    void print(char[] n)
-    {
-        printf("%.*s = vec3(%.4f, %.4f, %.4f)\n", n.length, n.ptr, x,y,z);
-    }
-}
-
-int main()
-{
-    printf("Dot Product test\n");
-
-    const f = 0.7071067811865474617;
-    vec3 v = vec3(f,f,0);
-    vec3 w = vec3(f,0,f);
-
-    v.print("v");
-    w.print("w");
-
-    auto dp = v.dot(w);
-    printf("v · w = %f\n", dp);
-    assert(dp > 0.4999 && dp < 0.5001);
-
-    printf("  SUCCESS\n");
-    return 0;
-}
-
--- a/test/e.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-module e;
-
-extern(C) int printf(char*, ...);
-
-struct C
-{
-    float x=0,y=0;
-
-    float dot(ref C b)
-    {
-        return x*b.x + y*b.y;
-    }
-}
-
-void main()
-{
-    C a,b;
-    a.x = 2;
-    a.y = 6;
-    b.x = 3;
-    b.y = 5;
-    float f = a.dot(b);
-    printf("%f\n", f);
-    assert(f == 36);
-}
--- a/test/enum1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module enum1;
-
-void main()
-{
-    enum {
-        HELLO,
-        WORLD
-    }
-
-    assert(HELLO == 0);
-    assert(WORLD == 1);
-}
--- a/test/enum2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module enum2;
-
-void main()
-{
-    enum E {
-        A,B
-    }
-    E e = E.B;
-    assert(e == E.B);
-}
--- a/test/enum3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module enum3;
-
-enum GE : ushort
-{
-    A,B,C
-}
-
-void main()
-{
-    GE e = GE.B;
-    size_t s = GE.sizeof;
-    assert(e == 1);
-    assert(e.sizeof == s);
-    assert(s == 2);
-}
--- a/test/f.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module f;
-
-struct S
-{
-    long l;
-}
-
-void main()
-{
-    S s;
-}
--- a/test/fail1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module fail1;
-
-void func()
-{
-    float* fp;
-    float f = *fp;
-}
-
-void main()
-{
-    func();
-}
--- a/test/fail2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-module fail2;
-
-void a()
-{
-    b();
-}
-
-void b()
-{
-    c();
-}
-
-void c()
-{
-    d();
-}
-
-void d()
-{
-    int* ip;
-    int i = *ip;
-}
-
-void main()
-{
-    a();
-}
--- a/test/floatcmp.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-module floatcmp;
-extern(C) int printf(char*, ...);
-
-void eq()
-{
-    float _3 = 3;
-    assert(!(_3 == 4));
-    assert(!(_3 == 2));
-    assert(_3 == 3);
-    assert(!(_3 == float.nan));
-}
-
-void neq()
-{
-    float _3 = 3;
-    assert(_3 != 4);
-    assert(_3 != 2);
-    assert(!(_3 != 3));
-    assert(_3 != float.nan);
-}
-
-void gt()
-{
-    float _3 = 3;
-    assert(_3 > 2);
-    assert(!(_3 > 4));
-    assert(!(_3 > 3));
-    assert(!(_3 > float.nan));
-}
-
-void ge()
-{
-    float _3 = 3;
-    assert(_3 >= 2);
-    assert(!(_3 >= 4));
-    assert(_3 >= 3);
-    assert(!(_3 >= float.nan));
-}
-
-void lt()
-{
-    float _3 = 3;
-    assert(_3 < 4);
-    assert(!(_3 < 2));
-    assert(!(_3 < 3));
-    assert(!(_3 < float.nan));
-}
-
-void le()
-{
-    float _3 = 3;
-    assert(_3 <= 4);
-    assert(!(_3 <= 2));
-    assert(_3 <= 3);
-    assert(!(_3 <= float.nan));
-}
-
-void uno()
-{
-    float _3 = 3;
-    assert(!(_3 !<>= 2));
-    assert(!(_3 !<>= 3));
-    assert(!(_3 !<>= 4));
-    assert(_3 !<>= float.nan);
-}
-
-void lg()
-{
-    float _3 = 3;
-    assert(_3 <> 4);
-    assert(_3 <> 2);
-    assert(!(_3 <> 3));
-    assert(!(_3 <> float.nan));
-}
-
-void lge()
-{
-    float _3 = 3;
-    assert(_3 <>= 4);
-    assert(_3 <>= 2);
-    assert(_3 <>= 3);
-    assert(!(_3 <>= float.nan));
-}
-
-void ugt()
-{
-    float _3 = 3;
-    assert(_3 !<= 2);
-    assert(!(_3 !<= 4));
-    assert(!(_3 !<= 3));
-    assert(_3 !<= float.nan);
-}
-
-void uge()
-{
-    float _3 = 3;
-    assert(_3 !< 2);
-    assert(!(_3 !< 4));
-    assert(_3 !< 3);
-    assert(_3 !< float.nan);
-}
-
-void ult()
-{
-    float _3 = 3;
-    assert(_3 !>= 4);
-    assert(!(_3 !>= 2));
-    assert(!(_3 !>= 3));
-    assert(_3 !>= float.nan);
-}
-
-void ule()
-{
-    float _3 = 3;
-    assert(_3 !> 4);
-    assert(!(_3 !> 2));
-    assert(_3 !> 3);
-    assert(_3 !> float.nan);
-}
-
-void ueq()
-{
-    float _3 = 3;
-    assert(!(_3 !<> 2));
-    assert(!(_3 !<> 4));
-    assert(_3 !<> 3);
-    assert(_3 !<> float.nan);
-}
-
-void main()
-{
-    printf("floating point comparison test\n");
-    
-    eq();
-    neq();
-    gt();
-    ge();
-    lt();
-    le();
-    uno();
-    lg();
-    lge();
-    ugt();
-    uge();
-    ult();
-    ule();
-    ueq();
-    
-    printf("  SUCCESS\n");
-}
-
-/+
-void gt()
-{
-    float _3 = 3;
-    assert();
-    assert();
-    assert();
-    assert();
-}
-+/
--- a/test/foreach1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module foreach1;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    static arr = [1,2,3,4,5];
-
-    printf("forward");
-    foreach(v;arr) {
-        printf(" %d",v);
-    }
-    printf("\nreverse");
-    foreach_reverse(v;arr) {
-        printf(" %d",v);
-    }
-    printf("\n");
-}
--- a/test/foreach2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module foreach2;
-extern(C) int printf(char*, ...);
-void main()
-{
-    static arr = [1.0, 2.0, 4.0, 8.0, 16.0];
-    foreach(i,v; arr)
-    {
-        printf("arr[%d] = %f\n", i, v);
-    }
-    printf("-------------------------------\n");
-    foreach_reverse(i,v; arr)
-    {
-        printf("arr[%d] = %f\n", i, v);
-    }
-}
--- a/test/foreach3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module foreach3;
-extern(C) int printf(char*, ...);
-void main()
-{
-    static str = ['h','e','l','l','o'];
-    foreach(i,v; str) {
-        printf("%c",v);
-    }
-    printf("\n");
-
-    foreach(i,v; str) {
-        v++;
-    }
-
-    foreach(i,v; str) {
-        printf("%c",v);
-    }
-    printf("\n");
-}
--- a/test/foreach4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-module foreach4;
-extern(C) int printf(char*, ...);
-void main()
-{
-    int[] arr = new int[4];
-    foreach(i,v;arr) {
-        printf("arr[%u] = %d\n",i,v);
-    }
-}
--- a/test/foreach5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-module foreach5;
-extern(C) int printf(char*, ...);
-void main()
-{
-    int[3] arr = [1,2,3];
-
-    foreach(v;arr) {
-        v++;
-    }
-
-    printf("%d\n", arr[0]);
-    assert(arr[0] == 1);
-    assert(arr[1] == 2);
-    assert(arr[2] == 3);
-
-    foreach(ref v;arr) {
-        v++;
-    }
-
-    printf("%d\n", arr[0]);
-    assert(arr[0] == 2);
-    assert(arr[1] == 3);
-    assert(arr[2] == 4);
-}
--- a/test/foreach6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module foreach6;
-
-struct S
-{
-    long l;
-    float f;
-}
-
-void main()
-{
-    S[4] arr = void;
-    foreach(i,v;arr) {
-        v = S(i, i*2.5);
-    }
-}
--- a/test/foreach7.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module foreach7;
-
-void main()
-{
-    int[4] a = [1,2,3,4];
-    int i;
-    foreach(v; a[0..3])
-    {
-        i += v;
-    }
-    assert(i == 6);
-}
--- a/test/forwdecl.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-struct S
-{
-    S* s;
-    S** ss;
-    S*[4] s4;
-}
-
-void main()
-{
-    S s;
-}
--- a/test/funcptr.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-extern(C) int printf(char*, ...);
-
-int return_six()
-{
-    return 6;
-}
-
-int add_int(int a, int b)
-{
-    return a+b;
-}
-
-int sub_int(int a, int b)
-{
-    return a-b;
-}
-
-alias int function(int,int) binfn_t;
-
-int binop_int(binfn_t op, int a, int b)
-{
-    return op(a,b);
-}
-
-binfn_t get_binop_int(char op)
-{
-    binfn_t fn;
-    if (op == '+')
-        fn = &add_int;
-    else if (op == '-')
-        fn = &sub_int;
-    return fn;
-}
-
-extern(C) float mul_float(float a, float b)
-{
-    return a * b;
-}
-
-void function_pointers()
-{
-    int function() fn = &return_six;
-    assert(fn() == 6);
-
-    binfn_t binfn = &add_int;
-    assert(binfn(4,1045) == 1049);
-
-    assert(binop_int(binfn, 10,656) == 666);
-
-    binfn = get_binop_int('+');
-    assert(binop_int(binfn, 10,100) == 110);
-    binfn = get_binop_int('-');
-    assert(binop_int(binfn, 10,100) == -90);
-
-    {
-    auto ffn = &mul_float;
-    float ftmp = mul_float(2.5,5);
-    assert(ftmp == 12.5);
-    assert(ftmp > 12.49 && ftmp < 12.51);
-    }
-}
-
-void main()
-{
-    printf("Function pointer test\n");
-    function_pointers();
-    printf("  SUCCESS\n");
-}
--- a/test/funcs.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    printf("Testing functions\n");
-    int i = 5;
-    assert(a(i) == 110);
-    assert(i == 11);
-
-    S s;
-    s.i = 5;
-    d(s);
-    assert(s.i == 5);
-    e(s);
-    assert(s.i == 6);
-
-    printf("  SUCCESS\n");
-}
-
-int a(ref int i)
-{
-    i*=2;
-    return b(i);
-}
-
-int b(ref int i)
-{
-    i++;
-    return c(i);
-}
-
-int c(int i)
-{
-    return i*10;
-}
-
-struct S
-{
-    int i;
-}
-
-void d(S s)
-{
-    s.i++;
-}
-
-void e(ref S s)
-{
-    s.i++;
-}
--- a/test/funcs2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-module funcs2;
-
-void func()
-{
-}
-
-void main()
-{
-}
--- a/test/g.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module g;
-
-extern(C) int printf(char*, ...);
-
-void func(char[] str)
-{
-    printf("%.*s\n", str.length, str.ptr);
-}
-
-void main()
-{
-    char[] arr = "Hello World!";
-    func(arr);
-    func("ditto");
-}
--- a/test/globals1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module globals1;
-extern(C) int printf(char*, ...);
-
-char[] gstr = "hello world";
-
-void main()
-{
-    printf("%.*s\n", gstr.length, gstr.ptr);
-    char[] str = gstr;
-    printf("%.*s\n", str.length, str.ptr);
-}
--- a/test/globals2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module globals2;
-
-template Bool(bool b)
-{
-    const bool Bool = b;
-}
-
-void main()
-{
-    assert(Bool!(true));
-    assert(!Bool!(false));
-}
--- a/test/goto1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module goto1;
-
-void main()
-{
-    int i;
-    goto lbl;
-    i++;
-lbl:
-    assert(i == 0);
-}
-
--- a/test/imag1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module imag1;
-
-void main()
-{
-    ifloat f = 1.0i;
-    auto x = 2.0i*f;
-}
--- a/test/imports2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-module imports2;
-import std.stdio;
-
-void main() {
-    writefln("Hello world!"[]);
-}
--- a/test/imports_1of2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module imports_1of2;
-
-import imports_2of2;
-
-void main()
-{
-    assert(func() == 42);
-    S s;
-    s.l = 32;
-    assert(s.l == 32);
-}
--- a/test/imports_2of2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module imports_2of2;
-
-int func()
-{
-    return 42;
-}
-
-struct S
-{
-    long l;
-}
--- a/test/innerclass1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-module innerclass1;
-extern(C) int printf(char*, ...);
-
-class Outer
-{
-    int i;
-    class Inner
-    {
-        int func()
-        {
-            return i;
-        }
-    }
-}
-
-void main()
-{
-    Outer o = new Outer;
-    {
-        o.i = 42;
-        {
-            auto i = o.new Inner;
-            {
-                int x = i.func();
-                assert(x == 42);
-            }
-        }
-    }
-    printf("SUCCESS\n");
-}
--- a/test/interface1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-module interface1;
-
-extern(C) int printf(char*,...);
-
-interface Inter
-{
-    void func();
-}
-
-class Class : Inter
-{
-    override void func()
-    {
-        printf("hello world\n");
-    }
-}
-
-void main()
-{
-    scope c = new Class;
-    c.func();
-    Inter i = c;
-    i.func();
-}
--- a/test/interface2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-module interface2;
-
-extern(C) int printf(char*,...);
-
-interface A
-{
-    void a();
-}
-
-interface B
-{
-    void b();
-}
-
-class C : A,B
-{
-    int i = 0;
-    override void a()
-    {
-        printf("hello from C.a\n");
-    }
-    override void b()
-    {
-        printf("hello from C.b\n");
-    }
-}
-
-void main()
-{
-    scope c = new C;
-    {c.a();
-    c.b();}
-    {A a = c;
-    a.a();}
-    {B b = c;
-    b.b();}
-}
--- a/test/interface3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-module interface3;
-
-extern(C) int printf(char*,...);
-
-interface I
-{
-    void func();
-}
-
-class C : I
-{
-    int i = 42;
-    override void func()
-    {
-        printf("hello %d\n", i);
-        i++;
-    }
-}
-
-void main()
-{
-    scope c = new C;
-    {c.func();}
-    {
-        I i = c;
-        {i.func();}
-    }
-    {printf("final %d\n", c.i);}
-    {assert(c.i == 44);}
-}
--- a/test/interface4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-module interface4;
-
-extern(C) int printf(char*,...);
-
-interface I
-{
-    void func();
-}
-
-interface I2
-{
-    void func();
-}
-
-class C : I,I2
-{
-    int i = 42;
-    override void func()
-    {
-        printf("hello %d\n", i);
-        i++;
-    }
-}
-
-void main()
-{
-    scope c = new C;
-    c.func();
-    I i = c;
-    i.func();
-    I2 i2 = c;
-    i2.func();
-    printf("final %d\n", c.i);
-    assert(c.i == 45);
-}
--- a/test/interface5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-module interface5;
-
-extern(C) int printf(char*,...);
-
-interface I
-{
-    void func();
-}
-
-class C : I
-{
-    int i;
-    void func()
-    {
-        printf("C\n");
-        i++;
-    }
-}
-
-void main()
-{
-    C c = new C;
-    c.func();
-    {
-        I i = c;
-        c.func();
-
-        C c2 = cast(C)i;
-        c2.func();
-
-        c.func();
-        assert(c.i == 4);
-    }
-}
--- a/test/interface6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-module interface6;
-
-extern(C) int printf(char*,...);
-
-interface I
-{
-    void Ifunc();
-}
-
-interface J
-{
-    void Jfunc();
-}
-
-class C : I,J
-{
-    int i;
-    int j;
-    void Ifunc()
-    {
-        i++;
-    }
-    void Jfunc()
-    {
-        j++;
-    }
-}
-
-void main()
-{
-    C c = new C;
-    c.Ifunc();
-    c.Jfunc();
-    I i = c;
-    i.Ifunc();
-    J j = c;
-    j.Jfunc();
-    C c2 = cast(C)i;
-    c2.Ifunc();
-    c2.Jfunc();
-    C c3 = cast(C)j;
-    c3.Ifunc();
-    c3.Jfunc();
-    assert(c.i == 4);
-    assert(c.j == 4);
-}
--- a/test/interface7.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-module interface7;
-
-extern(C) int printf(char*,...);
-
-interface I
-{
-}
-
-class C : I
-{
-}
-
-void main()
-{
-    I i = new C;
-    ClassInfo ci = i.classinfo;
-    char[] name = ci.name;
-    printf("ci.name = %.*s\n", name.length, name.ptr);
-    ClassInfo cI = I.classinfo;
-    name = cI.name;
-    printf("cI.name = %.*s\n", name.length, name.ptr);
-    assert(ci is cI);
-}
--- a/test/intrinsics.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-import llvm.intrinsic;
-
-extern(C) int printf(char*,...);
-extern(C) int scanf(char*,...);
-
-void main()
-{
-    {
-    float f;
-    printf("Enter float: ");
-    scanf("%f", &f);
-    float sf = llvm_sqrt(f);
-    printf("sqrt(%f) = %f\n", f, sf);
-    }
-    
-    {
-    double d;
-    printf("Enter double: ");
-    scanf("%lf", &d);
-    double sd = llvm_sqrt(d);
-    printf("sqrt(%lf) = %lf\n", d, sd);
-    }
-    
-    {
-    real d;
-    printf("Enter real: ");
-    scanf("%lf", &d);
-    real sd = llvm_sqrt(d);
-    printf("sqrt(%lf) = %lf\n", d, sd);
-    }
-}
--- a/test/mainargs1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module mainargs1;
-
-extern(C) int printf(char*,...);
-
-void main(char[][] args)
-{
-    foreach(v; args)
-    {
-        printf("%.*s\n", v.length, v.ptr);
-    }
-}
--- a/test/memory1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module memory1;
-
-extern(C) int printf(char*,...);
-
-void main()
-{
-    auto a = new int[16];
-    {printf("array.length = %u\n", a.length);}
-    {a.length = a.length + 1;}
-    {printf("array.length = %u\n", a.length);}
-    {assert(a.length == 17);}
-}
--- a/test/moduleinfo1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-module moduleinfo1;
-
-static this()
-{
-}
-
-static this()
-{
-}
-
-static ~this()
-{
-}
-
-static ~this()
-{
-}
-
-unittest
-{
-}
-
-class C
-{
-}
-
-class D : C
-{
-}
-
-void main()
-{
-}
--- a/test/moduleinfo2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module moduleinfo2;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    printf("listing modules:\n");
-    foreach(m; ModuleInfo)
-    {
-        printf("  %.*s\n", m.name.length, m.name.ptr);
-    }
-}
--- a/test/multiarr1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-module multiarr1;
-
-void main()
-{
-    int[16][16] a;
-    assert(a[0][0] == 0);
-    assert(a[0][1] == 0);
-    assert(a[0][2] == 0);
-    assert(a[0][3] == 0);
-    assert(a[10][13] == 0);
-    assert(a[15][15] == 0);
-    a[10][13] = 42;
-    assert(a[0][0] == 0);
-    assert(a[10][13] == 42);
-    assert(a[15][15] == 0);
-    {
-        int* l = cast(int*)a;
-        l += 10*16+13;
-        assert(*l == 42);
-    }
-}
--- a/test/multiarr2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module multiarr2;
-
-void main()
-{
-    static float[1][2][3] arr;
-    assert(arr[2][1][0] !<>= float.nan);
-}
--- a/test/multiarr3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module multiarr3;
-
-void main()
-{
-    static int[2][2] arr = [[1,2],[3,4]];
-    assert(arr[0][0] == 1);
-    assert(arr[0][1] == 2);
-    assert(arr[1][0] == 3);
-    assert(arr[1][1] == 4);
-}
--- a/test/multiarr4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-module multiarr4;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    char[][] a;
-    a.length = 2;
-    a[0] = "hello";
-    a[1] = "world";
-    foreach(v;a)
-    {
-        printf("%.*s\n", v.length, v.ptr);
-    }
-}
--- a/test/neg.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module neg;
-
-void main()
-{
-    int i = 32;
-    long l = 55;
-    float f = 23;
-    double d = 4;
-    assert(-i == -32);
-    assert(-l == -55);
-    assert(-f == -23);
-    assert(-d == -4);
-}
--- a/test/nested1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module nested1;
-
-void func(int i)
-{
-    (){
-        assert(i == 3);
-    }();
-}
-
-void main()
-{
-    func(3);
-}
--- a/test/nested10.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-module nested10;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int j = 3;
-    void F()
-    {
-        int i = j;
-        printf("F: i = %d, j = %d\n", i, j);
-        void G()
-        {
-            printf("G: i = %d, j = %d\n", i, j);
-            j += i;
-        }
-        G();
-    }
-    F();
-    printf("6 = %d\n", j);
-    assert(j == 6);
-}
--- a/test/nested11.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-module nested11;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int i;
-
-    void f()
-    {
-        i++;
-
-        void g()
-        {
-            i++;
-
-            void h()
-            {
-                printf("i = %d\n", i);
-            }
-
-            h();
-        }
-
-        g();
-    }
-
-    f();
-    assert(i == 2);
-
-    void foo()
-    {
-        i = 42;
-    }
-
-    void bar()
-    {
-        foo();
-    }
-
-    bar();
-    printf("i = %d\n", i);
-    assert(i == 42);
-}
--- a/test/nested12.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-module nested12;
-
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    func();
-}
-
-void func()
-{
-    void a(int i)
-    {
-        printf("%d\n", i);
-    }
-
-    void b()
-    {
-        a(42);
-    }
-
-    b();
-}
--- a/test/nested2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-module nested2;
-
-void func(ref int i)
-{
-    delegate {
-        assert(i == 3);
-        i++;
-    }();
-}
-
-void main()
-{
-    int i = 3;
-    func(i);
-    assert(i == 4);
-}
--- a/test/nested3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module nested3;
-
-void main()
-{
-    int i;
-    void test()
-    {
-        i = 3;
-    }
-    test();
-    assert(i == 3);
-}
--- a/test/nested4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module nested4;
-
-void func(void delegate() dg) {
-  auto v = (){
-    dg();
-  };
-}
-
-void main()
-{
-    func({});
-}
--- a/test/nested5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-module nested5;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int i = 42;
-
-    printf("Hello world %d\n", i++);
-
-    class C
-    {
-        void func()
-        {
-            printf("Hello world %d\n", i++);
-            //i++;
-        }
-    }
-
-    scope c = new C;
-    c.func();
-    assert(i == 44);
-}
--- a/test/nested6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-module nested6;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int i = 42;
-
-    printf("main() %d\n", i++);
-
-    class C
-    {
-        void func()
-        {
-            printf("C.func() %d\n", i++);
-
-            class C2
-            {
-                void func2()
-                {
-                    printf("C2.func2() %d\n", i++);
-                }
-            }
-
-            {
-                scope c2 = new C2;
-                c2.func2();
-            }
-        }
-    }
-
-    scope c = new C;
-    c.func();
-}
--- a/test/nested7.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-module nested7;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int i;
-    i = 52;
-    printf("i = %d\n", i);
-
-    void func()
-    {
-        i++;
-
-        void func2()
-        {
-            i++;
-
-            void func3()
-            {
-                i++;
-            }
-
-            func3();
-        }
-
-        func2();
-    }
-
-    func();
-
-    printf("i = %d\n", i);
-    assert(i == 55);
-}
--- a/test/nested8.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-module nested8;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int i = 1;
-    void func()
-    {
-        printf("func()\n");
-        i++;
-        void func2()
-        {
-            printf(" func2()\n");
-            int j = i + 1;
-            void func3()
-            {
-                printf("  func3()\n");
-                j++;
-                printf("  done = %d\n", j);
-            }
-            func3();
-            i = j;
-            printf(" done = %d\n", j);
-        }
-        func2();
-        printf("done\n");
-    }
-    func();
-    printf("i == %d\n", i);
-    assert(i == 4);
-}
--- a/test/nested9.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-module nested9;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int i = 42;
-    int func()
-    {
-        return i + 1;
-    }
-    int j = func();
-    printf("j = %d\n", j);
-    assert(j == 43);
-}
--- a/test/pointers.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-module pointers;
-
-struct S
-{
-    long l;
-}
-
-void main()
-{
-    int j = 42;
-    int* p = &j;
-
-    auto t = *p;
-    *p ^= t;
-
-    *p = ~t;
-
-    S s;
-    S* sp = &s;
-    *sp = s;
-    s = *sp;
-}
--- a/test/pt.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-
-extern(C) int printf(char*, ...);
-
-int main()
-{
-    char[16] s = void;
-    {
-    char[] sd = s;
-    {
-    s[0] = 'a';
-    s[1] = 'b';
-    s[2] = 'c';
-    }
-
-    printf("%p %p\n", s.ptr, sd.ptr);
-    printf("%c%c%c\n", s[0], s[1], s[2]);
-    }
-
-    char[16] s1 = void;
-    char[16] s2 = void;
-    char[] d1 = s1;
-
-    {
-        printf("%p\n%p\n%p\n", s1.ptr, s2.ptr, d1.ptr);
-    }
-
-    int[16] arr;
-
-    return 0;
-}
--- a/test/ptrarith.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    printf("Pointer arithmetic test\n");
-    int* p;
-    printf("0x%x\n", p);
-    assert(p++ is null);
-    assert(cast(size_t)p == 4);
-    printf("0x%x\n", p);
-    p--;
-    assert(p is null);
-    printf("0x%x\n", p);
-    int d = 4;
-    p+=d;
-    printf("0x%x\n", p);
-    assert(cast(size_t)p == 16);
-    d = 2;
-    p+=d;
-    printf("0x%x\n", p);
-    assert(cast(size_t)p == 0x18);
-    d = 6;
-    p-=d;
-    printf("0x%x\n", p);
-    assert(p is null);
-    printf("  SUCCESS\n");
-}
-
-void fill_byte_array(ubyte* a, size_t n, ubyte v)
-{
-    auto p = a;
-    auto end = a+n;
-    while (p !is end)
-        *p++ = v;
-}
--- a/test/scope1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module scope1;
-extern(C) int printf(char*, ...);
-void main()
-{
-    printf("1\n");
-    {
-        scope(exit) printf("2\n");
-    }
-    printf("3\n");
-}
--- a/test/scope2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-module scope2;
-extern(C) int printf(char*, ...);
-void main()
-{
-    scope(exit) printf("exit\n");
-    scope(failure) printf("failure\n");
-    scope(success) printf("success\n");
-}
--- a/test/scope3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module scope3;
-extern(C) int printf(char*, ...);
-void main()
-{
-    int i;
-    while (i < 10) {
-        scope(success) i++;
-    }
-    printf("%d\n", i);
-}
--- a/test/scope4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module scope4;
-int main()
-{
-    int i;
-    try
-    {
-        return i;
-    }
-    finally
-    {
-        //i = 1;
-    }
-}
--- a/test/scope5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-module scope5;
-
-int i;
-
-void func(int a, int b)
-{
-    i = 0;
-    {
-        scope(exit) i++;
-        if (a) {
-            scope(exit) i++;
-            if (b) return;
-            i++;
-        }
-    }
-    i++;
-}
-
-void main()
-{
-    func(0,0);
-    assert(i == 2);
-    func(1,1);
-    assert(i == 2);
-    func(1,0);
-    assert(i == 4);
-}
--- a/test/sieve.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* Eratosthenes Sieve prime number calculation. */
-
-extern(C) int printf(char*, ...);
-
-bool flags[8191];
-
-int main()
-{   int     i, prime, k, count, iter;
-
-    printf("10 iterations\n");
-    for (iter = 1;
-    iter <= 10;
-    iter++)
-    {
-    count = 0;
-    flags[] = true;
-    for (i = 0; i < flags.length; i++)
-    {   if (flags[i])
-        {
-        prime = i + i + 3;
-        k = i + prime;
-        while (k < flags.length)
-        {
-            flags[k] = false;
-            k += prime;
-        }
-        count += 1;
-        }
-    }
-    }
-    printf("%d primes\n", count);
-    return 0;
-}
--- a/test/slices.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-module slices;
-
-void main()
-{
-    //char[] a = "hello world";
-    //char[5] b = a[0..5];
-
-    //char* cp = a.ptr;
-    //char[] c = cp[0..1];
-}
-
-char[] first5(char[] str)
-{
-    char* p = str.ptr;
-    return p[0..5];
-}
-
-int[] one()
-{
-    static int i;
-    return (&i)[0..1];
-}
-
-void[] init()
-{
-static char c;
-return (&c)[0 .. 1];
-}
-
-void[] init2()
-    {   static char c;
-
-    return (cast(char *)&c)[0 .. 1];
-    }
\ No newline at end of file
--- a/test/sqrts.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-module sqrts;
-
-import tango.stdc.math;
-
-double sqrt(double d)
-{
-    return tango.stdc.math.sqrt(d);
-}
-
-void main()
-{
-}
--- a/test/static_ctor.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-extern(C) int printf(char*, ...);
-
-static this()
-{
-    printf("static this\n");
-}
-
-static ~this()
-{
-    printf("static ~this\n");
-}
-
-void main()
-{
-    printf("main\n");
-}
--- a/test/staticarrays.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-extern(C) int printf(char*, ...);
-
-void numbers()
-{
-    bool[8] bools;
-    char[8] chars;
-    byte[8] bytes;
-    short[8] shorts;
-    int[8] ints;
-    long[8] longs;
-    float[8] floats;
-    double[8] doubles;
-    real[8] reals;
-    {
-        bools[7] = true;
-        floats[7] = 3.14159265;
-        {
-            printf("bools[0] = %d, bools[7] = %d\n", bools[0], bools[7]);
-            printf("floats[0] = %f, floats[7] = %f\n", floats[0], floats[7]);
-        }
-    }
-}
-
-struct S
-{
-    int i = 42;
-    void print()
-    {
-        printf("S.i = %d\n", i);
-    }
-}
-
-class C
-{
-    int i;
-    this()
-    {
-        i = 3;
-    }
-    void print()
-    {
-        printf("C.i = %d\n", i);
-    }
-}
-
-void refs()
-{
-    void*[5] voids;
-    S*[5] structs;
-    C[5] classes;
-    
-    {
-        voids[0] = cast(void*)0xA;
-        printf("void* = %p\n", voids[0]);
-    }
-    {
-        structs[0] = new S;
-        structs[0].print();
-        delete structs[0];
-    }
-    {
-        classes[0] = new C;
-        classes[0].print();
-        delete classes[0];
-    }
-}
-
-void vals()
-{
-    S[5] structs;
-}
-
-void main()
-{
-    numbers();
-    refs();
-    vals();
-}
--- a/test/staticvars.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module staticvars;
-
-int func()
-{
-    static int i;
-    return i++;
-}
-
-void main()
-{
-    assert(func() == 0);
-    assert(func() == 1);
-}
--- a/test/stdiotest.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-module stdiotest;
-
-import std.stdio;
-
-T typed(T)(T x)
-{
-    return x;
-}
-
-void main()
-{
-    /*char[] str = "hello";
-    writefln(str);
-
-    writefln("hello world");*/
-
-    char[] fmt = "%s";
-    writefln(2.0f);
-
-    /*{writefln(typed!(byte)(1));}
-    {writefln(typed!(short)(2));}
-    {writefln(typed!(int)(3));}
-    {writefln(typed!(long)(-4));}
-    {writefln(typed!(ulong)(5));}
-    {writefln("%f", typed!(float)(6));}
-    {writefln("%f", typed!(double)(7));}
-    {writefln("%f", typed!(real)(8));}*/
-}
--- a/test/stdiotest2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-module stdiotest2;
-import std.stdio;
-void main()
-{
-    int[4] v = [1,2,3,4];
-    {
-        writefln("%s", v);
-        {
-            int[] dv = v;
-            {writefln("%s", dv);}
-        }
-    }
-
-    {
-        writefln(v);
-        {
-            //int[] dv = v;
-            //{writefln(dv);}
-        }
-    }
-    //writefln(1,2,3,4.56,"hello",v);
-}
--- a/test/strings1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module strings1;
-extern(C) int printf(char*, ...);
-void f(char[11] buffer)
-{
-    printf("%.*s\n", buffer.length, buffer.ptr);
-}
-
-void main()
-{
-    char[11] buffer;
-    char[] hello = "hello world";
-    {buffer[] = hello[];}
-    {f(buffer);}
-    {f("eleven char");}
-}
--- a/test/strings2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module strings2;
-
-import std.string;
-import std.stdio;
-
-void main()
-{
-    int i = 32;
-    auto str = format(i);
-    writefln(str);
-
-    long l = 123123;
-    str = format(l);
-    writefln(str);
-}
--- a/test/structinit.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-module structinit;
-
-import structinit2;
-
-struct S
-{
-    uint ui;
-    float f;
-    long l;
-    real r;
-}
-
-S adef;
-
-S a = { 1, 2.0f };
-S b = { f:2.0f, l:42 };
-
-Imp imp;
-
-void main()
-{
-    //assert(a == S.init);
-    //assert(b == S(0,3.14f,0,real.init));
-}
-
--- a/test/structinit2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-module structinit2;
-
-struct Imp
-{
-    int i;
-    long l;
-    float f;
-}
-
-void main()
-{
-    Imp i;
-    assert(i.i == 0);
-    assert(i.l == 0L);
-    assert(i.f !<>= 0.0f);
-}
--- a/test/structs.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-struct S
-{
-    int func()
-    {
-        return 42;
-    }
-}
-
-void main()
-{
-    S s;
-    int i = s.func();
-}
--- a/test/structs2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module structs2;
-
-struct S
-{
-    int i;
-    char c;
-    S* s;
-    char[4] ca;
-}
-
-void main()
-{
-}
--- a/test/structs3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-module structs3;
-
-struct S
-{
-    char c;
-    float f;
-}
-
-struct T
-{
-    S s;
-    long l;
-}
-
-void main()
-{
-    T t;
-    float f = void;
-    float* fp = void;
-    {f = t.s.f;}
-    {t.s.f = 0.0;}
-    {fp = &t.s.f;}
-    {*fp = 1.0;}
-    {assert(t.s.f == 1.0);}
-    {assert(*(&t.s.f) == 1.0);}
-    {t.s.c = 'a';}
-    {assert(t.s.c == 'a');}
-    {t.l = 64;}
-    {assert(t.l == 64);}
-}
--- a/test/structs4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-module structs4;
-
-struct S{
-    int a;
-    T t;
-}
-
-struct T{
-    int b;
-    U u;
-}
-
-struct U{
-    int c;
-}
-
-void main()
-{
-    S s;
-    s.a = 3;
-    s.t = T.init;
-    s.t.b = 4;
-    s.t.u = U.init;
-    s.t.u.c = 5;
-    //{assert(s.t.u.c == 5);}
-}
--- a/test/structs5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-module structs5;
-
-void main()
-{
-    {S s = S();}
-    {T t = T(1);}
-    {U u = U();}
-}
-
-struct S
-{
-}
-
-struct T
-{
-    int i;
-}
-
-struct U
-{
-    S s;
-    long l;
-}
--- a/test/structs6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module structs6;
-
-struct S
-{
-    float f;
-}
-
-void func(S s)
-{
-}
-
-void main()
-{
-    func(S());
-}
--- a/test/structs7.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module structs7;
-
-pragma(LLVM_internal, "notypeinfo")
-struct S
-{
-    int i;
-    long l;
-}
-
-void main()
-{
-    S s = void;
-    int i = s.i;
-    long l = s.l;
-}
--- a/test/switch1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module switch1;
-
-void main()
-{
-    int i = 2;
-    int r;
-    switch (i)
-    {
-    case 1: r+=1; break;
-    case 2: r-=2;
-    case 3: r=3; break;
-    default: r=-1;
-    }
-    assert(r == 3);
-}
--- a/test/switch2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module switch2;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    int i = 2;
-    switch(i)
-    {
-    case 0: assert(0);
-    case 1,2: printf("hello world\n"); break;
-    default: assert(0);
-    }
-}
--- a/test/switch3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-module switch3;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    char[] str = "hello";
-    int i;
-    switch(str)
-    {
-    case "world":
-        i = 1;
-        assert(0);
-    case "hello":
-        i = 2;
-        break;
-    case "a","b","c":
-        i = 3;
-        assert(0);
-    default:
-        i = 4;
-        assert(0);
-    }
-    assert(i == 2);
-    printf("SUCCESS\n");
-}
--- a/test/sync1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-module sync1;
-
-void main()
-{
-    int i;
-    int j;
-    synchronized j = i;
-}
--- a/test/templ1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module templ1;
-
-T func1(T)(T a)
-{
-    static T b = a;
-    return b;
-}
-
-void main()
-{
-}
--- a/test/templ2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-module templ2;
-import templ1;
-
-void main()
-{
-    func1(1);
-}
--- a/test/terms.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-module terms;
-
-void f()
-{
-    int i = 42;
-    if (i > 25)
-        return;
-    if (i < 25) {
-        return;
-    }
-
-    if (i > 100)
-        return;
-    else
-        return;
-
-    if (i < 1000) {
-        return;
-    }
-    else {
-        return;
-    }
-}
-
-void main()
-{
-    int i = 42;
-    if (i > 25)
-        return;
-    if (i < 25) {
-        return;
-    }
-
-    if (i > 100)
-        return;
-    else
-        return;
-
-    if (i < 1000) {
-        return;
-    }
-    else {
-        return;
-    }
-}
--- a/test/throw1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-module throw1;
-
-extern(C) int rand();
-
-class C
-{
-}
-
-void func(bool b)
-{
-    if (b)
-        throw new C;
-}
-
-int main()
-{
-    bool b = true;
-    try
-    {
-        func(b);
-    }
-    catch(Object)
-    {
-        return 1;
-    }
-    return 0;
-}
--- a/test/tuple1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-module tuple1;
-
-template Tuple(T...) {
-    alias T Tuple;
-}
-
-struct S
-{
-    int i;
-    long l;
-}
-
-void main()
-{
-    S s = S(Tuple!(1,2L));
-    assert(s.i == 1);
-    assert(s.l == 2);
-}
--- a/test/typeinfo.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module typeinfo;
-extern(C) int printf(char*, ...);
-
-void main()
-{
-    auto ti = typeid(int);
-    char[] str = ti.toString();
-    printf("%.*s\n", str.length, str.ptr);
-    assert(str == "int");
-}
--- a/test/typeinfo10.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-module typeinfo10;
-
-struct S
-{
-    long l;
-    float f;
-    void* vp;
-
-    hash_t toHash()
-    {
-        return l + cast(size_t)f;
-    }
-
-    int opEquals(S s)
-    {
-        return (s.l == l) && (s.f == f);
-    }
-
-    int opCmp(S a)
-    {
-        if (l == a.l) {
-            return (f < a.f) ? -1 : (f > a.f) ? 1 : 0;
-        }
-        return (l < a.l) ? -1 : 1;
-    }
-
-    char[] toString()
-    {
-        return "S instance";
-    }
-}
-
-void main()
-{
-    S s=S(-1, 0);
-    S t=S(-1, 1);
-    S u=S(11,-1);
-    S v=S(12,13);
-
-    {
-        assert(s == s);
-        assert(s != t);
-        assert(s != v);
-        assert(s < t);
-        assert(u > s);
-        assert(v > u);
-    }
-
-    {
-        auto ti = typeid(S);
-        assert(ti.getHash(&s) == s.toHash());
-        assert(ti.equals(&s,&s));
-        assert(!ti.equals(&s,&t));
-        assert(!ti.equals(&s,&v));
-        assert(ti.compare(&s,&s) == 0);
-        assert(ti.compare(&s,&t) < 0);
-        assert(ti.compare(&u,&s) > 0);
-        assert(ti.compare(&v,&u) > 0);
-        {
-            auto tis = cast(TypeInfo_Struct)ti;
-            assert(tis.xtoString(&s) == s.toString());
-        }
-    }
-}
--- a/test/typeinfo11.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module typeinfo11;
-
-void main()
-{
-    int[4] a;
-    TypeInfo ti;
-    ti = typeid(typeof(a));
-    assert(ti.next() is typeid(int));
-    assert(ti.tsize() == 16);
-}
--- a/test/typeinfo12.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-module typeinfo12;
-
-class C
-{
-}
-
-void main()
-{
-}
--- a/test/typeinfo13.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module typeinfo13;
-
-void main()
-{
-    float[long] aa;
-    auto ti = typeid(typeof(aa));
-    assert(ti.toString() == "float[long]");
-    assert(ti.next() is typeid(float));
-    assert(ti.tsize() == size_t.sizeof);
-    auto aati = cast(TypeInfo_AssociativeArray)ti;
-    assert(aati.value is typeid(float));
-    assert(aati.key is typeid(long));
-}
--- a/test/typeinfo2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-module typeinfo2;
-
-void main()
-{
-    auto ti = typeid(float);
-    float f = 2.5;
-    hash_t fh = ti.getHash(&f);
-    assert(ti.next is null);
-    float g = 4.0;
-    ti.swap(&f,&g);
-    assert(f == 4.0 && g == 2.5);
-    assert(fh == *cast(uint*)(&g));
-    assert(!ti.flags);
-}
--- a/test/typeinfo3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-module typeinfo3;
-
-typedef int int_t;
-
-void main()
-{
-    /*int_t i;
-    auto ti = typeid(typeof(i));
-    printf("%s\n",ti.toString.ptr);
-    assert(ti.toString() == "typeinfo3.int_t");
-    assert(ti.next !is null);
-    assert(ti.next.toString() == "int");
-    assert(ti.init is null);*/
-}
--- a/test/typeinfo4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module typeinfo4;
-
-void main()
-{
-    auto ti = typeid(void*);
-    assert(ti.toString() == "void*");
-    assert(ti.tsize() == size_t.sizeof);
-    void* a = null;
-    void* b = a + 1;
-    assert(ti.compare(&a,&b) < 0);
-}
--- a/test/typeinfo5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-module typeinfo5;
-
-void main()
-{
-    enum E : uint {
-        A,B,C
-    }
-    auto ti = typeid(E);
-    assert(ti.next() is typeid(uint));
-    assert(ti.init is null);
-}
--- a/test/typeinfo6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-module typeinfo6;
-
-void main()
-{
-    auto ti = typeid(int[]);
-    assert(ti.toString() == "int[]");
-    assert(ti.next() is typeid(int));
-}
--- a/test/typeinfo7.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-module typeinfo7;
-extern(C) int printf(char*, ...);
-int func(long)
-{
-    return 0;
-}
-
-void main()
-{
-    auto ti = typeid(typeof(func));
-    auto s = ti.toString;
-    printf("%.*s\n", s.length, s.ptr);
-    assert(s == "int()");
-}
--- a/test/typeinfo8.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module typeinfo8;
-extern(C) int printf(char*, ...);
-struct S
-{
-    void func()
-    {
-    }
-}
-
-void main()
-{
-    S a;
-    auto ti = typeid(typeof(&a.func));
-    auto s = ti.toString;
-    printf("%.*s\n", s.length, s.ptr);
-    assert(s == "void delegate()");
-}
--- a/test/typeinfo9.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module typeinfo9;
-
-typedef int int_t = 42;
-
-void main()
-{
-    auto i = typeid(int_t).init;
-    assert(i.length == int_t.sizeof);
-    assert(*cast(int_t*)i.ptr == 42);
-}
--- a/test/union1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module union1;
-
-pragma(LLVM_internal, "notypeinfo")
-union U
-{
-    float f;
-    int i;
-}
-
-void main()
-{
-    float f = 2;
-    U u = U(f);
-    assert(u.i == *cast(int*)&f);
-}
--- a/test/union2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module union2;
-
-pragma(LLVM_internal, "notypeinfo")
-union U
-{
-    float f;
-    long l;
-}
-
-U u;
-
-void main()
-{
-    assert(u.f !<>= 0);
-    {
-        uint* p = 1 + cast(uint*)&u;
-        {assert(*p == 0);}
-    }
-}
--- a/test/union3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-module union3;
-
-pragma(LLVM_internal, "notypeinfo")
-union vec3
-{
-    struct { float x,y,z; }
-    float[3] xyz;
-}
-
-void main()
-{
-    vec3 v;
-    assert(&v.y is &v.xyz[1]);
-}
--- a/test/union4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-module union4;
-
-pragma(LLVM_internal, "notypeinfo")
-union U {
-    struct { float x,y,z; }
-    float[3] xyz;
-}
-
-void main() {
-    const float[3] a = [1f,2,3];
-    U u = U(1,2,3);
-    assert(u.xyz == a);
-    assert(u.x == 1);
-    assert(u.y == 2);
-    assert(u.z == 3);
-}
--- a/test/union5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-module union5;
-
-pragma(LLVM_internal, "notypeinfo")
-{
-    union S
-    {
-        T t;
-        U u;
-        uint i;
-        struct {
-            ushort sl,sh;
-        }
-    }
-
-    struct T
-    {
-        int i;
-    }
-
-    struct U
-    {
-        float f;
-    }
-}
-
-void main()
-{
-    S s;
-    assert(s.t.i == 0);
-    assert(s.u.f == 0);
-    s.t.i = -1;
-    assert(s.i == 0xFFFF_FFFF);
-    float f = 3.1415;
-    s.u.f = f;
-    uint pi = *cast(uint*)&f;
-    assert(s.i == pi);
-    assert(s.sl == (pi&0xFFFF));
-    assert(s.sh == (pi>>>16));
-}
--- a/test/union6.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-module union6;
-
-pragma(LLVM_internal, "notypeinfo") {
-    struct S
-    {
-        byte a;
-        byte b;
-    }
-    union U
-    {
-        byte a;
-        byte b;
-        S c;
-    }
-}
-
-void main()
-{
-    U u;
-    auto a = u.c.b;
-    //auto c = u.s.l;
-}
--- a/test/union7.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-module union7;
-
-pragma(LLVM_internal, "notypeinfo")
-struct Union
-{
-    union {
-        double g;
-        struct {
-            short s1,s2,s3,s4;
-        }
-    }
-    union {
-        float f;
-        long l;
-    }
-}
-
-Union a = { f:4f };
-Union b = { 3.0, f:2 };
-Union c = { l:42, g:2.0 };
-Union d = { s2:3 };
-Union e = { s1:3, s4:4, l:5 };
-
-void main()
-{
-    assert(a.f == 4f);
-    assert(a.g !<>= 0.0);
-    assert((a.l>>>32) == 0);
-
-    assert(b.g == 3.0);
-    assert(b.f == 2f);
-
-    assert(c.l == 42);
-    assert(c.g == 2.0);
-
-    assert(d.s1 == 0);
-    assert(d.s2 == 3);
-    assert(d.s3 == 0);
-    assert(d.s4 == 0);
-    {assert(d.f !<>= 0f);}
-    {}
-    assert(e.s1 == 3);
-    assert(e.s2 == 0);
-    assert(e.s3 == 0);
-    {assert(e.s4 == 4);}
-    {}
-    assert(e.l == 5);
-}
--- a/test/unittest1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-module unittest1;
-
-void main()
-{
-}
-
-unittest
-{
-    printf("hello\n");
-}
--- a/test/unrolled.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-module unrolled;
-
-extern(C) int printf(char*, ...);
-
-void test(T...)(T t) {
-    foreach (value; t) {
-        printf("%d\n", value);
-        if (value == 2)
-            break;
-    }
-}
-
-void main() {
-    test(1,4,3);
-}
--- a/test/v2d.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-extern(C) int printf(char*, ...);
-
-struct V2D(T)
-{
-    T x,y;
-
-    T dot(ref V2D v)
-    {
-        return x*v.x + y*v.y;
-    }
-
-    V2D opAdd(ref V2D v)
-    {
-        return V2D(x+v.x, y+v.y);
-    }
-}
-
-alias V2D!(float) V2Df;
-
-void main()
-{
-    printf("V2D test\n");
-    auto up = V2Df(0.0f, 1.0f);
-    auto right = V2Df(1.0f, 0.0f);
-    assert(up.dot(right) == 0.0f);
-    auto upright = up + right;
-    assert(upright.x == 1.0f && upright.y == 1.0f);
-    auto copy = upright;
-    copy.x++;
-    assert(copy.x > upright.x);
-    printf("  SUCCESS\n");
-}
--- a/test/vararg1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-module vararg1;
-
-import tango.stdc.stdarg;
-
-extern(C) int add(int n, ...)
-{
-    va_list ap=void;
-    va_start(ap, n);
-    int r;
-    for (int i=0; i<n; i++)
-        r += va_arg!(int)(ap);
-    va_end(ap);
-    return r;
-}
-
-void main()
-{
-    int i = add(4,1,2,3,4);
-    assert(i == 10);
-}
--- a/test/vararg2.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-module vararg2;
-
-void func(...)
-{
-    assert(_arguments.length == 2);
-    assert(_arguments[0] is typeid(int));
-    int a = *cast(int*)_argptr;
-    _argptr += int.sizeof;
-    assert(_arguments[1] is typeid(int));
-    a += *cast(int*)_argptr;
-    _argptr += int.sizeof;
-    assert(a == 3);
-}
-
-void main()
-{
-    func(1,2);
-}
--- a/test/vararg3.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-module vararg3;
-
-import tango.core.Vararg;
-
-void func(...)
-{
-    assert(_arguments.length == 3);
-    assert(_arguments[0] is typeid(int));
-    assert(_arguments[1] is typeid(float));
-    assert(_arguments[2] is typeid(long));
-    assert(va_arg!(int)(_argptr) == 4);
-    assert(va_arg!(float)(_argptr) == 2.5f);
-    assert(va_arg!(long)(_argptr) == 42L);
-}
-
-void main()
-{
-    func(4, 2.5f, 42L);
-}
--- a/test/vararg4.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-module vararg4;
-import tango.core.Vararg;
-extern(C) int printf(char*, ...);
-
-void vafunc(...)
-{
-    foreach(i,v; _arguments) {
-        if (typeid(byte) == v) {
-            printf("byte(%d)\n", va_arg!(byte)(_argptr));
-        }
-        else if (typeid(short) == v) {
-            printf("short(%d)\n", va_arg!(short)(_argptr));
-        }
-        else if (typeid(int) == v) {
-            printf("int(%d)\n", va_arg!(int)(_argptr));
-        }
-        else if (typeid(long) == v) {
-            printf("long(%ld)\n", va_arg!(long)(_argptr));
-        }
-        else if (typeid(float) == v) {
-            printf("float(%f)\n", va_arg!(float)(_argptr));
-        }
-        else if (typeid(double) == v) {
-            printf("double(%f)\n", va_arg!(double)(_argptr));
-        }
-        else if (typeid(real) == v) {
-            printf("real(%f)\n", va_arg!(real)(_argptr));
-        }
-        else
-        assert(0, "unsupported type");
-    }
-}
-
-void main()
-{
-    vafunc(byte.max,short.max,1,2,3,4L,5.0f,6.0,cast(real)7);
-}
--- a/test/vararg5.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-module vararg5;
-import tango.core.Vararg;
-extern(C) int printf(char*, ...);
-void func(...)
-{
-    char[] str = va_arg!(char[])(_argptr);
-    {printf("%.*s\n", str.length, str.ptr);}
-}
-void main()
-{
-    char[] str = "hello";
-    func(str);
-}
--- a/test/virtcall.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-module virtcall;
-
-extern(C) int printf(char*, ...);
-
-class C
-{
-    override char[] toString()
-    {
-        return "overridden";
-    }
-}
-
-void main()
-{
-    C c = new C;
-    auto s = c.toString();
-    printf("%.*s\n", s.length, s.ptr);
-}
--- a/test/with1.d	Sun Jul 13 02:04:25 2008 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-module with1;
-struct S
-{
-    int i;
-    float f;
-}
-void main()
-{
-    S s;
-    with(s)
-    {
-        i = 0;
-        f = 3.5;
-    }
-    assert(s.i == 0);
-    assert(s.f == 3.5);
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/a.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,23 @@
+module a;
+
+extern(C) int printf(char*, ...);
+
+int i = 42;
+
+void main()
+{
+    int j;
+    j = i;
+    int* p;
+    p = &j;
+    int k = *p;
+    assert(k == 42);
+
+    byte b = -1;
+    int i = b;
+    assert(i == -1);
+
+    int* p2 = p;
+
+    printf("Done\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/a_1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,34 @@
+class Foo
+{
+    this(int j)
+    {
+        i = pi = j;
+    }
+
+    int i;
+
+private:
+
+    int pi;
+}
+
+class Bar : Foo
+{
+    this(int j)
+    {
+        super(j);
+        baz = 42;
+    }
+
+    int baz;
+}
+
+void func()
+{
+    auto bar = new Bar(12);
+}
+
+void main()
+{
+    func();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/aa1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module aa1;
+
+void main()
+{
+    int[int] aai;
+    assert(aai is null);
+    aai[0] = 52;
+    assert(aai !is null);
+    int i = aai[0];
+    assert(i == 52);
+    aai[32] = 123;
+    int j = aai[32];
+    assert(i == 52);
+    assert(j == 123);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/aa1_1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,21 @@
+module tangotests.aa1_1;
+
+extern(C) int printf(char*,...);
+
+void main()
+{
+    int[int] map;
+    map[1] = 1;
+    map[10] = 1;
+    map[11] = 11;
+    map[14] = 41;
+    map[21] = 12;
+    map[23] = 32;
+    map[32] = 23;
+    map[201] = 102;
+    foreach(k,v; map)
+    {
+        printf("%d:%d ", k,v);
+    }
+    printf("\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/aa2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module aa2;
+
+void main()
+{
+    long[float] aa;
+    long* p = 2.0f in aa;
+    assert(!p);
+    aa[4f] = 23;
+    p = 4f in aa;
+    assert(p);
+    assert(*p == 23);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/aa2_1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module tangotests.aa2_1;
+
+int main()
+{
+    int[cdouble] x;
+    cdouble d=22.0+0.0i;
+    x[d] = 44;
+    if(44 != x[d]){
+            assert(0);
+    }
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/aa3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,27 @@
+module aa3;
+
+extern(C) int printf(char*, ...);
+alias char[] string;
+
+void main()
+{
+    int[string] aa;
+    {aa["hello"] = 1;}
+    {int* p = "" in aa;}
+    aa[" worl"] = 2;
+    aa["d"] = 3;
+    aa["thisisgreat"] = 10;
+    int sum;
+    string cat;
+    {
+    foreach(k,v;aa)
+    {
+        printf("int[%.*s] = %d\n", k.length, k.ptr, v);
+        sum += v;
+        cat ~= k;
+    }
+    }
+    assert(sum == 16);
+    printf("cat = %.*s\n", cat.length, cat.ptr);
+    assert(cat.length == 22);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/aa4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,20 @@
+module aa4;
+
+void main()
+{
+    int[int] aa;
+    aa = addkey(aa,42,12);
+    int* p = haskey(aa,42);
+    assert(p && *p == 12);
+}
+
+int[int] addkey(int[int] aa, int key, int val)
+{
+    aa[key] = val;
+    return aa;
+}
+
+int* haskey(int[int] aa, int key)
+{
+    return key in aa;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/aa5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+module aa5;
+
+void main()
+{
+    int[int] aa;
+    aa[42] = 1;
+    int i = aa[42];
+    assert(i == 1);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/aa6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,27 @@
+module aa6;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int[int] aa;
+    aa = [1:1, 2:4, 3:9, 4:16];
+    printf("---\n");
+    foreach(int k, int v; aa)
+        printf("aa[%d] = %d\n", k, v);
+    aa.rehash;
+    printf("---\n");
+    foreach(int k, int v; aa)
+        printf("aa[%d] = %d\n", k, v);
+    size_t n = aa.length;
+    assert(n == 4);
+    int[] keys = aa.keys;
+    assert(keys[] == [1,2,3,4][]);
+    int[] vals = aa.values;
+    assert(vals[] == [1,4,9,16][]);
+    aa.remove(3);
+    printf("---\n");
+    foreach(int k, int v; aa)
+        printf("aa[%d] = %d\n", k, v);
+    assert(aa.length == 3);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/align1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+module tangotests.align1;
+
+extern(C) int printf(char*, ...);
+
+struct TLA
+{
+    char[3] tla;
+    char[] toString() { return tla; }
+    void dump()
+    {
+        printf("%.*s\n", 3, tla.ptr);
+    }
+}
+
+void main()
+{
+    TLA fbi = TLA("FBI");
+    fbi.dump();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/alignment.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,21 @@
+module alignment;
+
+align(1) struct S
+{
+    ubyte b;
+    int i;
+    ubyte[2] b2;
+    long l;
+    real r;
+}
+
+void main()
+{
+    byte b;
+    short s;
+    int i;
+    long l;
+    float f;
+    double d;
+    real r;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/alloca1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module alloca1;
+
+pragma(LLVM_internal, "alloca")
+void* alloca(uint);
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int n = 16;
+    int* p = cast(int*)alloca(n*int.sizeof);
+    int[] a = p[0..n];
+    a[] = 0;
+    foreach(i,v; a) {
+        printf("a[%2d] = %d\n", i, v);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrayinit.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module arrayinit;
+float[4] ftable = [1,2,3,4];
+int[8] itable = [3:42,6:123];
+
+private uint[7] crc32_table = [0x00000000,0x77073096,0xee0e612c,0x990951ba,0x076dc419,0x706af48f,0xe963a535];
+
+void main()
+{
+    assert(crc32_table[3] == 0x990951ba);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,43 @@
+module arrays1;
+
+extern(C) int printf(char*, ...);
+
+void integer()
+{
+    auto arr = new int[16];
+    arr[1] = 42;
+    arr[6] = 555;
+    print_int(arr);
+    delete arr;
+}
+
+void floating()
+{
+    auto arr = new float[6];
+    arr[1] = 3.14159265;
+    arr[3] = 1.61803399;
+    print_float(arr);
+    delete arr;
+}
+
+void print_int(int[] arr)
+{
+    printf("arr[%lu] = [", arr.length);
+    for (auto i=0; i<arr.length; i++)
+        printf("%d,", arr[i]);
+    printf("\b]\n");
+}
+
+void print_float(float[] arr)
+{
+    printf("arr[%lu] = [", arr.length);
+    for (auto i=0; i<arr.length; i++)
+        printf("%f,", arr[i]);
+    printf("\b]\n");
+}
+
+void main()
+{
+    integer();
+    floating();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays10.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,7 @@
+module arrays10;
+
+void main()
+{
+    int[] a = new int[10];
+    a[] = 3;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays11.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,51 @@
+module arrays11;
+
+void ints()
+{
+    int[] a = [1,2,3,4,5,6];
+    {assert(a == a);}
+
+    int[] b = [4,5,6,7,8,9];
+    {assert(a != b);}
+    {assert(a[3..$] == b[0..3]);}
+}
+
+void floats()
+{
+    float[] a = [1.0f, 2.0f, 3.0f, 4.0f];
+    {assert(a == a);}
+
+    float[] b = [2.0f, 3.0f, 5.0f];
+    {assert(a != b);}
+    {assert(a[1..3] == b[0..2]);}
+}
+
+struct S
+{
+    int i;
+    int j;
+
+    int opEquals(S s)
+    {
+        return (i == s.i) && (j == s.j);
+    }
+}
+
+void structs()
+{
+    S[] a = [S(0,0), S(1,0), S(2,0), S(3,0)];
+    {assert(a == a);}
+    S[] b = [S(0,1), S(1,0), S(2,0), S(3,1)];
+    {assert(a != b);}
+    {assert(a[1..3] == b[1..3]);}
+
+    S[2] c = [S(2,0), S(3,1)];
+    {assert(c == b[2..$]);}
+}
+
+void main()
+{
+    ints();
+    floats();
+    structs();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays12.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+module arrays12;
+
+void ints()
+{
+    int[3] a = [1,2,3];
+    int[3] b = [2,3,4];
+    int[3] c = [2,5,0];
+    {assert(a < b);}
+    {assert(b > a);}
+    {assert(a < c);}
+    {assert(c > a);}
+    {assert(b < c);}
+    {assert(c > b);}
+}
+
+void main()
+{
+    ints();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays13.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,18 @@
+module arrays13;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    char[] a = "hello";
+
+    assert(a >  "hel");
+    assert(a >= "hel");
+    assert(a <  "helloo");
+    assert(a <= "helloo");
+    assert(a >  "betty");
+    assert(a >= "betty");
+    assert(a == "hello");
+    assert(a <= "hello");
+    assert(a >= "hello");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays14.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,7 @@
+module arrays14;
+
+void main()
+{
+    auto s = "hello world";
+    auto d = s.dup;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays15.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,43 @@
+module arrays15;
+
+extern(C) int printf(char*, ...);
+
+void integer()
+{
+    auto arr = new int[16];
+    arr[1] = 42;
+    arr[6] = 555;
+    print_int(arr);
+    delete arr;
+}
+
+void floating()
+{
+    auto arr = new float[6];
+    arr[1] = 3.14159265;
+    arr[3] = 1.61803399;
+    print_float(arr);
+    delete arr;
+}
+
+void print_int(int[] arr)
+{
+    printf("arr[%lu] = [", arr.length);
+    for (auto i=0; i<arr.length; i++)
+        printf("%d,", arr[i]);
+    printf("\b]\n");
+}
+
+void print_float(float[] arr)
+{
+    printf("arr[%lu] = [", arr.length);
+    for (auto i=0; i<arr.length; i++)
+        printf("%f,", arr[i]);
+    printf("\b]\n");
+}
+
+void main()
+{
+    integer();
+    floating();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays16.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,30 @@
+module tangotests.arrays2;
+
+void main()
+{
+    intarrays!(byte)();
+    intarrays!(ubyte)();
+    intarrays!(short)();
+    intarrays!(ushort)();
+    intarrays!(int)();
+    intarrays!(uint)();
+    intarrays!(long)();
+    intarrays!(ulong)();
+}
+
+void intarrays(T)()
+{
+    T[] ia = [cast(T)1,2,3,4];
+    T[] ib = [cast(T)1,2,3,4];
+    T[] ic = [cast(T)1,2,3];
+    T[] id = [cast(T)1,2,3,4,5];
+
+    assert(ia == ia);
+    assert(ia == ib);
+    assert(ia != ic);
+    assert(ia != id);
+    assert(ia > ic);
+    assert(ia !< ic);
+    assert(ia < id);
+    assert(ia !> id);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays17.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,6 @@
+module tangotests.arrays3;
+
+void main()
+{
+    const char[2][2] id = [1: "ab"];
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays18.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,27 @@
+module tangotests.arrays4;
+
+struct Str { int a,b; }
+void main() {
+    Str[] arr = new Str[64];
+
+    auto tmp = Str(1,2);
+    arr[] = tmp;
+    assert(arr[0].a == 1);
+    assert(arr[0].b == 2);
+    assert(arr[13].a == 1);
+    assert(arr[13].b == 2);
+    assert(arr[42].a == 1);
+    assert(arr[42].b == 2);
+    assert(arr[63].a == 1);
+    assert(arr[63].b == 2);
+
+    arr[] = Str(3,4);
+    assert(arr[0].a == 3);
+    assert(arr[0].b == 4);
+    assert(arr[13].a == 3);
+    assert(arr[13].b == 4);
+    assert(arr[42].a == 3);
+    assert(arr[42].b == 4);
+    assert(arr[63].a == 3);
+    assert(arr[63].b == 4);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+char[] get()
+{
+    return "hello";
+}
+
+void param(char[] s)
+{
+}
+
+void refparam(ref char[] s)
+{
+}
+
+void main()
+{
+    char[] dstr = get();
+    param(dstr);
+    refparam(dstr);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module arrays3;
+
+void main()
+{
+    int[] arr;
+    {arr = new int[25];}
+    {assert(arr.length == 25);}
+    {arr.length = arr.length + 5;}
+    {assert(arr.length == 30);}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module arrays4;
+
+void main()
+{
+    int[] arr;
+    arr ~= 3;
+    assert(arr.length == 1);
+    assert(arr[0] == 3);
+    arr ~= 5;
+    assert(arr.length == 2);
+    assert(arr[0] == 3);
+    assert(arr[1] == 5);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module arrays5;
+void main()
+{
+    auto arr = new float[5];
+    {arr[4] = 1f;}
+    {assert(arr[0] !<>= 0f);}
+    {assert(arr[1] !<>= 0f);}
+    {assert(arr[2] !<>= 0f);}
+    {assert(arr[3] !<>= 0f);}
+    {assert(arr[4] == 1f);}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,6 @@
+module arrays6;
+
+void main()
+{
+    int[4] a = [1,2,3,4];
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,32 @@
+module arrays7;
+
+extern(C) int printf(char*, ...);
+
+pragma(LLVM_internal, "notypeinfo")
+struct S
+{
+    int i;
+    float f;
+    long l;
+
+    void print()
+    {
+        printf("%d %f %lx\n", i, f, l);
+    }
+}
+
+void main()
+{
+    S[] arr;
+    S s;
+    assert(arr.length == 0);
+    arr ~= s;
+    assert(arr.length == 1);
+    arr ~= S(1,2.64,0xFFFF_FFFF_FFFF);
+    assert(arr.length == 2);
+    arr[0].print();
+    arr[1].print();
+    assert(arr[1].i == 1);
+    assert(arr[1].f > 2.63 && arr[1].f < 2.65);
+    assert(arr[1].l == 0xFFFF_FFFF_FFFF);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays8.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+module arrays8;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    char[] a = "hello ";
+    printf("  \"%s\".length = %u\n", a.ptr, a.length);
+    char[] b = "world";
+    printf("  \"%s\".length = %u\n", b.ptr, b.length);
+    char[] c = a ~ b;
+    printf("After 'a ~ b':\n");
+    printf("  \"%.*s\".length = %u\n", a.length, a.ptr, a.length);
+    printf("  \"%.*s\".length = %u\n", b.length, b.ptr, b.length);
+    printf("  \"%.*s\".length = %u\n", c.length, c.ptr, c.length);
+    assert(c.length == a.length + b.length);
+    assert(c !is a);
+    assert(c !is b);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/arrays9.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module arrays9;
+
+const int[] g = [1,2,3,4];
+
+void main()
+{
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/asm1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,31 @@
+module asm1;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    version(D_InlineAsm_X86)
+    {
+	int x;
+	asm
+	{
+	    mov EAX, 42;
+	    mov x, EAX;
+	}
+	printf("x = %d\n", x);
+    }
+    else version(D_InlineAsm_X86_64)
+    {
+        long x;
+        asm
+        {
+            mov RAX, 42L;
+            mov x, RAX;
+        }
+        printf("x = %ld\n", x);
+    }
+    else
+    {
+        static assert(0, "no inline asm for this platform yet");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/asm1_1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,21 @@
+module tangotests.asm1_1;
+
+extern(C) int printf(char*, ...);
+
+int main()
+{
+    int i = 12;
+    int* ip = &i;
+    printf("%d\n", i);
+    asm
+    {
+        mov EBX, ip;
+        mov EAX, [EBX];
+        add EAX, 8;
+        mul EAX, EAX;
+        mov [EBX], EAX;
+    }
+    printf("%d\n", i);
+    assert(i == 400);
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/asm2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+module tangotests.asm2;
+
+extern(C) int printf(char*, ...);
+
+int main()
+{
+    int i = 40;
+    int j = 2;
+    asm
+    {
+        mov EAX, i;
+        mov EBX, j;
+        add EAX, EBX;
+        mov i, EAX;
+    }
+    printf("42 = %d\n", i);
+    assert(i == 42);
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/asm3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module tangotests.asm3;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    char* fmt = "Hello D World\n";
+    printf(fmt);
+    asm
+    {
+        push fmt;
+        call printf;
+        pop EAX;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/asm4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,20 @@
+module tangotests.asm4;
+
+extern(C) int printf(char*,...);
+
+void main()
+{
+    char* fmt = "yay!\n";
+    asm
+    {
+        jmp L2;
+    L1:;
+        jmp L3;
+    L2:;
+        jmp L1;
+    L3:;
+        push fmt;
+        call printf;
+        pop EAX;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/asm5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,20 @@
+module tangotests.asm5;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i = func();
+    printf("%d\n", i);
+    assert(i == 42);
+}
+
+int func()
+{
+    asm
+    {
+    naked;
+    mov EAX, 42;
+    ret;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/asm6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,23 @@
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int a,b,c;
+    a = int.max-1;
+    b = 1;
+    asm
+    {
+        mov EAX, a;
+        mov ECX, b;
+        add EAX, ECX;
+        jo Loverflow;
+        mov c, EAX;
+    }
+
+    printf("c == %d\n", c);
+    assert(c == a+b);
+    return;
+
+Loverflow:
+    assert(0, "overflow");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/asm7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,41 @@
+module tangotests.asm7;
+
+// test massive label collisions (runtime uses Loverflow too)
+
+void main()
+{
+    int a = add(1,2);
+    int s = sub(1,2);
+    assert(a == 3);
+    assert(s == -1);
+}
+
+int add(int a, int b)
+{
+    int res;
+    asm
+    {
+        mov EAX, a;
+        add EAX, b;
+        jo Loverflow;
+        mov res, EAX;
+    }
+    return res;
+Loverflow:
+    assert(0, "add overflow");
+}
+
+int sub(int a, int b)
+{
+    int res;
+    asm
+    {
+        mov EAX, a;
+        sub EAX, b;
+        jo Loverflow;
+        mov res, EAX;
+    }
+    return res;
+Loverflow:
+    assert(0, "sub overflow");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/assign.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,23 @@
+module assign;
+
+// this is taken from std.intrinsic from gdc
+
+int mybtc(uint *p, uint bitnum)
+{
+    uint * q = p + (bitnum / (uint.sizeof*8));
+    uint mask = 1 << (bitnum & ((uint.sizeof*8) - 1));
+    int result = *q & mask;
+    *q ^= mask;
+    return result ? -1 : 0;
+}
+
+void main()
+{
+    uint i = 0xFFFF_FFFF;
+    int r = mybtc(&i, 31);
+    assert(r);
+    assert(i == 0x7FFF_FFFF);
+    r = mybtc(&i, 31);
+    assert(!r);
+    assert(i == 0xFFFF_FFFF);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/b.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,25 @@
+module b;
+
+extern(C) int printf(char*, ...);
+
+struct S
+{
+    int i;
+    float[4] f;
+}
+
+void main()
+{
+    S s;
+    int i = s.i;
+    int* p = &s.i;
+    *p = 42;
+    printf("%d == %d\n", *p, s.i);
+
+    float* f = &s.f[0];
+    printf("%f == %f\n", *f, s.f[0]);
+    *f = 3.1415;
+    printf("%f == %f\n", *f, s.f[0]);
+    s.f[0] = 123.456;
+    printf("%f == %f\n", *f, s.f[0]);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bitops.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,78 @@
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    printf("Bitwise operations test\n");
+    {   ushort a = 0xFFF0;
+        ushort b = 0x0FFF;
+        assert((a&b) == 0x0FF0);
+        assert((a|b) == 0xFFFF);
+        assert((a^b) == 0xF00F);
+    }
+    {   ubyte a = 0xFF;
+        ulong b = 0xFFFF_FFFF_FFFF_FFF0;
+        assert((a&b) == 0xF0);
+    }
+    {   ushort s = 0xFF;
+        assert((s<<1) == s*2);
+        assert((s>>>1) == s/2);
+    }
+    {   int s = -10;
+        assert((s>>1) == -5);
+        assert((s>>>1) != -5);
+    }
+
+    {   ushort a = 0xFFF0;
+        ushort b = 0x0FFF;
+        auto t = a;
+        t &= b;
+        assert(t == 0x0FF0);
+        t = a;
+        t |= b;
+        assert(t == 0xFFFF);
+        t = a;
+        t ^= b;
+        assert(t == 0xF00F);
+    }
+    {   ubyte a = 0xFF;
+        ulong b = 0xFFFF_FFFF_FFFF_FFF0;
+        a &= b;
+        assert(a == 0xF0);
+    }
+    {   ushort s = 0xFF;
+        auto t = s;
+        t <<= 1;
+        assert(t == (s*2));
+        t = s;
+        t >>>= 1;
+        assert(t == s/2);
+    }
+    {   int s = -10;
+        auto t = s;
+        t >>= 1;
+        assert(t == -5);
+        t = s;
+        t >>>= 1;
+        assert(t != -5);
+    }
+    {   struct S
+        {
+            uint i;
+            ulong l;
+        };
+        S s = S(1,4);
+        auto a = s.i | s.l;
+        assert(a == 5);
+        s.i = 0xFFFF_00FF;
+        s.l = 0xFFFF_FFFF_0000_FF00;
+        s.l ^= s.i;
+        assert(s.l == ulong.max);
+        s.i = 0x__FFFF_FF00;
+        s.l = 0xFF00FF_FF00;
+        s.i &= s.l;
+        assert(s.i == 0x00FF_FF00);
+    }
+
+    printf("  SUCCESS\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,5 @@
+module bug1;
+struct Foo { Foo opSub(ref Foo b) { return Foo(); } }
+struct Bar { Foo whee; }
+void test(ref Bar moo) { Foo nngh; auto plonk = nngh - moo.whee; }
+void main() { Bar bar; test(bar); }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug10.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,24 @@
+module bug10;
+extern(C) int printf(char*, ...);
+
+class C
+{
+    char[] msg;
+
+    this()
+    {
+    }
+    this(char[] msg)
+    {
+        this.msg = msg;
+    }
+}
+
+void main()
+{
+    auto c = new C();
+    c.msg = "world";
+    auto b = new C("hello");
+    printf("%.*s\n", b.msg.length, b.msg.ptr);
+    printf("%.*s\n", c.msg.length, c.msg.ptr);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug11.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module bug11;
+
+struct S
+{
+    int[4] arr;
+}
+
+S s=S([1,2,3,4]);
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug12.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,6 @@
+module bug12;
+
+void main()
+{
+    const char[] name="y";
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug13.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,18 @@
+module bug13;
+
+void func1(ubyte[4]* arr)
+{
+    ubyte* b = &(*arr)[0];
+    func2(&(*arr)[1]);
+}
+
+void func2(ubyte* ptr)
+{
+    assert(*ptr == 2);
+}
+
+void main()
+{
+    ubyte[4] arr = [cast(ubyte)1,2,3,4];
+    func1(&arr);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug14.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,7 @@
+module bug14;
+
+void main()
+{
+    int[] arr = new int[12];
+    int i = arr[0];
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug15.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module bug15;
+
+bool bool1(bool b) {
+    if (b) return true;
+    else return false;
+}
+
+bool bool2(bool b) {
+    if (b) {return true;}
+    else {return false;}
+}
+
+void main()
+{
+    assert(bool1(true));
+    assert(!bool2(false));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug16.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module bug16;
+
+void func(long val)
+{
+    val >>= 32;
+}
+
+void main()
+{
+    func(64L);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug17.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module bug17;
+
+struct Vec
+{
+    Vec opAdd(ref Vec b) { return Vec(); }
+    Vec opMul(double a) { return Vec(); }
+}
+void main()
+{
+    Vec foo;
+    Vec bar;
+    auto whee=foo+bar*1f;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug18.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module bug18;
+
+struct S {
+    int[9] i;
+}
+
+void main()
+{
+    int[9] i;
+    auto s = S(i);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug19.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,7 @@
+module bug19;
+
+void main()
+{
+    auto dg = (int i) { return i*2; };
+    assert(dg(2) == 4);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,4 @@
+module bug2;
+struct Vec { Vec barf() { return Vec(); } }
+class test { this(Vec whee) { } }
+void main() { Vec whee; new test(whee.barf()); }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug20.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+module bug20;
+extern(C) int printf(char*, ...);
+
+void func(void delegate() dg)
+{
+    dg();
+}
+
+void main()
+{
+    int i = 42;
+    void delegate() dg = {
+        i++;
+    };
+    printf("i = %d\n",i);
+    func(dg);
+    printf("i = %d\n",i);
+    assert(i == 43);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug21.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module bug21;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i = 42;
+    auto a = {
+        int j = i*2;
+        auto b = {
+            return j;
+        };
+        return b();
+    };
+    int i2 = a();
+    printf("%d\n", i2);
+    assert(i2 == i*2);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug22.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module bug22;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i;
+    delegate {
+        i = 42;
+    }();
+    printf("%d\n", i);
+    assert(i == 42);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug23.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module bug23;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i;
+    delegate {
+        i++;
+        delegate {
+            i++;
+        }();
+    }();
+    printf("%d\n", i);
+    assert(i == 2);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug24.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,22 @@
+module bug24;
+extern(C) int printf(char*, ...);
+
+struct S
+{
+    long l;
+    float f;
+}
+
+void main()
+{
+    S s = S(3L,2f);
+    delegate {
+        S t = S(4L, 1f);
+        delegate {
+            s.l += t.l;
+            s.f += t.f;
+        }();
+    }();
+    printf("%lu %f\n", s.l, s.f);
+    assert(s.l == 7 && s.f == 3);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug25.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module bug25;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i = 2;
+    delegate {
+        i = i*i;
+        i += i*i;
+    }();
+    printf("%d\n", i);
+    assert(i == 20);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug26.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module bug26;
+
+extern int i;
+
+void main()
+{
+    int j = i;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug27.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module bug27;
+
+int func(int a, int b)
+{
+    if (a == b)
+        return 0;
+    else if (a < b)
+        return -1;
+    else
+        return 1;
+}
+
+void main()
+{
+    int i = func(3,4);
+    assert(i == -1);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug28.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module bug28;
+
+void main()
+{
+    char[] a = "hello";
+    char[] b = "hello";
+    char[] c = "world";
+    char[] d = "somethingelse";
+    assert(a == a);
+    assert(a == b);
+    assert(a != c);
+    assert(b != c);
+    assert(a != d);
+    assert(b != d);
+    assert(c != d);
+    assert(d == d);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug29.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,16 @@
+module bug29;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int[] arr16 = new int[4];
+    {
+        void[] arr = arr16;
+        {
+            printf("%lu\n", arr.length);
+            {
+                assert(arr.length == 16);
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,24 @@
+module bug3;
+
+struct S
+{
+    int[] arr;
+    char[5] ch;
+}
+
+class C
+{
+    int[] arr;
+    char[4] crs;
+}
+
+void main()
+{
+    S s;
+    s.arr = new int[5];
+    s.arr[1] = 32;
+    int i;
+    i = s.arr[0];
+    //assert(s.arr[0] == 0);
+    //assert(s.arr[1] == 32);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug30.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,22 @@
+module bug30;
+
+void main()
+{
+    int[] a = new int[4];
+    {a[0] = 1;
+    a[1] = 2;
+    a[2] = 3;
+    a[3] = 4;}
+    int[] b = new int[4];
+    {b[0] = 1;
+    b[1] = 2;
+    b[2] = 3;
+    b[3] = 4;}
+    int[] c = new int[4];
+    {c[0] = 1;
+    c[1] = 2;
+    c[2] = 4;
+    c[3] = 3;}
+    {assert(a == b);}
+    {assert(a != c);}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug32.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module bug32;
+extern(C) int printf(char*, ...);
+
+struct S
+{
+    char[] getName() { return name; }
+    char[] name;
+}
+
+void main()
+{
+    S s = S("Kyle");
+    char[] name = s.name;
+    printf("%.*s\n", name.length, name.ptr);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug33.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,33 @@
+module bug33;
+
+extern(C) int memcmp(void*,void*,size_t);
+
+private int string_cmp(char[] s1, char[] s2)
+{
+    auto len = s1.length;
+    if (s2.length < len)
+        len = s2.length;
+    int result = memcmp(s1.ptr, s2.ptr, len);
+    if (result == 0)
+        result = cast(int)(cast(ptrdiff_t)s1.length - cast(ptrdiff_t)s2.length);
+    return result;
+}
+
+struct S
+{
+    char[] toString()
+    {
+        return "S";
+    }
+}
+
+int func()
+{
+    S a,b;
+    return string_cmp(a.toString(),b.toString());
+}
+
+void main()
+{
+    assert(func() == 0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug34.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,55 @@
+module bug34;
+
+class MyTypeInfo_Pointer
+{
+    char[] toString() { return m_next.toString() ~ "*"; }
+
+    int opEquals(Object o)
+    {   TypeInfo_Pointer c;
+
+    return this is o ||
+        ((c = cast(TypeInfo_Pointer)o) !is null &&
+         this.m_next == c.m_next);
+    }
+
+    hash_t getHash(void *p)
+    {
+        return cast(uint)*cast(void* *)p;
+    }
+
+    int equals(void *p1, void *p2)
+    {
+        return cast(int)(*cast(void* *)p1 == *cast(void* *)p2);
+    }
+
+    int compare(void *p1, void *p2)
+    {
+    if (*cast(void* *)p1 < *cast(void* *)p2)
+        return -1;
+    else if (*cast(void* *)p1 > *cast(void* *)p2)
+        return 1;
+    else
+        return 0;
+    }
+
+    size_t tsize()
+    {
+    return (void*).sizeof;
+    }
+
+    void swap(void *p1, void *p2)
+    {   void* tmp;
+    tmp = *cast(void**)p1;
+    *cast(void**)p1 = *cast(void**)p2;
+    *cast(void**)p2 = tmp;
+    }
+
+    TypeInfo next() { return m_next; }
+    uint flags() { return 1; }
+
+    TypeInfo m_next;
+}
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug35.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,7 @@
+module bug35;
+
+private const char[10] digits    = "0123456789";            /// 0..9
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug36.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module bug36;
+
+void main()
+{
+    int[] a;
+    void* cp = cast(void*)a;
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug37.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,7 @@
+module bug37;
+
+void main()
+{
+    char[] a = "hello";
+    assert(a !is null);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug38.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module bug38;
+
+void func(int* p)
+{
+    p++;
+}
+
+void main()
+{
+    int i;
+    func(&i);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug39.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module bug39;
+
+struct S
+{
+    long l;
+}
+
+void main()
+{
+    S s;
+    s.l = 23;
+    void* p = &s;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module bug4;
+
+int func(int i)
+{
+    i += 2;
+    i -= 3;
+    return i;
+}
+
+void main()
+{
+    assert(func(4) == 3);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug40.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module bug40;
+
+char[] func(void* p)
+{
+    return null;
+}
+
+void main()
+{
+    char[] function(void*) fp = &func;
+    assert(fp(null) is null);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug41.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module bug41;
+
+void main()
+{
+    char[] a = "hello world";
+    char* ap = a.ptr;
+    size_t i = 5;
+    char[] b = ap[0..i];
+    assert(b == "hello");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug42.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module bug42;
+
+void main() {
+    int i = 2;
+    switch (i) {
+    case 0:
+    case 1:
+    default:
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug43.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,16 @@
+module bug43;
+
+struct S
+{
+    ubyte[3] vals;
+}
+
+void func(ubyte[3] v)
+{
+}
+
+void main()
+{
+    S s;
+    func(s.vals);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug44.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,21 @@
+module bug44;
+
+pragma(LLVM_internal, "notypeinfo")
+struct rgb
+{
+    long l;
+}
+
+void foo()
+{
+}
+
+rgb test() {
+  scope(exit) foo();
+  return rgb();
+}
+
+void main()
+{
+    rgb r = test();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug45.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module bug45;
+
+void foo() {
+    int bar;
+    scope(exit) { bar++; }
+    if (bar) return;
+}
+
+void main() {
+    foo();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug47.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module bug47;
+
+bool func(bool a, bool b)
+{
+    if (a) b = false;
+    return b;
+}
+
+void main()
+{
+    assert(func(0,0) == 0);
+    assert(func(0,1) == 1);
+    assert(func(1,0) == 0);
+    assert(func(1,1) == 0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug48.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module bug48;
+
+size_t func(void *p)
+{
+    return cast(size_t)*cast(void* *)p;
+}
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug49.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,16 @@
+module bug49;
+
+pragma(LLVM_internal, "notypeinfo")
+struct S
+{
+    int i;
+    long l;
+}
+
+void main()
+{
+    S s;
+    s.i = 0x__FFFF_FF00;
+    s.l = 0xFF00FF_FF00;
+    s.i &= s.l;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module bug5;
+
+struct hah {
+    static hah f()
+    {
+        hah res;
+        return res;
+    }
+    hah g()
+    {
+        return hah.init;
+    }
+}
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug50.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,29 @@
+module bug50;
+extern(C) int printf(char*, ...);
+
+pragma(LLVM_internal, "notypeinfo")
+struct S
+{
+    int i;
+    float f;
+    long l;
+
+    void print()
+    {
+        printf("%d %f %lx\n", i, f, l);
+    }
+}
+
+void main()
+{
+    S s;
+    s.print();
+    s = S(1,2,3);
+    s.print();
+
+    S[] arr;
+    {arr ~= s;}
+    {arr[0].print();}
+    {arr ~= S(1,2,3);}
+    {arr[1].print();}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug51.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module bug51;
+const ubyte[3] arr1 = 1;
+const ubyte[3] arr2 = [1];
+const ubyte[3] arr3 = [1:1];
+void main()
+{
+    assert(arr1 == [cast(ubyte)1,1,1][]);
+    assert(arr2 == [cast(ubyte)1,0,0][]);
+    assert(arr3 == [cast(ubyte)0,1,0][]);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug52.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,5 @@
+module bug52;
+struct Vec { double x,y,z; }
+struct Pair(T, U) { T first; U second; }
+typedef Pair!(double, Vec) Hit;
+void main() {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug53.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,6 @@
+module bug53;
+class Foo {
+    final void bar() {}
+    void test() { bar(); }
+}
+void main() {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug54.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module bug54;
+
+extern(C) size_t strlen(char*);
+
+// creating args for main
+void d_main_args(size_t n, char** args, ref char[][] res)
+{
+    assert(res.length == n);
+    foreach(i,v; args[0..n])
+    {
+        res[i] = v[0 .. strlen(v)];
+    }
+}
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug55.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,21 @@
+module bug55;
+extern(C) int printf(char*, ...);
+
+int atoi(char[] s) {
+    int i, fac=1;
+    bool neg = (s.length) && (s[0] == '-');
+    char[] a = neg ? s[1..$] : s;
+    foreach_reverse(c; a) {
+        i += (c-'0') * fac;
+        fac *= 10;
+    }
+    return !neg ? i : -i;
+}
+
+void main()
+{
+    printf("64213 = %d\n", atoi("64213"));
+    printf("-64213 = %d\n", atoi("-64213"));
+    assert(atoi("64213") == 64213);
+    assert(atoi("-64213") == -64213);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug56.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module bug56;
+
+void main()
+{
+    int[] a;
+    a = [1,2,3];
+    {int[] b = [4,5,6];}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug57.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+import std.stdio;
+class Foo {}
+void func3()
+{
+    Foo[1] test=[new Foo];
+    writefln(test);
+}
+void main() {
+    func3();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug58.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module bug58;
+import std.stdio;
+void main()
+{
+    int[16] arr = [1,16,2,15,3,14,4,13,5,12,6,11,7,10,8,9];
+    writefln("arr = ",arr);
+    arr.sort;
+    writefln("arr.sort = ",arr);
+    assert(arr == [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug59.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,20 @@
+module bug59;
+
+void main()
+{
+    int[2] a = 0;
+    //func(a);
+    a[0] = 1;
+    int i = a[0];
+    int* p = &a[0];
+}
+
+void func(int[2] a)
+{
+    int* p = cast(int*)a;
+}
+
+void func2(int[4] a)
+{
+    int* p = 3+cast(int*)a;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module bug6;
+class wrong { }
+void bark(ref wrong s) { s = new wrong; }
+void foo(wrong tree) {
+    auto old = tree;
+    bark(tree);
+    assert(old !is tree);
+}
+void main()
+{
+    auto w = new wrong;
+    auto old = w;
+    foo(w);
+    assert(w is old);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug60.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,18 @@
+module bug60;
+extern(C) int printf(char*, ...);
+
+void func(T...)(T t)
+{
+    foreach(v;t) {
+        if (v.length) {
+            foreach(i;v) {
+                printf("%d\n", i);
+            }
+        }
+    }
+}
+void main()
+{
+    auto a = [1,2,3];
+    func(a);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug61.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,27 @@
+module bug61;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int[3] a = [42,4,141414];
+    printf("empty:\n");
+    foreach(v; a[3..$]) {
+        printf("int = %d\n", v);
+    }
+    printf("one element:\n");
+    foreach(v; a[2..$]) {
+        printf("int = %d\n", v);
+    }
+    printf("all elements:\n");
+    foreach(v; a) {
+        printf("int = %d\n", v);
+    }
+    printf("empty reversed:\n");
+    foreach_reverse(v; a[3..$]) {
+        printf("int = %d\n", v);
+    }
+    printf("all elements reversed:\n");
+    foreach_reverse(v; a) {
+        printf("int = %d\n", v);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug62.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module bug62;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int[] arr = [1,2,5,7,9];
+    int i = 0;
+    foreach(v; arr) {
+        i += v;
+    }
+    printf("sum = %d\n", i);
+    assert(i == 24);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug63.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module bug63;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    static void notnested()
+    {
+        printf("hello world\n");
+    }
+    notnested();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug64.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module bug64;
+
+void main()
+{
+    float f;
+    float* p = &f;
+    float* end1 = p+1;
+    float* end2 = 1+p;
+    assert(end1 is end2);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug66.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,5 @@
+module bug66;
+import std.stdio;
+class Scene { string name() { return "Scene"; } }
+class Group : Scene { this () { } }
+void main() { writefln((new Group).name); }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,14 @@
+module bug7;
+
+class love { }
+void bug() {
+    love[] child;
+    child.length=1;
+    assert(child[0] is null);
+    child[0]=null;
+    assert(child[0] is null);
+}
+void main()
+{
+    bug();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug70.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+module bug70;
+
+void main()
+{
+    for (;false;)
+    {
+        break;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug71.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,20 @@
+module bug71;
+
+void main()
+{
+    static TypeInfo skipCI(TypeInfo valti)
+    {
+      while (1)
+      {
+    if (valti.classinfo.name.length == 18 &&
+        valti.classinfo.name[9..18] == "Invariant")
+        valti = (cast(TypeInfo_Invariant)valti).next;
+    else if (valti.classinfo.name.length == 14 &&
+        valti.classinfo.name[9..14] == "Const")
+        valti = (cast(TypeInfo_Const)valti).next;
+    else
+        break;
+      }
+      return valti;
+    }
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug72.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module bug72;
+
+void main()
+{
+    char c = void;
+    int i = void;
+    c += i;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug73.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+int find(char[] s, dchar c)
+{
+    // c is a universal character
+    foreach (int i, dchar c2; s)
+    {
+    if (c == c2)
+        return i;
+    }
+    return -1;
+}
+
+void main()
+{
+    char[] hello = "hello world";
+    int i = find(hello, 'w');
+    assert(i == 6);
+    i = find(hello, 'z');
+    assert(i == -1);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug74.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module bug74;
+
+char[] sformat(char[] s, ...)
+{
+    TypeInfo[] ti = _arguments;
+    void* args = _argptr;
+    return "";
+}
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug75.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module bug75;
+
+void func(void delegate() dg)
+{
+}
+
+void main()
+{
+    void nested() {
+    }
+    //func(&nested);
+    void delegate() dg = &nested;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug76.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+module bug76;
+char[] fmt(...)
+{
+    return "";
+}
+void main()
+{
+    char[] s = fmt();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug77.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+module bug77;
+import tango.stdc.string;
+void main()
+{
+    size_t len;
+    void func2()
+    {
+        char* prefix = "";
+
+        void func()
+        {
+        len = strlen(prefix);
+        assert(len == 0);
+        }
+
+        func();
+    }
+    func2();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug78.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module bug78;
+
+void main()
+{
+    typedef int int_t = 42;
+    int_t i;
+    assert(i == int_t.init);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug79.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+module bug79;
+import std.c.linux.linux;
+void main()
+{
+    timespec ts; 
+    ts.tv_nsec -= 1;
+    //auto t = ts.tv_nsec - 1;
+    //t -= 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug8.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,21 @@
+module bug8;
+
+void main()
+{
+    s = newS();
+}
+
+S* s;
+
+struct S
+{
+    int i;
+}
+
+S* newS()
+{
+    auto tmp = new S;
+    tmp.i = 4;
+    return tmp;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug80.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module bug80;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    byte b = 10;
+    int i = b += 2;
+    printf("byte=%d int=%d\n", b, i);
+    assert(b == 12);
+    assert(i == 12);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/bug9.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,34 @@
+module bug9;
+extern(C) int printf(char*, ...);
+
+struct rgb
+{
+  ubyte[3] values;
+  rgb average(rgb other)
+  {
+    rgb res;
+    foreach (id, ref v; res.values) v=(values[id]+other.values[id])/2;
+    return res;
+  }
+  void print()
+  {
+    printf("[%d,%d,%d]\n", values[0], values[1], values[2]);
+  }
+}
+
+void main()
+{
+    rgb a,b;
+    a.values[0] = 10;
+    a.values[1] = 20;
+    a.values[2] = 30;
+    b.values[0] = 30;
+    b.values[1] = 20;
+    b.values[2] = 10;
+    rgb avg = a.average(b);
+    avg.print();
+    assert(avg.values[0] == 20);
+    assert(avg.values[1] == 20);
+    assert(avg.values[2] == 20);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/c.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module c;
+
+void main()
+{
+    ushort a = 0xFFF0;
+    ushort b = 0x0FFF;
+    auto t = a & b;
+    a &= b;
+    assert(t == a);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/calls1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,66 @@
+module calls1;
+import tango.core.Vararg;
+extern(C) int printf(char*, ...);
+void main()
+{
+    {int a = byVal1(3);}
+    {int a = void; byRef1(a);}
+    {char[] c = void; refType(c);}
+    {char[] c = void; refTypeByRef(c);}
+    {S s = void; structByVal(s);}
+    {S s = void; structByRef(s);}
+    {S s = void; structByPtr(&s);}
+    {printf("c-varargs %d %d %d\n", 1,2,3);}
+    {int i=3; float f=24.7; dvararg(i,f);}
+    {char[] s = "hello"; dvarargRefTy(s);}
+    {char[] ss = "hello world!"; dvarargRefTy(ss);}
+}
+
+int byVal1(int a)
+{
+    return a;
+}
+
+void byRef1(ref int a)
+{
+    a = 3;
+}
+
+void refType(char[] s)
+{
+}
+
+void refTypeByRef(ref char[] s)
+{
+}
+
+struct S
+{
+    float f;
+    double d;
+    long l;
+    byte b;
+}
+
+void structByVal(S s)
+{
+}
+
+void structByRef(ref S s)
+{
+}
+
+void structByPtr(S* s)
+{
+}
+
+void dvararg(...)
+{
+    printf("%d %.1f\n", va_arg!(int)(_argptr), va_arg!(float)(_argptr));
+}
+
+void dvarargRefTy(...)
+{
+    char[] s = va_arg!(char[])(_argptr);
+    printf("%.*s\n", s.length, s.ptr);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+extern(C) int printf(char*, ...);
+
+class C
+{
+    int i;
+    void p()
+    {
+        printf("%d\n", i);
+    }
+}
+
+void main()
+{
+    printf("should print 4\n");
+    C c = new C;
+    c.i = 4;
+    c.p();
+    //delete c;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,37 @@
+module tangotests.classes1;
+
+class Outer
+{
+    int data;
+
+    class Inner
+    {
+        long data;
+
+        this(long d)
+        {
+            data = d*2;
+        }
+    }
+
+    void func()
+    {
+        auto i = new Inner(data);
+        data += (i.data/4);
+    }
+
+    this(int d)
+    {
+        data = d;
+    }
+}
+
+void main()
+{
+    scope c = new Outer(100);
+    c.func();
+    int d = c.data;
+    printf("150 = %d\n", d);
+}
+
+extern(C) int printf(char*, ...);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes10.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module classes10;
+
+class C
+{
+    int i;
+    override char[] toString()
+    {
+        return "foobar";
+    }
+}
+
+void main()
+{
+    Object o = new C;
+    char[] s = o.toString();
+    assert(s == "foobar");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes11.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,16 @@
+module classes11;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    static class C
+    {
+        void func()
+        {
+            printf("Hello world\n");
+        }
+    }
+
+    scope c = new C;
+    c.func();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes12.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,34 @@
+class C
+{
+    int a;
+    union
+    {
+        int i;
+        double d;
+    }
+    int z;
+}
+
+void func()
+{
+    scope c = new C;
+    access1(c);
+    assert(c.i == 42);
+    access2(c);
+    assert(c.d == 2.5);
+}
+
+void access1(C c)
+{
+    c.i = 42;
+}
+
+void access2(C c)
+{
+    c.d = 2.5;
+}
+
+void main()
+{
+    func();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,25 @@
+extern(C) int printf(char*, ...);
+
+class A
+{
+    int i;
+    void f()
+    {
+        printf("A.f\n");
+    }
+}
+
+class B : A
+{
+    long l;
+    void f()
+    {
+        printf("B.f\n");
+    }
+}
+
+void main()
+{
+    A a = new B;
+    a.f();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,33 @@
+class C
+{
+    int c;
+    long f(long l)
+    {
+        return l;
+    }
+}
+
+class D : C
+{
+    int d;
+    override long f(long l)
+    {
+        return l*2;
+    }
+}
+
+void main()
+{
+    scope c = new C;
+    assert(c.f(25L) == 25);
+    scope d = new D;
+    assert(d.f(25L) == 50);
+    C cd = d;
+    assert(cd.f(25L) == 50);
+    assert(func(d,25L) == 50);
+}
+
+long func(C c, long l)
+{
+    return c.f(l);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,38 @@
+extern(C) int printf(char*, ...);
+
+class A
+{
+    int i = 42;
+    double df = 3.1415;
+    this()
+    {
+    }
+    char[] toString()
+    {
+        return "A:Object";
+    }
+}
+
+class B : A
+{
+    ubyte b;
+    char[] toString()
+    {
+        return "B:A";
+    }
+}
+
+void main()
+{
+    scope a = new A;
+    char[] as = a.toString;
+    {printf("a.toString = '%.*s'\n", as.length, as.ptr);}
+
+    Object o = a;
+    char[] os = o.toString;
+    {printf("o.toString = '%.*s'\n", os.length, os.ptr);}
+
+    scope b = new B;
+    char[] bs = b.toString;
+    {printf("b.toString = '%.*s'\n", bs.length, bs.ptr);}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,24 @@
+module classes5;
+extern(C) int printf(char*, ...);
+
+struct S
+{
+    long l;
+}
+
+class C
+{
+    C c;
+    S s;
+}
+
+void main()
+{
+    C c = new C;
+    long* lp = void;
+    {c.s.l = 64;}
+    {assert(c.s.l == 64);}
+    {lp = &c.s.l;}
+    {assert(*lp == 64);}
+    printf("classes5 success\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,38 @@
+module classes6;
+extern(C) int printf(char*, ...);
+
+class C
+{
+    void f()
+    {
+        printf("world\n");
+    }
+}
+
+class D : C
+{
+    void f()
+    {
+        printf("moon\n");
+    }
+}
+
+
+extern(C)
+{
+    void srand(uint seed);
+    int rand();
+}
+
+import llvm.intrinsic;
+
+void main()
+{
+    C c;
+    srand(readcyclecounter());
+    if (rand() % 2)
+        c = new C;
+    else
+        c = new D;
+    c.f();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,21 @@
+module classes7;
+
+class C
+{
+    int i=0;
+    void f()
+    {
+        i=42;
+    }
+    void g()
+    {
+        f();
+    }
+}
+
+void main()
+{
+    scope c = new C;
+    c.g();
+    assert(c.i == 42);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes8.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,22 @@
+class A {
+    int i;
+    int l;
+    this(bool b,bool b2=false) {
+        if (b) this = new B;
+        i = 4;
+        if (b2) this = new C;
+        l = 64;
+    }
+}
+class B : A{
+    this() {
+        super(false);
+    }
+}
+class C : A{
+    this() {
+        super(false);
+    }
+}
+void main() {
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classes9.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,47 @@
+module classes9;
+
+class C
+{
+}
+
+class D : C
+{
+}
+
+class E
+{
+}
+
+class F : E
+{
+}
+
+void main()
+{
+    {
+        D d = new D;
+        {
+            C c = d;
+            assert(c !is null);
+            D d2 = cast(D)c;
+            assert(d2 !is null);
+            E e = cast(E)d;
+            assert(e is null);
+            F f = cast(F)d;
+            assert(f is null);
+        }
+    }
+    {
+        F f = new F;
+        {
+            E e = f;
+            assert(e !is null);
+            F f2 = cast(F)e;
+            assert(f2 !is null);
+            C c = cast(C)f;
+            assert(c is null);
+            D d2 = cast(D)f;
+            assert(d2 is null);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classinfo1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,30 @@
+module classinfo1;
+
+extern(C) int printf(char*, ...);
+
+class NoPtrs
+{
+}
+
+class HasPtrs
+{
+    void* p;
+}
+
+void main()
+{
+    {
+    ClassInfo ci = NoPtrs.classinfo;
+    char[] name = ci.name;
+    printf("%.*s\n", name.length, name.ptr);
+    assert(ci.name == "classinfo1.NoPtrs");
+    assert(ci.flags & 2);
+    }
+    {
+    ClassInfo ci = HasPtrs.classinfo;
+    char[] name = ci.name;
+    printf("%.*s\n", name.length, name.ptr);
+    assert(ci.name == "classinfo1.HasPtrs");
+    assert(!(ci.flags & 2));
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classinfo2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module classinfo2;
+
+class C
+{
+}
+
+class D : C
+{
+}
+
+void main()
+{
+    D d;
+    d = new D;
+    ClassInfo ci = d.classinfo;
+    assert(ci is D.classinfo);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classinfo3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,27 @@
+module classinfo3;
+
+class C
+{
+    int i;
+    float f;
+    long l;
+    int j;
+}
+
+void main()
+{
+    auto c = C.classinfo;
+    assert(c.offTi !is null);
+    assert(c.offTi.length == 4);
+
+    size_t base = 2*size_t.sizeof;
+
+    assert(c.offTi[0].offset == base);
+    assert(c.offTi[0].ti == typeid(int));
+    assert(c.offTi[1].offset == base+4);
+    assert(c.offTi[1].ti == typeid(float));
+    assert(c.offTi[2].offset == base+8);
+    assert(c.offTi[2].ti == typeid(long));
+    assert(c.offTi[3].offset == base+16);
+    assert(c.offTi[3].ti == typeid(int));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/classinfo4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,43 @@
+module classinfo4;
+
+class C
+{
+}
+
+class D : C
+{
+    this()
+    {
+    }
+    ~this()
+    {
+    }
+}
+
+template T()
+{
+    ~this()
+    {
+    }
+}
+
+class E : D
+{
+    this()
+    {
+    }
+    ~this()
+    {
+    }
+    mixin T;
+}
+
+void main()
+{
+    assert(C.classinfo.defaultConstructor is null);
+    assert(C.classinfo.destructor is null);
+    assert(D.classinfo.defaultConstructor !is null);
+    assert(D.classinfo.destructor !is null);
+    assert(E.classinfo.defaultConstructor !is null);
+    assert(E.classinfo.destructor !is null);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/comma.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module comma;
+
+void main()
+{
+    int i=0,j=0;
+    for (; i<10; i++,j++)
+    {
+    }
+    assert(i == 10);
+    assert(j == 10);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/complex1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,21 @@
+module complex1;
+
+void main()
+{
+    cfloat cf1 = 3f + 0i;
+    cfloat cf2 = 4f + 1i;
+    cfloat cf3 = func();
+    auto c1 = cf1 + cf2;
+    auto c2 = cf2 - cf3;
+    {
+    auto c3 = cf1 * cf3;
+    {
+    auto c4 = cf2 / cf3;
+    }
+    }
+}
+
+cfloat func()
+{
+    return 3f + 1i;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/complex2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,14 @@
+module complex2;
+
+void main()
+{
+    cdouble c = 3.0 + 0i;
+    cdouble d = 2.0 + 0i;
+    {
+        cdouble c1 = c + 3.0;
+        cdouble c2 = c - 3.0i;
+    }
+    {
+        cdouble c1 = c / 2.0;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/complex3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+module complex3;
+
+void main()
+{
+    cfloat c1 = 1f + 0i;
+    cfloat c2 = 0f + 0i;
+    c2 += 1f + 0i;
+    //assert(c1 == c2);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/cond.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,45 @@
+extern(C) int printf(char*, ...);
+
+version=AndAnd;
+version=OrOr;
+
+version(AndAnd)
+void andand1()
+{
+    int a,b;
+    a = 4;
+    b = 5;
+    assert(a == 4);
+    assert(b == 5);
+    assert(a+b == 9);
+    assert(a == 4 && b == 5);
+    assert(a != 3 && b == 5);
+    assert(a > 2);
+    assert(a < 54);
+    assert(a < b);
+    assert(a > b-2);
+    
+    int apb = a+b;
+    int amb = a*b;
+    assert(apb < amb && apb > a);
+}
+
+version(OrOr)
+void oror1()
+{
+    int a,b;
+    a = 10;
+    b = 1000;
+    assert(a);
+    assert(b);
+    assert(a || b);
+    assert(a > b || a < b);
+}
+
+void main()
+{
+    printf("Conditionals test\n");
+    version(AndAnd) andand1();
+    version(OrOr) oror1();
+    printf("  SUCCESS\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/cond1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module cond1;
+
+void main()
+{
+    double a = 2;
+    double b = 4;
+    double c = (a > 0) ? a : b;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/condexp.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,14 @@
+module condexp;
+
+int f()
+{
+    return 42;
+}
+
+void main()
+{
+    int i = f() < 25 ? -1 : 1;
+    /*int j = f() > 25 ? 1 : -1;
+    assert(i);
+    assert(!j);*/
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/condexp1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module condexp1;
+
+void main()
+{
+    char[] a = "hello";
+    char[] b = "world";
+    int i = 42;
+    {
+    char[] c = i > 50 ? b : a;
+    assert(c is a);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/cyclic.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,16 @@
+void main()
+{
+    S t;
+}
+
+struct T
+{
+    int i;
+    S* s;
+}
+
+struct S
+{
+    long i;
+    T* t;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/d.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,50 @@
+module d;
+
+void main()
+{
+    int delegate() dg;
+
+    struct S
+    {
+        int i;
+        long l;
+        float f;
+
+        int func()
+        {
+            return 42;
+        }
+    }
+
+    S s;
+    auto dg2 = &s.func;
+    int i = dg2();
+    assert(i == 42);
+
+    i = f(dg2, 1);
+    assert(i == 43);
+}
+
+int f(int delegate() dg, int i)
+{
+    return dg() + i;
+}
+
+/*
+struct S
+{
+    int i;
+    float f;
+    int square()
+    {
+        return i*i;
+    }
+}
+
+S s;
+
+void main()
+{
+    auto dg = &s.square;
+}
+*/
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module tangotests.debug1;
+
+void main()
+{
+    int* ptr;
+
+    // all these should be inspectable
+    int i = 1;
+    int j = 2;
+    long k = 3;
+    float l = 4.521;
+    ubyte m = 5;
+
+    *ptr = 0;//cast(int)(i+j+k+l+m);
+}
+
+extern(C) int printf(char*, ...);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug10.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,21 @@
+module tangotests.debug10;
+
+struct Vec2
+{
+    float x,y;
+}
+
+void main()
+{
+    Vec2 v2;
+    char[] str = "hello";
+    int i = void;
+    float f = 3.14;
+    func(v2, v2, str, i, f);
+}
+
+void func(Vec2 v2, ref Vec2 rv2, char[] str, out int i, ref float f)
+{
+    int* fail;
+    *fail = 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug11.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,33 @@
+module tangotests.debug11;
+
+class C
+{
+}
+
+class D : C
+{
+    int i = 42;
+}
+
+class E : D
+{
+    float fp = 3.14f;
+}
+
+class F : E
+{
+    F f;
+}
+
+void main()
+{
+    auto c = new C;
+    auto d = new D;
+    auto e = new E;
+    auto f = new F;
+
+    auto ci = c.classinfo;
+
+    int* fail;
+    *fail = 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug12.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,24 @@
+module tangotests.debug12;
+
+interface I
+{
+    int foo();
+}
+
+class C : I
+{
+    int i = 24;
+    int foo()
+    {
+        return i;
+    }
+}
+
+void main()
+{
+    scope c = new C;
+    I i = c;
+
+    int* fail;
+    *fail = 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module tangotests.debug2;
+
+import tango.stdc.stdlib : rand;
+
+void main()
+{
+    size_t iter;
+    while (iter < 25)
+    {
+        if (rand() % 20 == 10)
+            *cast(int*)null = 0;
+        ++iter;
+    }
+    assert(0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module tangotests.debug3;
+
+void main()
+{
+    int i = 42;
+    int* ip = &i;
+
+    int* fail;
+    *fail = 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module tangotests.debug4;
+
+void main()
+{
+    char c = 'c';
+    wchar wc = 'w';
+    dchar dc = 'd';
+
+    int* fail;
+    *fail = 32;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module tangotests.debug5;
+
+void main()
+{
+    int i = 32;
+    real r = 3.1415;
+    real* p = &r;
+    func(i,r,p);
+}
+
+void func(int i, real r, real* p)
+{
+    int* fail;
+    *fail = 666;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+module tangotests.debug6;
+
+void main()
+{
+    char[] str = "hello world :)";
+
+    int* fail;
+    *fail = 32;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+module tangotests.debug7;
+
+int gi;
+
+void main()
+{
+    int* fail;
+    *fail = 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug8.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,31 @@
+module tangotests.debug8;
+
+struct Str
+{
+    size_t len;
+    void* ptr;
+}
+
+struct Foo
+{
+    long l;
+    Bar bar;
+}
+
+struct Bar
+{
+    float x,y,z;
+    Foo* foo;
+}
+
+void main()
+{
+    Str str;
+    Foo foo;
+    foo.l = 42;
+    foo.bar.y = 3.1415;
+    foo.bar.foo = &foo;
+
+    int* fail;
+    *fail = 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/debug9.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,18 @@
+module tangotests.debug9;
+
+struct Foo
+{
+    int a,b,c;
+
+    void func()
+    {
+        int* fail;
+        *fail = 0;
+    }
+}
+
+void main()
+{
+    Foo foo = Foo(1,10,73);
+    foo.func();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/dgs.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,87 @@
+
+extern(C) int printf(char*, ...);
+
+struct S
+{
+    int i;
+    int square()
+    {
+        return i*i;
+    }
+    int plus(int a)
+    {
+        return i + a;
+    }
+    int minus(int a)
+    {
+        return i - a;
+    }
+    int delegate(int) get(char op)
+    {
+        int delegate(int) rval;
+        if (op == '+')
+            rval = &plus;
+        else if (op == '-')
+            rval = &minus;
+        return rval;
+    }
+}
+
+int calldg1(int delegate(int) dg, int i)
+{
+    return dg(i);
+}
+
+void delegate() retdg()
+{
+    void delegate() dg;
+    return dg;
+}
+
+void getretdg()
+{
+    void delegate() dg;
+    dg = retdg();
+}
+
+class C
+{
+    int i;
+    void m()
+    {
+        i = 42;
+    }
+}
+
+void getclassdg()
+{
+    scope c = new C;
+    void delegate() dg = &c.m;
+    assert(c.i != 42);
+    dg();
+    assert(c.i == 42);
+}
+
+void main()
+{
+    printf("Delegate test\n");
+    S s = S(4);
+    
+    auto dg = &s.square;
+    //assert(dg() == 16);
+    //dg();
+    
+    /*auto dg1 = &s.plus;
+    assert(dg1(6) == 10);
+    
+    auto dg2 = &s.minus;
+    assert(calldg1(dg2,30) == -26);
+    
+    auto dg3 = s.get('+');
+    assert(dg3(16) == 20);
+    
+    getretdg();
+    getclassdg();*/
+    
+    printf("  SUCCESS\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/dotproduct.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,36 @@
+extern(C) int printf(char*, ...);
+
+struct vec3
+{
+    float x,y,z;
+
+    float dot(ref vec3 v)
+    {
+        return x*v.x + y*v.y + z*v.z;
+    }
+
+    void print(char[] n)
+    {
+        printf("%.*s = vec3(%.4f, %.4f, %.4f)\n", n.length, n.ptr, x,y,z);
+    }
+}
+
+int main()
+{
+    printf("Dot Product test\n");
+
+    const f = 0.7071067811865474617;
+    vec3 v = vec3(f,f,0);
+    vec3 w = vec3(f,0,f);
+
+    v.print("v");
+    w.print("w");
+
+    auto dp = v.dot(w);
+    printf("v · w = %f\n", dp);
+    assert(dp > 0.4999 && dp < 0.5001);
+
+    printf("  SUCCESS\n");
+    return 0;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/e.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,25 @@
+module e;
+
+extern(C) int printf(char*, ...);
+
+struct C
+{
+    float x=0,y=0;
+
+    float dot(ref C b)
+    {
+        return x*b.x + y*b.y;
+    }
+}
+
+void main()
+{
+    C a,b;
+    a.x = 2;
+    a.y = 6;
+    b.x = 3;
+    b.y = 5;
+    float f = a.dot(b);
+    printf("%f\n", f);
+    assert(f == 36);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/enum1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module enum1;
+
+void main()
+{
+    enum {
+        HELLO,
+        WORLD
+    }
+
+    assert(HELLO == 0);
+    assert(WORLD == 1);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/enum2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module enum2;
+
+void main()
+{
+    enum E {
+        A,B
+    }
+    E e = E.B;
+    assert(e == E.B);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/enum3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module enum3;
+
+enum GE : ushort
+{
+    A,B,C
+}
+
+void main()
+{
+    GE e = GE.B;
+    size_t s = GE.sizeof;
+    assert(e == 1);
+    assert(e.sizeof == s);
+    assert(s == 2);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/f.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module f;
+
+struct S
+{
+    long l;
+}
+
+void main()
+{
+    S s;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/floatcmp.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,161 @@
+module floatcmp;
+extern(C) int printf(char*, ...);
+
+void eq()
+{
+    float _3 = 3;
+    assert(!(_3 == 4));
+    assert(!(_3 == 2));
+    assert(_3 == 3);
+    assert(!(_3 == float.nan));
+}
+
+void neq()
+{
+    float _3 = 3;
+    assert(_3 != 4);
+    assert(_3 != 2);
+    assert(!(_3 != 3));
+    assert(_3 != float.nan);
+}
+
+void gt()
+{
+    float _3 = 3;
+    assert(_3 > 2);
+    assert(!(_3 > 4));
+    assert(!(_3 > 3));
+    assert(!(_3 > float.nan));
+}
+
+void ge()
+{
+    float _3 = 3;
+    assert(_3 >= 2);
+    assert(!(_3 >= 4));
+    assert(_3 >= 3);
+    assert(!(_3 >= float.nan));
+}
+
+void lt()
+{
+    float _3 = 3;
+    assert(_3 < 4);
+    assert(!(_3 < 2));
+    assert(!(_3 < 3));
+    assert(!(_3 < float.nan));
+}
+
+void le()
+{
+    float _3 = 3;
+    assert(_3 <= 4);
+    assert(!(_3 <= 2));
+    assert(_3 <= 3);
+    assert(!(_3 <= float.nan));
+}
+
+void uno()
+{
+    float _3 = 3;
+    assert(!(_3 !<>= 2));
+    assert(!(_3 !<>= 3));
+    assert(!(_3 !<>= 4));
+    assert(_3 !<>= float.nan);
+}
+
+void lg()
+{
+    float _3 = 3;
+    assert(_3 <> 4);
+    assert(_3 <> 2);
+    assert(!(_3 <> 3));
+    assert(!(_3 <> float.nan));
+}
+
+void lge()
+{
+    float _3 = 3;
+    assert(_3 <>= 4);
+    assert(_3 <>= 2);
+    assert(_3 <>= 3);
+    assert(!(_3 <>= float.nan));
+}
+
+void ugt()
+{
+    float _3 = 3;
+    assert(_3 !<= 2);
+    assert(!(_3 !<= 4));
+    assert(!(_3 !<= 3));
+    assert(_3 !<= float.nan);
+}
+
+void uge()
+{
+    float _3 = 3;
+    assert(_3 !< 2);
+    assert(!(_3 !< 4));
+    assert(_3 !< 3);
+    assert(_3 !< float.nan);
+}
+
+void ult()
+{
+    float _3 = 3;
+    assert(_3 !>= 4);
+    assert(!(_3 !>= 2));
+    assert(!(_3 !>= 3));
+    assert(_3 !>= float.nan);
+}
+
+void ule()
+{
+    float _3 = 3;
+    assert(_3 !> 4);
+    assert(!(_3 !> 2));
+    assert(_3 !> 3);
+    assert(_3 !> float.nan);
+}
+
+void ueq()
+{
+    float _3 = 3;
+    assert(!(_3 !<> 2));
+    assert(!(_3 !<> 4));
+    assert(_3 !<> 3);
+    assert(_3 !<> float.nan);
+}
+
+void main()
+{
+    printf("floating point comparison test\n");
+    
+    eq();
+    neq();
+    gt();
+    ge();
+    lt();
+    le();
+    uno();
+    lg();
+    lge();
+    ugt();
+    uge();
+    ult();
+    ule();
+    ueq();
+    
+    printf("  SUCCESS\n");
+}
+
+/+
+void gt()
+{
+    float _3 = 3;
+    assert();
+    assert();
+    assert();
+    assert();
+}
++/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/foreach1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module foreach1;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    static arr = [1,2,3,4,5];
+
+    printf("forward");
+    foreach(v;arr) {
+        printf(" %d",v);
+    }
+    printf("\nreverse");
+    foreach_reverse(v;arr) {
+        printf(" %d",v);
+    }
+    printf("\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/foreach2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module foreach2;
+extern(C) int printf(char*, ...);
+void main()
+{
+    static arr = [1.0, 2.0, 4.0, 8.0, 16.0];
+    foreach(i,v; arr)
+    {
+        printf("arr[%d] = %f\n", i, v);
+    }
+    printf("-------------------------------\n");
+    foreach_reverse(i,v; arr)
+    {
+        printf("arr[%d] = %f\n", i, v);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/foreach3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+module foreach3;
+extern(C) int printf(char*, ...);
+void main()
+{
+    static str = ['h','e','l','l','o'];
+    foreach(i,v; str) {
+        printf("%c",v);
+    }
+    printf("\n");
+
+    foreach(i,v; str) {
+        v++;
+    }
+
+    foreach(i,v; str) {
+        printf("%c",v);
+    }
+    printf("\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/foreach4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+module foreach4;
+extern(C) int printf(char*, ...);
+void main()
+{
+    int[] arr = new int[4];
+    foreach(i,v;arr) {
+        printf("arr[%u] = %d\n",i,v);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/foreach5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,24 @@
+module foreach5;
+extern(C) int printf(char*, ...);
+void main()
+{
+    int[3] arr = [1,2,3];
+
+    foreach(v;arr) {
+        v++;
+    }
+
+    printf("%d\n", arr[0]);
+    assert(arr[0] == 1);
+    assert(arr[1] == 2);
+    assert(arr[2] == 3);
+
+    foreach(ref v;arr) {
+        v++;
+    }
+
+    printf("%d\n", arr[0]);
+    assert(arr[0] == 2);
+    assert(arr[1] == 3);
+    assert(arr[2] == 4);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/foreach6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module foreach6;
+
+struct S
+{
+    long l;
+    float f;
+}
+
+void main()
+{
+    S[4] arr = void;
+    foreach(i,v;arr) {
+        v = S(i, i*2.5);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/foreach7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module foreach7;
+
+void main()
+{
+    int[4] a = [1,2,3,4];
+    int i;
+    foreach(v; a[0..3])
+    {
+        i += v;
+    }
+    assert(i == 6);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/foreach8.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,18 @@
+module tangotests.foreach1;
+
+extern(C) int printf(char*, ...);
+
+int main(){
+    dchar[] array="\u2260";
+    int test=0;
+    int count=0;
+    assert(count==0);
+    foreach(int index, char obj; array){
+        printf("%d\n", obj);
+        test+=obj;
+        count++;
+    }
+    assert(count==3);
+    assert(test==0x20b);
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/forwdecl.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+struct S
+{
+    S* s;
+    S** ss;
+    S*[4] s4;
+}
+
+void main()
+{
+    S s;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/funcptr.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,68 @@
+extern(C) int printf(char*, ...);
+
+int return_six()
+{
+    return 6;
+}
+
+int add_int(int a, int b)
+{
+    return a+b;
+}
+
+int sub_int(int a, int b)
+{
+    return a-b;
+}
+
+alias int function(int,int) binfn_t;
+
+int binop_int(binfn_t op, int a, int b)
+{
+    return op(a,b);
+}
+
+binfn_t get_binop_int(char op)
+{
+    binfn_t fn;
+    if (op == '+')
+        fn = &add_int;
+    else if (op == '-')
+        fn = &sub_int;
+    return fn;
+}
+
+extern(C) float mul_float(float a, float b)
+{
+    return a * b;
+}
+
+void function_pointers()
+{
+    int function() fn = &return_six;
+    assert(fn() == 6);
+
+    binfn_t binfn = &add_int;
+    assert(binfn(4,1045) == 1049);
+
+    assert(binop_int(binfn, 10,656) == 666);
+
+    binfn = get_binop_int('+');
+    assert(binop_int(binfn, 10,100) == 110);
+    binfn = get_binop_int('-');
+    assert(binop_int(binfn, 10,100) == -90);
+
+    {
+    auto ffn = &mul_float;
+    float ftmp = mul_float(2.5,5);
+    assert(ftmp == 12.5);
+    assert(ftmp > 12.49 && ftmp < 12.51);
+    }
+}
+
+void main()
+{
+    printf("Function pointer test\n");
+    function_pointers();
+    printf("  SUCCESS\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/funcs.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,50 @@
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    printf("Testing functions\n");
+    int i = 5;
+    assert(a(i) == 110);
+    assert(i == 11);
+
+    S s;
+    s.i = 5;
+    d(s);
+    assert(s.i == 5);
+    e(s);
+    assert(s.i == 6);
+
+    printf("  SUCCESS\n");
+}
+
+int a(ref int i)
+{
+    i*=2;
+    return b(i);
+}
+
+int b(ref int i)
+{
+    i++;
+    return c(i);
+}
+
+int c(int i)
+{
+    return i*10;
+}
+
+struct S
+{
+    int i;
+}
+
+void d(S s)
+{
+    s.i++;
+}
+
+void e(ref S s)
+{
+    s.i++;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/funcs2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+module funcs2;
+
+void func()
+{
+}
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/g.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module g;
+
+extern(C) int printf(char*, ...);
+
+void func(char[] str)
+{
+    printf("%.*s\n", str.length, str.ptr);
+}
+
+void main()
+{
+    char[] arr = "Hello World!";
+    func(arr);
+    func("ditto");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/gc1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module tangotests.gc1;
+
+void main()
+{
+    int[] arr;
+
+    for (int i=0; i<100; ++i)
+    {
+        arr ~= new int[1000];
+    }
+
+    printf("arr.length = %u\n", arr.length);
+}
+
+extern(C) int printf(char*, ...);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/globals1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module globals1;
+extern(C) int printf(char*, ...);
+
+char[] gstr = "hello world";
+
+void main()
+{
+    printf("%.*s\n", gstr.length, gstr.ptr);
+    char[] str = gstr;
+    printf("%.*s\n", str.length, str.ptr);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/globals2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module globals2;
+
+template Bool(bool b)
+{
+    const bool Bool = b;
+}
+
+void main()
+{
+    assert(Bool!(true));
+    assert(!Bool!(false));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/goto1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module goto1;
+
+void main()
+{
+    int i;
+    goto lbl;
+    i++;
+lbl:
+    assert(i == 0);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/h.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,27 @@
+interface Iin
+{
+    void[] read(size_t n);
+}
+
+interface Iout
+{
+    size_t write(void[] d);
+}
+
+class C : Iin
+{
+    void[] read(size_t n)
+    {
+        return null;
+    }
+
+    size_t write(void[] d)
+    {
+        return 0;
+    }
+}
+
+void main()
+{
+    scope c = new C;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/i.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,20 @@
+interface IN
+{
+    void func();
+}
+abstract class AC
+{
+    abstract void func();
+    long ll;
+}
+class C : AC
+{
+    void func()
+    {
+    }
+}
+
+void main()
+{
+    scope c = new C;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/imag1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,7 @@
+module imag1;
+
+void main()
+{
+    ifloat f = 1.0i;
+    auto x = 2.0i*f;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/imports2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,6 @@
+module imports2;
+import std.stdio;
+
+void main() {
+    writefln("Hello world!"[]);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/imports_1of2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module imports_1of2;
+
+import imports_2of2;
+
+void main()
+{
+    assert(func() == 42);
+    S s;
+    s.l = 32;
+    assert(s.l == 32);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/imports_2of2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module imports_2of2;
+
+int func()
+{
+    return 42;
+}
+
+struct S
+{
+    long l;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/innerclass1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,30 @@
+module innerclass1;
+extern(C) int printf(char*, ...);
+
+class Outer
+{
+    int i;
+    class Inner
+    {
+        int func()
+        {
+            return i;
+        }
+    }
+}
+
+void main()
+{
+    Outer o = new Outer;
+    {
+        o.i = 42;
+        {
+            auto i = o.new Inner;
+            {
+                int x = i.func();
+                assert(x == 42);
+            }
+        }
+    }
+    printf("SUCCESS\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/interface1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,24 @@
+module interface1;
+
+extern(C) int printf(char*,...);
+
+interface Inter
+{
+    void func();
+}
+
+class Class : Inter
+{
+    override void func()
+    {
+        printf("hello world\n");
+    }
+}
+
+void main()
+{
+    scope c = new Class;
+    c.func();
+    Inter i = c;
+    i.func();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/interface2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,37 @@
+module interface2;
+
+extern(C) int printf(char*,...);
+
+interface A
+{
+    void a();
+}
+
+interface B
+{
+    void b();
+}
+
+class C : A,B
+{
+    int i = 0;
+    override void a()
+    {
+        printf("hello from C.a\n");
+    }
+    override void b()
+    {
+        printf("hello from C.b\n");
+    }
+}
+
+void main()
+{
+    scope c = new C;
+    {c.a();
+    c.b();}
+    {A a = c;
+    a.a();}
+    {B b = c;
+    b.b();}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/interface3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,30 @@
+module interface3;
+
+extern(C) int printf(char*,...);
+
+interface I
+{
+    void func();
+}
+
+class C : I
+{
+    int i = 42;
+    override void func()
+    {
+        printf("hello %d\n", i);
+        i++;
+    }
+}
+
+void main()
+{
+    scope c = new C;
+    {c.func();}
+    {
+        I i = c;
+        {i.func();}
+    }
+    {printf("final %d\n", c.i);}
+    {assert(c.i == 44);}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/interface4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,35 @@
+module interface4;
+
+extern(C) int printf(char*,...);
+
+interface I
+{
+    void func();
+}
+
+interface I2
+{
+    void func();
+}
+
+class C : I,I2
+{
+    int i = 42;
+    override void func()
+    {
+        printf("hello %d\n", i);
+        i++;
+    }
+}
+
+void main()
+{
+    scope c = new C;
+    c.func();
+    I i = c;
+    i.func();
+    I2 i2 = c;
+    i2.func();
+    printf("final %d\n", c.i);
+    assert(c.i == 45);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/interface5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,34 @@
+module interface5;
+
+extern(C) int printf(char*,...);
+
+interface I
+{
+    void func();
+}
+
+class C : I
+{
+    int i;
+    void func()
+    {
+        printf("C\n");
+        i++;
+    }
+}
+
+void main()
+{
+    C c = new C;
+    c.func();
+    {
+        I i = c;
+        c.func();
+
+        C c2 = cast(C)i;
+        c2.func();
+
+        c.func();
+        assert(c.i == 4);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/interface6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,46 @@
+module interface6;
+
+extern(C) int printf(char*,...);
+
+interface I
+{
+    void Ifunc();
+}
+
+interface J
+{
+    void Jfunc();
+}
+
+class C : I,J
+{
+    int i;
+    int j;
+    void Ifunc()
+    {
+        i++;
+    }
+    void Jfunc()
+    {
+        j++;
+    }
+}
+
+void main()
+{
+    C c = new C;
+    c.Ifunc();
+    c.Jfunc();
+    I i = c;
+    i.Ifunc();
+    J j = c;
+    j.Jfunc();
+    C c2 = cast(C)i;
+    c2.Ifunc();
+    c2.Jfunc();
+    C c3 = cast(C)j;
+    c3.Ifunc();
+    c3.Jfunc();
+    assert(c.i == 4);
+    assert(c.j == 4);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/interface7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,23 @@
+module interface7;
+
+extern(C) int printf(char*,...);
+
+interface I
+{
+}
+
+class C : I
+{
+}
+
+void main()
+{
+    I i = new C;
+    ClassInfo ci = i.classinfo;
+    char[] name = ci.name;
+    printf("ci.name = %.*s\n", name.length, name.ptr);
+    ClassInfo cI = I.classinfo;
+    name = cI.name;
+    printf("cI.name = %.*s\n", name.length, name.ptr);
+    assert(ci is cI);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/intrinsics.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,31 @@
+import llvm.intrinsic;
+
+extern(C) int printf(char*,...);
+extern(C) int scanf(char*,...);
+
+void main()
+{
+    {
+    float f;
+    printf("Enter float: ");
+    scanf("%f", &f);
+    float sf = llvm_sqrt(f);
+    printf("sqrt(%f) = %f\n", f, sf);
+    }
+    
+    {
+    double d;
+    printf("Enter double: ");
+    scanf("%lf", &d);
+    double sd = llvm_sqrt(d);
+    printf("sqrt(%lf) = %lf\n", d, sd);
+    }
+    
+    {
+    real d;
+    printf("Enter real: ");
+    scanf("%lf", &d);
+    real sd = llvm_sqrt(d);
+    printf("sqrt(%lf) = %lf\n", d, sd);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/j.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,44 @@
+module j;
+
+interface Inter1
+{
+    int func1();
+}
+
+interface Inter2
+{
+    int func2();
+}
+
+class C12 : Inter1, Inter2
+{
+    int func1()
+    {
+        return 1;
+    }
+    int func2()
+    {
+        return 2;
+    }
+}
+
+void func(Object c)
+{
+    auto i1 = cast(Inter1)c;
+    assert(i1.func1() == 1);
+    auto i2 = cast(Inter2)c;
+    assert(i2.func2() == 2);
+    auto j1 = cast(Inter1)i2;
+    assert(j1.func1() == 1);
+    auto j2 = cast(Inter2)i1;
+    assert(j2.func2() == 2);
+}
+
+void main()
+{
+    scope c = new C12;
+    func(c);
+    printf("OK\n");
+}
+
+extern(C) int printf(char*,...);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/k.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,31 @@
+interface Inter
+{
+    int func();
+}
+
+extern(C) int printf(char*, ...);
+
+class InterClass : Inter
+{
+    int func()
+    {
+        return printf("InterClass.func()\n");
+    }
+}
+
+alias int delegate() dg_t;
+
+void main()
+{
+    scope c = new InterClass;
+
+    {
+    Inter i = cast(Inter)c;
+        {
+        dg_t dg = &i.func;
+            {
+            int j = dg();
+            }
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/lazy1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module tangotests.lazy1;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    lazystr("whee\n");
+}
+
+void lazystr(lazy char[] msg)
+{
+    printf("%.*s", msg.length, msg.ptr);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/lazy2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,18 @@
+module tangotests.lazy2;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    lazy1("hello\n");
+}
+
+void lazy1(lazy char[] str)
+{
+    lazy2(str);
+}
+
+void lazy2(lazy char[] msg)
+{
+    printf("%.*s", msg.length, msg.ptr);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/loops1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module tangotests.loops1;
+
+void main()
+{
+    size_t n;
+    int x;
+    ushort foo;
+    for (n=0; n<8; n++,x++)
+    {
+        foo >>= 1;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/m.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+void main()
+{
+    int* e = __errno_location();
+    printf("&errno = %p\n", e);
+    printf("errno = %d\n", *e);
+}
+
+extern(C):
+int* __errno_location();
+int printf(char*,...);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/mainargs1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module mainargs1;
+
+extern(C) int printf(char*,...);
+
+void main(char[][] args)
+{
+    foreach(v; args)
+    {
+        printf("%.*s\n", v.length, v.ptr);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/marray1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+module tangotest.marray1;
+
+void main()
+{
+    int[][] arr;
+    int[] a = [1,2];
+    int[] b = [6,7,8,9];
+    arr ~= a;
+    arr ~= b;
+    assert(a.length == 2);
+    assert(b.length == 4);
+    assert(arr.length == 2);
+    assert(arr[0][0] == 1);
+    assert(arr[0][1] == 2);
+    assert(arr[1][0] == 6);
+    assert(arr[1][1] == 7);
+    assert(arr[1][2] == 8);
+    assert(arr[1][3] == 9);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/marray2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module tangotests.marray2;
+
+void main()
+{
+    int[][] ma = new int[][](2,4);
+    assert(ma.length == 2);
+    assert(ma[0].length == 4);
+    assert(ma[1].length == 4);
+    ma[0][3] = 32;
+    ma[1][2] = 123;
+    ma[0][0] = 55;
+    assert(ma[0][3] == 32);
+    assert(ma[1][2] == 123);
+    assert(ma[0][0] == 55);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/marray3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,23 @@
+module tangotests.marray3;
+
+void main()
+{
+    int[][][] ma = new int[][][](2,4,3);
+    assert(ma.length == 2);
+    assert(ma[0].length == 4);
+    assert(ma[0][0].length == 3);
+    assert(ma[0][1].length == 3);
+    assert(ma[0][2].length == 3);
+    assert(ma[0][3].length == 3);
+    assert(ma[1].length == 4);
+    assert(ma[1][0].length == 3);
+    assert(ma[1][1].length == 3);
+    assert(ma[1][2].length == 3);
+    assert(ma[1][3].length == 3);
+    ma[0][3][1] = 32;
+    ma[1][2][2] = 123;
+    ma[0][0][3] = 55;
+    assert(ma[0][3][1] == 32);
+    assert(ma[1][2][2] == 123);
+    assert(ma[0][0][3] == 55);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/mem2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module tangotests.mem2;
+
+void main()
+{
+    int* ip = new int;
+    assert(*ip == 0);
+    *ip = 4;
+    assert(*ip == 4);
+    delete ip;
+    assert(ip is null);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/mem3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module tangotests.mem3;
+
+void main()
+{
+    int[] arr;
+    arr ~= [1,2,3];
+    assert(arr[0] == 1);
+    assert(arr[1] == 2);
+    assert(arr[2] == 3);
+    delete arr;
+    assert(arr is null);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/mem5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,24 @@
+module tangotests.mem5;
+
+class SC
+{
+    int* ip;
+    this()
+    {
+        ip = new int;
+    }
+    ~this()
+    {
+        delete ip;
+    }
+    void check()
+    {
+        assert(ip !is null);
+    }
+}
+
+void main()
+{
+    scope sc = new SC;
+    sc.check();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/mem6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module tangotests.mem6;
+
+extern(C) int printf(char*,...);
+
+int main(){
+        int[] index;
+        char[] value;
+
+        foreach(int i, char c; "_\U00012345-"){
+                printf("str[%d] = %d\n", i , cast(int)c);
+                index ~= i;
+                //value ~= c;
+        }
+        printf("done\n");
+
+        return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/memory1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module memory1;
+
+extern(C) int printf(char*,...);
+
+void main()
+{
+    auto a = new int[16];
+    {printf("array.length = %u\n", a.length);}
+    {a.length = a.length + 1;}
+    {printf("array.length = %u\n", a.length);}
+    {assert(a.length == 17);}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/moduleinfo1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,33 @@
+module moduleinfo1;
+
+static this()
+{
+}
+
+static this()
+{
+}
+
+static ~this()
+{
+}
+
+static ~this()
+{
+}
+
+unittest
+{
+}
+
+class C
+{
+}
+
+class D : C
+{
+}
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/moduleinfo2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module moduleinfo2;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    printf("listing modules:\n");
+    foreach(m; ModuleInfo)
+    {
+        printf("  %.*s\n", m.name.length, m.name.ptr);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/multiarr1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,21 @@
+module multiarr1;
+
+void main()
+{
+    int[16][16] a;
+    assert(a[0][0] == 0);
+    assert(a[0][1] == 0);
+    assert(a[0][2] == 0);
+    assert(a[0][3] == 0);
+    assert(a[10][13] == 0);
+    assert(a[15][15] == 0);
+    a[10][13] = 42;
+    assert(a[0][0] == 0);
+    assert(a[10][13] == 42);
+    assert(a[15][15] == 0);
+    {
+        int* l = cast(int*)a;
+        l += 10*16+13;
+        assert(*l == 42);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/multiarr2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,7 @@
+module multiarr2;
+
+void main()
+{
+    static float[1][2][3] arr;
+    assert(arr[2][1][0] !<>= float.nan);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/multiarr3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module multiarr3;
+
+void main()
+{
+    static int[2][2] arr = [[1,2],[3,4]];
+    assert(arr[0][0] == 1);
+    assert(arr[0][1] == 2);
+    assert(arr[1][0] == 3);
+    assert(arr[1][1] == 4);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/multiarr4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,14 @@
+module multiarr4;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    char[][] a;
+    a.length = 2;
+    a[0] = "hello";
+    a[1] = "world";
+    foreach(v;a)
+    {
+        printf("%.*s\n", v.length, v.ptr);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/n.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,18 @@
+struct Structure
+{
+    static void static_method()
+    {
+    }
+
+    void method()
+    {
+    }
+}
+
+void main()
+{
+    //Structure.static_method();
+
+    Structure s;
+    s.method();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/neg.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module neg;
+
+void main()
+{
+    int i = 32;
+    long l = 55;
+    float f = 23;
+    double d = 4;
+    assert(-i == -32);
+    assert(-l == -55);
+    assert(-f == -23);
+    assert(-d == -4);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module nested1;
+
+void func(int i)
+{
+    (){
+        assert(i == 3);
+    }();
+}
+
+void main()
+{
+    func(3);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested10.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,22 @@
+module nested10;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int j = 3;
+    void F()
+    {
+        int i = j;
+        printf("F: i = %d, j = %d\n", i, j);
+        void G()
+        {
+            printf("G: i = %d, j = %d\n", i, j);
+            j += i;
+        }
+        G();
+    }
+    F();
+    printf("6 = %d\n", j);
+    assert(j == 6);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested11.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,44 @@
+module nested11;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i;
+
+    void f()
+    {
+        i++;
+
+        void g()
+        {
+            i++;
+
+            void h()
+            {
+                printf("i = %d\n", i);
+            }
+
+            h();
+        }
+
+        g();
+    }
+
+    f();
+    assert(i == 2);
+
+    void foo()
+    {
+        i = 42;
+    }
+
+    void bar()
+    {
+        foo();
+    }
+
+    bar();
+    printf("i = %d\n", i);
+    assert(i == 42);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested12.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,23 @@
+module nested12;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    func();
+}
+
+void func()
+{
+    void a(int i)
+    {
+        printf("%d\n", i);
+    }
+
+    void b()
+    {
+        a(42);
+    }
+
+    b();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested13.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,32 @@
+module tangotests.nested2;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int var = 2;
+
+    void exec(void delegate() dg)
+    {
+        printf("var = %d\n", var);
+        dg();
+    }
+
+    void foo()
+    {
+        printf("var = %d\n", var);
+        assert(var == 5);
+    }
+
+    void bar()
+    {
+        printf("var = %d\n", var);
+        var += 3;
+        exec(&foo);
+    }
+
+    printf("var = %d\n", var);
+    exec(&bar);
+
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,16 @@
+module nested2;
+
+void func(ref int i)
+{
+    delegate {
+        assert(i == 3);
+        i++;
+    }();
+}
+
+void main()
+{
+    int i = 3;
+    func(i);
+    assert(i == 4);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module nested3;
+
+void main()
+{
+    int i;
+    void test()
+    {
+        i = 3;
+    }
+    test();
+    assert(i == 3);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module nested4;
+
+void func(void delegate() dg) {
+  auto v = (){
+    dg();
+  };
+}
+
+void main()
+{
+    func({});
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,22 @@
+module nested5;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i = 42;
+
+    printf("Hello world %d\n", i++);
+
+    class C
+    {
+        void func()
+        {
+            printf("Hello world %d\n", i++);
+            //i++;
+        }
+    }
+
+    scope c = new C;
+    c.func();
+    assert(i == 44);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,33 @@
+module nested6;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i = 42;
+
+    printf("main() %d\n", i++);
+
+    class C
+    {
+        void func()
+        {
+            printf("C.func() %d\n", i++);
+
+            class C2
+            {
+                void func2()
+                {
+                    printf("C2.func2() %d\n", i++);
+                }
+            }
+
+            {
+                scope c2 = new C2;
+                c2.func2();
+            }
+        }
+    }
+
+    scope c = new C;
+    c.func();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,33 @@
+module nested7;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i;
+    i = 52;
+    printf("i = %d\n", i);
+
+    void func()
+    {
+        i++;
+
+        void func2()
+        {
+            i++;
+
+            void func3()
+            {
+                i++;
+            }
+
+            func3();
+        }
+
+        func2();
+    }
+
+    func();
+
+    printf("i = %d\n", i);
+    assert(i == 55);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested8.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,31 @@
+module nested8;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i = 1;
+    void func()
+    {
+        printf("func()\n");
+        i++;
+        void func2()
+        {
+            printf(" func2()\n");
+            int j = i + 1;
+            void func3()
+            {
+                printf("  func3()\n");
+                j++;
+                printf("  done = %d\n", j);
+            }
+            func3();
+            i = j;
+            printf(" done = %d\n", j);
+        }
+        func2();
+        printf("done\n");
+    }
+    func();
+    printf("i == %d\n", i);
+    assert(i == 4);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/nested9.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,14 @@
+module nested9;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i = 42;
+    int func()
+    {
+        return i + 1;
+    }
+    int j = func();
+    printf("j = %d\n", j);
+    assert(j == 43);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/o.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,24 @@
+extern(C) int printf(char*, ...);
+
+void func()
+{
+    try
+    {
+        printf("try\n");
+        return 0;
+    }
+    catch
+    {
+        printf("catch\n");
+    }
+    finally
+    {
+        printf("finally\n");
+    }
+    return 0;
+}
+
+void main()
+{
+    func();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/pointers.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,22 @@
+module pointers;
+
+struct S
+{
+    long l;
+}
+
+void main()
+{
+    int j = 42;
+    int* p = &j;
+
+    auto t = *p;
+    *p ^= t;
+
+    *p = ~t;
+
+    S s;
+    S* sp = &s;
+    *sp = s;
+    s = *sp;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/pt.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,30 @@
+
+extern(C) int printf(char*, ...);
+
+int main()
+{
+    char[16] s = void;
+    {
+    char[] sd = s;
+    {
+    s[0] = 'a';
+    s[1] = 'b';
+    s[2] = 'c';
+    }
+
+    printf("%p %p\n", s.ptr, sd.ptr);
+    printf("%c%c%c\n", s[0], s[1], s[2]);
+    }
+
+    char[16] s1 = void;
+    char[16] s2 = void;
+    char[] d1 = s1;
+
+    {
+        printf("%p\n%p\n%p\n", s1.ptr, s2.ptr, d1.ptr);
+    }
+
+    int[16] arr;
+
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/ptrarith.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,35 @@
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    printf("Pointer arithmetic test\n");
+    int* p;
+    printf("0x%x\n", p);
+    assert(p++ is null);
+    assert(cast(size_t)p == 4);
+    printf("0x%x\n", p);
+    p--;
+    assert(p is null);
+    printf("0x%x\n", p);
+    int d = 4;
+    p+=d;
+    printf("0x%x\n", p);
+    assert(cast(size_t)p == 16);
+    d = 2;
+    p+=d;
+    printf("0x%x\n", p);
+    assert(cast(size_t)p == 0x18);
+    d = 6;
+    p-=d;
+    printf("0x%x\n", p);
+    assert(p is null);
+    printf("  SUCCESS\n");
+}
+
+void fill_byte_array(ubyte* a, size_t n, ubyte v)
+{
+    auto p = a;
+    auto end = a+n;
+    while (p !is end)
+        *p++ = v;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/r.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,27 @@
+extern(C) int printf(char*, ...);
+
+class C
+{
+    void dump()
+    {
+        printf("C dumped\n");
+    }
+}
+
+void heap()
+{
+    auto c = new C;
+    c.dump();
+}
+
+void stack()
+{
+    scope c = new C;
+    c.dump();
+}
+
+void main()
+{
+    heap();
+    stack();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/s.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,85 @@
+module s;
+
+interface Inter
+{
+    void inter();
+}
+
+interface Inter2
+{
+    void inter2();
+}
+
+interface InterOne : Inter
+{
+    void interOne();
+}
+
+abstract class ClassAbstract : InterOne
+{
+    abstract void inter();
+    abstract void interOne();
+}
+
+class TheClassOne : ClassAbstract
+{
+    void inter()
+    {
+    }
+    void interOne()
+    {
+    }
+}
+
+class TheClassTwo : TheClassOne, Inter2
+{
+    long l;
+    double d;
+
+    void inter2()
+    {
+    }
+}
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    printf("classinfo test\n");
+    {
+        auto c = new TheClassOne;
+        {
+            auto ci = c.classinfo;
+            printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
+            printf("ci.interfaces.length = %lu\n", ci.interfaces.length);
+            printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr);
+            printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr);
+        }
+    }
+    {
+        auto c = new TheClassTwo;
+        {
+            auto ci = c.classinfo;
+            printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
+            printf("ci.interfaces.length = %lu\n", ci.interfaces.length);
+            printf("i[0] = %.*s\n", ci.interfaces[0].classinfo.name.length, ci.interfaces[0].classinfo.name.ptr);
+            printf("i[1] = %.*s\n", ci.interfaces[1].classinfo.name.length, ci.interfaces[1].classinfo.name.ptr);
+            printf("i[2] = %.*s\n", ci.interfaces[2].classinfo.name.length, ci.interfaces[2].classinfo.name.ptr);
+        }
+        auto i = cast(InterOne)c;
+        {
+            auto ci = i.classinfo;
+            printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
+        }
+        auto i2 = cast(Inter2)i;
+        {
+            auto ci = i2.classinfo;
+            printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
+        }
+        auto o = cast(Object)i2;
+        {
+            auto ci = o.classinfo;
+            printf("ci = %.*s\n", ci.name.length, ci.name.ptr);
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/scope1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module scope1;
+extern(C) int printf(char*, ...);
+void main()
+{
+    printf("1\n");
+    {
+        scope(exit) printf("2\n");
+    }
+    printf("3\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/scope2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module scope2;
+extern(C) int printf(char*, ...);
+void main()
+{
+    scope(exit) printf("exit\n");
+    scope(failure) printf("failure\n");
+    scope(success) printf("success\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/scope3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module scope3;
+extern(C) int printf(char*, ...);
+void main()
+{
+    int i;
+    while (i < 10) {
+        scope(success) i++;
+    }
+    printf("%d\n", i);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/scope4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module scope4;
+int main()
+{
+    int i;
+    try
+    {
+        return i;
+    }
+    finally
+    {
+        //i = 1;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/scope5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,27 @@
+module scope5;
+
+int i;
+
+void func(int a, int b)
+{
+    i = 0;
+    {
+        scope(exit) i++;
+        if (a) {
+            scope(exit) i++;
+            if (b) return;
+            i++;
+        }
+    }
+    i++;
+}
+
+void main()
+{
+    func(0,0);
+    assert(i == 2);
+    func(1,1);
+    assert(i == 2);
+    func(1,0);
+    assert(i == 4);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/sieve.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,33 @@
+/* Eratosthenes Sieve prime number calculation. */
+
+extern(C) int printf(char*, ...);
+
+bool flags[8191];
+
+int main()
+{   int     i, prime, k, count, iter;
+
+    printf("10 iterations\n");
+    for (iter = 1;
+    iter <= 10;
+    iter++)
+    {
+    count = 0;
+    flags[] = true;
+    for (i = 0; i < flags.length; i++)
+    {   if (flags[i])
+        {
+        prime = i + i + 3;
+        k = i + prime;
+        while (k < flags.length)
+        {
+            flags[k] = false;
+            k += prime;
+        }
+        count += 1;
+        }
+    }
+    }
+    printf("%d primes\n", count);
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/slices.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,34 @@
+module slices;
+
+void main()
+{
+    //char[] a = "hello world";
+    //char[5] b = a[0..5];
+
+    //char* cp = a.ptr;
+    //char[] c = cp[0..1];
+}
+
+char[] first5(char[] str)
+{
+    char* p = str.ptr;
+    return p[0..5];
+}
+
+int[] one()
+{
+    static int i;
+    return (&i)[0..1];
+}
+
+void[] init()
+{
+static char c;
+return (&c)[0 .. 1];
+}
+
+void[] init2()
+    {   static char c;
+
+    return (cast(char *)&c)[0 .. 1];
+    }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/sqrts.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module sqrts;
+
+import tango.stdc.math;
+
+double sqrt(double d)
+{
+    return tango.stdc.math.sqrt(d);
+}
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/static_ctor.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,16 @@
+extern(C) int printf(char*, ...);
+
+static this()
+{
+    printf("static this\n");
+}
+
+static ~this()
+{
+    printf("static ~this\n");
+}
+
+void main()
+{
+    printf("main\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/staticarrays.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,78 @@
+extern(C) int printf(char*, ...);
+
+void numbers()
+{
+    bool[8] bools;
+    char[8] chars;
+    byte[8] bytes;
+    short[8] shorts;
+    int[8] ints;
+    long[8] longs;
+    float[8] floats;
+    double[8] doubles;
+    real[8] reals;
+    {
+        bools[7] = true;
+        floats[7] = 3.14159265;
+        {
+            printf("bools[0] = %d, bools[7] = %d\n", bools[0], bools[7]);
+            printf("floats[0] = %f, floats[7] = %f\n", floats[0], floats[7]);
+        }
+    }
+}
+
+struct S
+{
+    int i = 42;
+    void print()
+    {
+        printf("S.i = %d\n", i);
+    }
+}
+
+class C
+{
+    int i;
+    this()
+    {
+        i = 3;
+    }
+    void print()
+    {
+        printf("C.i = %d\n", i);
+    }
+}
+
+void refs()
+{
+    void*[5] voids;
+    S*[5] structs;
+    C[5] classes;
+    
+    {
+        voids[0] = cast(void*)0xA;
+        printf("void* = %p\n", voids[0]);
+    }
+    {
+        structs[0] = new S;
+        structs[0].print();
+        delete structs[0];
+    }
+    {
+        classes[0] = new C;
+        classes[0].print();
+        delete classes[0];
+    }
+}
+
+void vals()
+{
+    S[5] structs;
+}
+
+void main()
+{
+    numbers();
+    refs();
+    vals();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/staticvars.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module staticvars;
+
+int func()
+{
+    static int i;
+    return i++;
+}
+
+void main()
+{
+    assert(func() == 0);
+    assert(func() == 1);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/stdiotest.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,28 @@
+module stdiotest;
+
+import std.stdio;
+
+T typed(T)(T x)
+{
+    return x;
+}
+
+void main()
+{
+    /*char[] str = "hello";
+    writefln(str);
+
+    writefln("hello world");*/
+
+    char[] fmt = "%s";
+    writefln(2.0f);
+
+    /*{writefln(typed!(byte)(1));}
+    {writefln(typed!(short)(2));}
+    {writefln(typed!(int)(3));}
+    {writefln(typed!(long)(-4));}
+    {writefln(typed!(ulong)(5));}
+    {writefln("%f", typed!(float)(6));}
+    {writefln("%f", typed!(double)(7));}
+    {writefln("%f", typed!(real)(8));}*/
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/stdiotest2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,22 @@
+module stdiotest2;
+import std.stdio;
+void main()
+{
+    int[4] v = [1,2,3,4];
+    {
+        writefln("%s", v);
+        {
+            int[] dv = v;
+            {writefln("%s", dv);}
+        }
+    }
+
+    {
+        writefln(v);
+        {
+            //int[] dv = v;
+            //{writefln(dv);}
+        }
+    }
+    //writefln(1,2,3,4.56,"hello",v);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/strings1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module strings1;
+extern(C) int printf(char*, ...);
+void f(char[11] buffer)
+{
+    printf("%.*s\n", buffer.length, buffer.ptr);
+}
+
+void main()
+{
+    char[11] buffer;
+    char[] hello = "hello world";
+    {buffer[] = hello[];}
+    {f(buffer);}
+    {f("eleven char");}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/strings2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module strings2;
+
+import std.string;
+import std.stdio;
+
+void main()
+{
+    int i = 32;
+    auto str = format(i);
+    writefln(str);
+
+    long l = 123123;
+    str = format(l);
+    writefln(str);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/structinit.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,25 @@
+module structinit;
+
+import structinit2;
+
+struct S
+{
+    uint ui;
+    float f;
+    long l;
+    real r;
+}
+
+S adef;
+
+S a = { 1, 2.0f };
+S b = { f:2.0f, l:42 };
+
+Imp imp;
+
+void main()
+{
+    //assert(a == S.init);
+    //assert(b == S(0,3.14f,0,real.init));
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/structinit2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,16 @@
+module structinit2;
+
+struct Imp
+{
+    int i;
+    long l;
+    float f;
+}
+
+void main()
+{
+    Imp i;
+    assert(i.i == 0);
+    assert(i.l == 0L);
+    assert(i.f !<>= 0.0f);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/structs.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+struct S
+{
+    int func()
+    {
+        return 42;
+    }
+}
+
+void main()
+{
+    S s;
+    int i = s.func();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/structs2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module structs2;
+
+struct S
+{
+    int i;
+    char c;
+    S* s;
+    char[4] ca;
+}
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/structs3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,30 @@
+module structs3;
+
+struct S
+{
+    char c;
+    float f;
+}
+
+struct T
+{
+    S s;
+    long l;
+}
+
+void main()
+{
+    T t;
+    float f = void;
+    float* fp = void;
+    {f = t.s.f;}
+    {t.s.f = 0.0;}
+    {fp = &t.s.f;}
+    {*fp = 1.0;}
+    {assert(t.s.f == 1.0);}
+    {assert(*(&t.s.f) == 1.0);}
+    {t.s.c = 'a';}
+    {assert(t.s.c == 'a');}
+    {t.l = 64;}
+    {assert(t.l == 64);}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/structs4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,26 @@
+module structs4;
+
+struct S{
+    int a;
+    T t;
+}
+
+struct T{
+    int b;
+    U u;
+}
+
+struct U{
+    int c;
+}
+
+void main()
+{
+    S s;
+    s.a = 3;
+    s.t = T.init;
+    s.t.b = 4;
+    s.t.u = U.init;
+    s.t.u.c = 5;
+    //{assert(s.t.u.c == 5);}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/structs5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,23 @@
+module structs5;
+
+void main()
+{
+    {S s = S();}
+    {T t = T(1);}
+    {U u = U();}
+}
+
+struct S
+{
+}
+
+struct T
+{
+    int i;
+}
+
+struct U
+{
+    S s;
+    long l;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/structs6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module structs6;
+
+struct S
+{
+    float f;
+}
+
+void func(S s)
+{
+}
+
+void main()
+{
+    func(S());
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/structs7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module structs7;
+
+pragma(LLVM_internal, "notypeinfo")
+struct S
+{
+    int i;
+    long l;
+}
+
+void main()
+{
+    S s = void;
+    int i = s.i;
+    long l = s.l;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/switch1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module switch1;
+
+void main()
+{
+    int i = 2;
+    int r;
+    switch (i)
+    {
+    case 1: r+=1; break;
+    case 2: r-=2;
+    case 3: r=3; break;
+    default: r=-1;
+    }
+    assert(r == 3);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/switch2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module switch2;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    int i = 2;
+    switch(i)
+    {
+    case 0: assert(0);
+    case 1,2: printf("hello world\n"); break;
+    default: assert(0);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/switch3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,25 @@
+module switch3;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    char[] str = "hello";
+    int i;
+    switch(str)
+    {
+    case "world":
+        i = 1;
+        assert(0);
+    case "hello":
+        i = 2;
+        break;
+    case "a","b","c":
+        i = 3;
+        assert(0);
+    default:
+        i = 4;
+        assert(0);
+    }
+    assert(i == 2);
+    printf("SUCCESS\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/switch4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module tangotests.switch1;
+
+void main()
+{
+    switch(0)
+    {
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/switch5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module tangotests.switch2;
+
+void main()
+{
+    int i=0;
+    switch(i)
+    {
+    case 0:
+        return;
+    case 1:
+        return;
+    default:
+        assert(0);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/switch6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,21 @@
+module tangotests.switch3;
+
+void main()
+{
+    int i = 2;
+
+    switch(i)
+    {
+        case 0,1,4,5,6,7,8,9:
+            assert(0);
+        case 2:
+            return;
+        case 3:
+        {
+            i++;
+            case 11:
+                i++;
+        }
+        return;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/sync1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module sync1;
+
+void main()
+{
+    int i;
+    int j;
+    synchronized j = i;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/sync1_1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,7 @@
+module tangotests.sync1;
+
+void main()
+{
+    size_t id;
+    synchronized id = 4;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/sync2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module tangotests.sync2;
+
+class Lock
+{
+}
+
+Lock lock;
+
+void main()
+{
+    size_t id;
+    synchronized(lock) id = 2;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/sync3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module tangotests.sync3;
+
+void main()
+{
+    int i = foo();
+}
+
+int foo()
+{
+    int res;
+    synchronized
+    {
+        scope(exit) res--;
+        res++;
+        return res;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/t.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,34 @@
+interface MyInterface
+{
+    int func();
+}
+
+class MyClass : MyInterface
+{
+    int var;
+    int func()
+    {
+        return var;
+    }
+}
+
+void func1(MyInterface i)
+{
+    int delegate() dg = &i.func;
+    func2(dg);
+}
+
+extern(C) int printf(char*, ...);
+
+void func2(int delegate() dg)
+{
+    int i = dg();
+    printf("%d\n", i);
+}
+
+void main()
+{
+    auto c = new MyClass;
+    c.var = 42;
+    func1(c);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/templ1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module templ1;
+
+T func1(T)(T a)
+{
+    static T b = a;
+    return b;
+}
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/templ2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,7 @@
+module templ2;
+import templ1;
+
+void main()
+{
+    func1(1);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/terms.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,45 @@
+module terms;
+
+void f()
+{
+    int i = 42;
+    if (i > 25)
+        return;
+    if (i < 25) {
+        return;
+    }
+
+    if (i > 100)
+        return;
+    else
+        return;
+
+    if (i < 1000) {
+        return;
+    }
+    else {
+        return;
+    }
+}
+
+void main()
+{
+    int i = 42;
+    if (i > 25)
+        return;
+    if (i < 25) {
+        return;
+    }
+
+    if (i > 100)
+        return;
+    else
+        return;
+
+    if (i < 1000) {
+        return;
+    }
+    else {
+        return;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/throw1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,27 @@
+module throw1;
+
+extern(C) int rand();
+
+class C
+{
+}
+
+void func(bool b)
+{
+    if (b)
+        throw new C;
+}
+
+int main()
+{
+    bool b = true;
+    try
+    {
+        func(b);
+    }
+    catch(Object)
+    {
+        return 0;
+    }
+    return 1;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/tuple1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,18 @@
+module tuple1;
+
+template Tuple(T...) {
+    alias T Tuple;
+}
+
+struct S
+{
+    int i;
+    long l;
+}
+
+void main()
+{
+    S s = S(Tuple!(1,2L));
+    assert(s.i == 1);
+    assert(s.l == 2);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module typeinfo;
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    auto ti = typeid(int);
+    char[] str = ti.toString();
+    printf("%.*s\n", str.length, str.ptr);
+    assert(str == "int");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo10.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,64 @@
+module typeinfo10;
+
+struct S
+{
+    long l;
+    float f;
+    void* vp;
+
+    hash_t toHash()
+    {
+        return l + cast(size_t)f;
+    }
+
+    int opEquals(S s)
+    {
+        return (s.l == l) && (s.f == f);
+    }
+
+    int opCmp(S a)
+    {
+        if (l == a.l) {
+            return (f < a.f) ? -1 : (f > a.f) ? 1 : 0;
+        }
+        return (l < a.l) ? -1 : 1;
+    }
+
+    char[] toString()
+    {
+        return "S instance";
+    }
+}
+
+void main()
+{
+    S s=S(-1, 0);
+    S t=S(-1, 1);
+    S u=S(11,-1);
+    S v=S(12,13);
+
+    {
+        assert(s == s);
+        assert(s != t);
+        assert(s != v);
+        assert(s < t);
+        assert(u > s);
+        assert(v > u);
+    }
+
+    {
+        auto ti = typeid(S);
+        assert(ti.getHash(&s) == s.toHash());
+        assert(ti.equals(&s,&s));
+        assert(!ti.equals(&s,&t));
+        assert(!ti.equals(&s,&v));
+        assert(ti.compare(&s,&s) == 0);
+        assert(ti.compare(&s,&t) < 0);
+        assert(ti.compare(&u,&s) > 0);
+        assert(ti.compare(&v,&u) > 0);
+        {
+            auto tis = cast(TypeInfo_Struct)ti;
+            assert(tis.xtoString(&s) == s.toString());
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo11.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module typeinfo11;
+
+void main()
+{
+    int[4] a;
+    TypeInfo ti;
+    ti = typeid(typeof(a));
+    assert(ti.next() is typeid(int));
+    assert(ti.tsize() == 16);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo12.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+module typeinfo12;
+
+class C
+{
+}
+
+void main()
+{
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo13.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module typeinfo13;
+
+void main()
+{
+    float[long] aa;
+    auto ti = typeid(typeof(aa));
+    assert(ti.toString() == "float[long]");
+    assert(ti.next() is typeid(float));
+    assert(ti.tsize() == size_t.sizeof);
+    auto aati = cast(TypeInfo_AssociativeArray)ti;
+    assert(aati.value is typeid(float));
+    assert(aati.key is typeid(long));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,14 @@
+module typeinfo2;
+
+void main()
+{
+    auto ti = typeid(float);
+    float f = 2.5;
+    hash_t fh = ti.getHash(&f);
+    assert(ti.next is null);
+    float g = 4.0;
+    ti.swap(&f,&g);
+    assert(f == 4.0 && g == 2.5);
+    assert(fh == *cast(uint*)(&g));
+    assert(!ti.flags);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,14 @@
+module typeinfo3;
+
+typedef int int_t;
+
+void main()
+{
+    /*int_t i;
+    auto ti = typeid(typeof(i));
+    printf("%s\n",ti.toString.ptr);
+    assert(ti.toString() == "typeinfo3.int_t");
+    assert(ti.next !is null);
+    assert(ti.next.toString() == "int");
+    assert(ti.init is null);*/
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module typeinfo4;
+
+void main()
+{
+    auto ti = typeid(void*);
+    assert(ti.toString() == "void*");
+    assert(ti.tsize() == size_t.sizeof);
+    void* a = null;
+    void* b = a + 1;
+    assert(ti.compare(&a,&b) < 0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module typeinfo5;
+
+void main()
+{
+    enum E : uint {
+        A,B,C
+    }
+    auto ti = typeid(E);
+    assert(ti.next() is typeid(uint));
+    assert(ti.init is null);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module typeinfo6;
+
+void main()
+{
+    auto ti = typeid(int[]);
+    assert(ti.toString() == "int[]");
+    assert(ti.next() is typeid(int));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,14 @@
+module typeinfo7;
+extern(C) int printf(char*, ...);
+int func(long)
+{
+    return 0;
+}
+
+void main()
+{
+    auto ti = typeid(typeof(func));
+    auto s = ti.toString;
+    printf("%.*s\n", s.length, s.ptr);
+    assert(s == "int()");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo8.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module typeinfo8;
+extern(C) int printf(char*, ...);
+struct S
+{
+    void func()
+    {
+    }
+}
+
+void main()
+{
+    S a;
+    auto ti = typeid(typeof(&a.func));
+    auto s = ti.toString;
+    printf("%.*s\n", s.length, s.ptr);
+    assert(s == "void delegate()");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/typeinfo9.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module typeinfo9;
+
+typedef int int_t = 42;
+
+void main()
+{
+    auto i = typeid(int_t).init;
+    assert(i.length == int_t.sizeof);
+    assert(*cast(int_t*)i.ptr == 42);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/union1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module union1;
+
+pragma(LLVM_internal, "notypeinfo")
+union U
+{
+    float f;
+    int i;
+}
+
+void main()
+{
+    float f = 2;
+    U u = U(f);
+    assert(u.i == *cast(int*)&f);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/union2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+module union2;
+
+pragma(LLVM_internal, "notypeinfo")
+union U
+{
+    float f;
+    long l;
+}
+
+U u;
+
+void main()
+{
+    assert(u.f !<>= 0);
+    {
+        uint* p = 1 + cast(uint*)&u;
+        {assert(*p == 0);}
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/union3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,14 @@
+module union3;
+
+pragma(LLVM_internal, "notypeinfo")
+union vec3
+{
+    struct { float x,y,z; }
+    float[3] xyz;
+}
+
+void main()
+{
+    vec3 v;
+    assert(&v.y is &v.xyz[1]);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/union4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,16 @@
+module union4;
+
+pragma(LLVM_internal, "notypeinfo")
+union U {
+    struct { float x,y,z; }
+    float[3] xyz;
+}
+
+void main() {
+    const float[3] a = [1f,2,3];
+    U u = U(1,2,3);
+    assert(u.xyz == a);
+    assert(u.x == 1);
+    assert(u.y == 2);
+    assert(u.z == 3);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/union5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,39 @@
+module union5;
+
+pragma(LLVM_internal, "notypeinfo")
+{
+    union S
+    {
+        T t;
+        U u;
+        uint i;
+        struct {
+            ushort sl,sh;
+        }
+    }
+
+    struct T
+    {
+        int i;
+    }
+
+    struct U
+    {
+        float f;
+    }
+}
+
+void main()
+{
+    S s;
+    assert(s.t.i == 0);
+    assert(s.u.f == 0);
+    s.t.i = -1;
+    assert(s.i == 0xFFFF_FFFF);
+    float f = 3.1415;
+    s.u.f = f;
+    uint pi = *cast(uint*)&f;
+    assert(s.i == pi);
+    assert(s.sl == (pi&0xFFFF));
+    assert(s.sh == (pi>>>16));
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/union6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,22 @@
+module union6;
+
+pragma(LLVM_internal, "notypeinfo") {
+    struct S
+    {
+        byte a;
+        byte b;
+    }
+    union U
+    {
+        byte a;
+        byte b;
+        S c;
+    }
+}
+
+void main()
+{
+    U u;
+    auto a = u.c.b;
+    //auto c = u.s.l;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/union7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,48 @@
+module union7;
+
+pragma(LLVM_internal, "notypeinfo")
+struct Union
+{
+    union {
+        double g;
+        struct {
+            short s1,s2,s3,s4;
+        }
+    }
+    union {
+        float f;
+        long l;
+    }
+}
+
+Union a = { f:4f };
+Union b = { 3.0, f:2 };
+Union c = { l:42, g:2.0 };
+Union d = { s2:3 };
+Union e = { s1:3, s4:4, l:5 };
+
+void main()
+{
+    assert(a.f == 4f);
+    assert(a.g !<>= 0.0);
+    assert((a.l>>>32) == 0);
+
+    assert(b.g == 3.0);
+    assert(b.f == 2f);
+
+    assert(c.l == 42);
+    assert(c.g == 2.0);
+
+    assert(d.s1 == 0);
+    assert(d.s2 == 3);
+    assert(d.s3 == 0);
+    assert(d.s4 == 0);
+    {assert(d.f !<>= 0f);}
+    {}
+    assert(e.s1 == 3);
+    assert(e.s2 == 0);
+    assert(e.s3 == 0);
+    {assert(e.s4 == 4);}
+    {}
+    assert(e.l == 5);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/unittest1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,10 @@
+module unittest1;
+
+void main()
+{
+}
+
+unittest
+{
+    printf("hello\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/unrolled.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,15 @@
+module unrolled;
+
+extern(C) int printf(char*, ...);
+
+void test(T...)(T t) {
+    foreach (value; t) {
+        printf("%d\n", value);
+        if (value == 2)
+            break;
+    }
+}
+
+void main() {
+    test(1,4,3);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/v2d.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,32 @@
+extern(C) int printf(char*, ...);
+
+struct V2D(T)
+{
+    T x,y;
+
+    T dot(ref V2D v)
+    {
+        return x*v.x + y*v.y;
+    }
+
+    V2D opAdd(ref V2D v)
+    {
+        return V2D(x+v.x, y+v.y);
+    }
+}
+
+alias V2D!(float) V2Df;
+
+void main()
+{
+    printf("V2D test\n");
+    auto up = V2Df(0.0f, 1.0f);
+    auto right = V2Df(1.0f, 0.0f);
+    assert(up.dot(right) == 0.0f);
+    auto upright = up + right;
+    assert(upright.x == 1.0f && upright.y == 1.0f);
+    auto copy = upright;
+    copy.x++;
+    assert(copy.x > upright.x);
+    printf("  SUCCESS\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/vararg1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,20 @@
+module vararg1;
+
+import tango.stdc.stdarg;
+
+extern(C) int add(int n, ...)
+{
+    va_list ap=void;
+    va_start(ap, n);
+    int r;
+    for (int i=0; i<n; i++)
+        r += va_arg!(int)(ap);
+    va_end(ap);
+    return r;
+}
+
+void main()
+{
+    int i = add(4,1,2,3,4);
+    assert(i == 10);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/vararg2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,18 @@
+module vararg2;
+
+void func(...)
+{
+    assert(_arguments.length == 2);
+    assert(_arguments[0] is typeid(int));
+    int a = *cast(int*)_argptr;
+    _argptr += int.sizeof;
+    assert(_arguments[1] is typeid(int));
+    a += *cast(int*)_argptr;
+    _argptr += int.sizeof;
+    assert(a == 3);
+}
+
+void main()
+{
+    func(1,2);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/vararg3.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,19 @@
+module vararg3;
+
+import tango.core.Vararg;
+
+void func(...)
+{
+    assert(_arguments.length == 3);
+    assert(_arguments[0] is typeid(int));
+    assert(_arguments[1] is typeid(float));
+    assert(_arguments[2] is typeid(long));
+    assert(va_arg!(int)(_argptr) == 4);
+    assert(va_arg!(float)(_argptr) == 2.5f);
+    assert(va_arg!(long)(_argptr) == 42L);
+}
+
+void main()
+{
+    func(4, 2.5f, 42L);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/vararg4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,37 @@
+module vararg4;
+import tango.core.Vararg;
+extern(C) int printf(char*, ...);
+
+void vafunc(...)
+{
+    foreach(i,v; _arguments) {
+        if (typeid(byte) == v) {
+            printf("byte(%d)\n", va_arg!(byte)(_argptr));
+        }
+        else if (typeid(short) == v) {
+            printf("short(%d)\n", va_arg!(short)(_argptr));
+        }
+        else if (typeid(int) == v) {
+            printf("int(%d)\n", va_arg!(int)(_argptr));
+        }
+        else if (typeid(long) == v) {
+            printf("long(%ld)\n", va_arg!(long)(_argptr));
+        }
+        else if (typeid(float) == v) {
+            printf("float(%f)\n", va_arg!(float)(_argptr));
+        }
+        else if (typeid(double) == v) {
+            printf("double(%f)\n", va_arg!(double)(_argptr));
+        }
+        else if (typeid(real) == v) {
+            printf("real(%f)\n", va_arg!(real)(_argptr));
+        }
+        else
+        assert(0, "unsupported type");
+    }
+}
+
+void main()
+{
+    vafunc(byte.max,short.max,1,2,3,4L,5.0f,6.0,cast(real)7);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/vararg5.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module vararg5;
+import tango.core.Vararg;
+extern(C) int printf(char*, ...);
+void func(...)
+{
+    char[] str = va_arg!(char[])(_argptr);
+    {printf("%.*s\n", str.length, str.ptr);}
+}
+void main()
+{
+    char[] str = "hello";
+    func(str);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/vararg6.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,249 @@
+// tries to implement a fairly complete variadic print function
+module tangotests.vararg3;
+
+extern(C) int printf(char*, ...);
+
+struct User
+{
+    char[] name;
+    char[] nick;
+    uint age;
+
+    char[] toString()
+    {
+        return nick ~ "(" ~ name ~ ")";
+    }
+}
+
+struct Infidel
+{
+    char[] whocares;
+}
+
+class Obj
+{
+    private char[] ty;
+
+    this(char[] t)
+    {
+        ty = t;
+    }
+
+    char[] toString()
+    {
+        return "Obj(" ~ ty ~ ")";
+    }
+}
+
+ struct TLA
+ {
+    char[3] acronym;
+
+    char[] toString()
+    {
+        return acronym;
+    }
+}
+
+void main()
+{
+    User user = User("Bob Doe", "bd", 47);
+    char[] str = user.toString();
+    printf("Direct call:\n%.*s\nBy typeinfo:\n", str.length, str.ptr);
+    print(user, '\n');
+
+    print("Without toString:\n");
+    Infidel inf = Infidel("not me");
+    print(inf, '\n');
+
+    print("Character arrays:\n");
+    print("hello world\n");
+
+    print("Signed integers:\n");
+    print(cast(byte)byte.max,' ',cast(short)short.max,' ',cast(int)int.max,' ',cast(long)long.max,'\n');
+
+    print("Unsigned integers:\n");
+    print(cast(ubyte)ubyte.max,' ',cast(ushort)ushort.max,' ',cast(uint)uint.max,' ',cast(ulong)ulong.max,'\n');
+
+    print("Floating point:\n");
+    print(cast(float)1.273f, ' ', cast(double)3.412367, ' ', cast(real)142.96731112, '\n');
+
+    print("Arrays:\n");
+    int[] ia1 = [1,2,3,4,5,6,7,8,9];
+    print(ia1, '\n');
+    float[] fa1 = [0.1f, 0.15f, 0.2f, 0.25f, 0.3f];
+    print(fa1, '\n');
+
+    print("Pointers:\n");
+    print(&user,'\n');
+    print(&inf,'\n');
+    print(&ia1,'\n');
+    print(&fa1,'\n');
+
+    print("Static arrays:\n");
+    int[5] isa1 = [1,2,4,8,16];
+    print(isa1,'\n');
+
+    print("Classes:\n");
+    Obj o = new Obj("foo");
+    print(o, '\n');
+
+    print("Mixed:\n");
+    print(123, ' ', 42.536f, " foobar ", ia1, ' ', user, '\n');
+    print(42, ' ', cast(byte)12, ' ', user, ' ', cast(short)1445, " foo\n");
+
+    print("International:\n");
+    print('æ','ø','å','\n');
+    print('Æ','Ø','Å','\n');
+    print("rød grød med fløde\n");
+    print("Heiße\n");
+
+    print("TLAs:\n");
+    TLA tla1 = TLA("FBI");
+    TLA tla2 = TLA("CIA");
+    TLA tla3 = TLA("TLA");
+    print(tla1);
+    print(tla2);
+    print(tla3, '\n');
+    print(tla1, tla2, tla3, '\n');
+    print(TLA("FBI"), TLA("CIA"), TLA("TLA"), '\n');
+
+    print("Done!\n");
+}
+
+private void* get_va_arg(TypeInfo ti, ref void* vp)
+{
+    void* arg = vp;
+    vp = vp + ( ( ti.tsize + size_t.sizeof - 1 ) & ~( size_t.sizeof - 1 ) );
+    return arg;
+}
+
+void print(TypeInfo ti, void* arg)
+{
+    if (ti == typeid(byte))
+        printf("%d", *cast(byte*)arg);
+    else if (ti == typeid(short))
+        printf("%d", *cast(short*)arg);
+    else if (ti == typeid(int))
+        printf("%d", *cast(int*)arg);
+    else if (ti == typeid(long))
+        printf("%lld", *cast(long*)arg);
+
+    else if (ti == typeid(ubyte))
+        printf("%u", *cast(ubyte*)arg);
+    else if (ti == typeid(ushort))
+        printf("%u", *cast(ushort*)arg);
+    else if (ti == typeid(uint))
+        printf("%u", *cast(uint*)arg);
+    else if (ti == typeid(ulong))
+        printf("%llu", *cast(ulong*)arg);
+
+    else if (ti == typeid(float))
+        printf("%f", *cast(float*)arg);
+    else if (ti == typeid(double))
+        printf("%f", *cast(double*)arg);
+    else if (ti == typeid(real)) // FIXME: 80bit?
+    {
+        version(LLVM_X86_FP80)
+            printf("%llf", *cast(real*)arg);
+        else
+            printf("%f", *cast(real*)arg);
+    }
+
+    else if (ti == typeid(char))
+        printf("%.*s", 1, arg);
+    else if (ti == typeid(wchar))
+        printf("%.*s", 2, arg);
+    else if (ti == typeid(dchar))
+        printf("%.*s", 4, arg);
+
+    else if (ti == typeid(char[]))
+    {
+        char[] str = *cast(char[]*)arg;
+        printf("%.*s", str.length, str.ptr);
+    }
+    else if (ti == typeid(wchar[]))
+    {
+        wchar[] str = *cast(wchar[]*)arg;
+        printf("%.*s", str.length*2, str.ptr);
+    }
+    else if (ti == typeid(dchar[]))
+    {
+        dchar[] str = *cast(dchar[]*)arg;
+        printf("%.*s", str.length*4, str.ptr);
+    }
+
+    else if (auto pti = cast(TypeInfo_Pointer)ti)
+    {
+        printf("%p", *cast(void**)arg);
+    }
+
+    else if (auto sti = cast(TypeInfo_Struct)ti)
+    {
+        if (sti.xtoString !is null)
+        {
+            char[] str = sti.xtoString(arg);
+            printf("%.*s", str.length, str.ptr);
+        }
+        else
+        {
+            char[] str = sti.toString();
+            printf("%.*s", str.length, str.ptr);
+        }
+    }
+
+    else if (auto ati = cast(TypeInfo_Array)ti)
+    {
+        auto tnext = ati.next;
+        size_t len = *cast(size_t*)arg;
+        void* ptr = *(cast(void**)arg + 1);
+        printf("[");
+        for(auto i=0; i<len; ++i)
+        {
+            print(tnext, get_va_arg(tnext, ptr));
+            if (i < len-1)
+                printf(",");
+        }
+        printf("]");
+    }
+
+    else if (auto cti = cast(TypeInfo_Class)ti)
+    {
+        auto o = *cast(Object*)arg;
+        char[] str = o.toString();
+        printf("%.*s", str.length, str.ptr);
+    }
+
+    // static arrays are converted to dynamic arrays when passed to variadic functions
+    else if (auto sati = cast(TypeInfo_StaticArray)ti)
+    {
+        assert(0, "static arrays not supported");
+    }
+
+    else if (auto aati = cast(TypeInfo_AssociativeArray)ti)
+    {
+        assert(0, "associative array not supported");
+    }
+
+    else
+    {
+        char[] str = ti.toString();
+        printf("typeinfo: %.*s\n", str.length, str.ptr);
+        str = ti.classinfo.name;
+        printf("typeinfo.classinfo: %.*s\n", str.length, str.ptr);
+        assert(0, "unsupported type ^");
+    }
+}
+
+void print(...)
+{
+    void* argptr = _argptr;
+    assert(argptr);
+
+    foreach(i,ti; _arguments)
+    {
+        void* arg = get_va_arg(ti, argptr);
+        assert(arg);
+        print(ti, arg);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/vararg7.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,30 @@
+module tangotests.vararg4;
+
+extern(C) int printf(char*, ...);
+
+struct S
+{
+    int i;
+}
+
+void func(...)
+{
+    S* sp = cast(S*)_argptr;
+    assert(sp.i == 42);
+}
+
+void main()
+{
+    printf("1st:\n");
+    {
+    S s = S(42);
+    func(s);
+    }
+    printf("ok\n");
+
+    printf("2nd:\n");
+    {
+    func(S(42));
+    }
+    printf("ok\n");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/virtcall.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,18 @@
+module virtcall;
+
+extern(C) int printf(char*, ...);
+
+class C
+{
+    override char[] toString()
+    {
+        return "overridden";
+    }
+}
+
+void main()
+{
+    C c = new C;
+    auto s = c.toString();
+    printf("%.*s\n", s.length, s.ptr);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/void1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+extern(C) int printf(char*, ...);
+
+void main()
+{
+     int[0][10] arr;
+     printf("%u\n", &arr[9] - &arr[0]);
+     int[0] arr1;
+     printf("%p\n", &arr1);
+     void[0] arr2;
+     printf("%p\n", &arr2);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/mini/with1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,17 @@
+module with1;
+struct S
+{
+    int i;
+    float f;
+}
+void main()
+{
+    S s;
+    with(s)
+    {
+        i = 0;
+        f = 3.5;
+    }
+    assert(s.i == 0);
+    assert(s.f == 3.5);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/arrays1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,78 @@
+module tangotests.arrays1;
+
+import tango.stdc.stdio;
+
+void main()
+{
+    real[] arr;
+    print(arr);
+    main2();
+}
+
+void main2()
+{
+    real[] arr = void;
+    fill(arr);
+    print(arr);
+    main3();
+}
+
+void main3()
+{
+}
+
+void print(real[] arr)
+{
+    printf("len=%u ; ptr=%p\n", arr.length, arr.ptr);
+}
+
+void fill(ref real[] arr)
+{
+    auto ptr = cast(void**)&arr;
+    *ptr++ = cast(void*)0xbeefc0de;
+    *ptr = cast(void*)0xbeefc0de;
+}
+
+void dg1(void delegate(int[]) dg)
+{
+    dg2(dg);
+}
+
+void dg2(void delegate(int[]) dg)
+{
+    dg(null);
+}
+
+void sarr1(int[16] sa)
+{
+    sarr1(sa);
+}
+
+struct Str
+{
+    size_t length;
+    char* ptr;
+}
+
+void str1(Str str)
+{
+    str1(str);
+}
+
+void str2(ref Str str)
+{
+    str2(str);
+}
+
+void str3(out Str str)
+{
+    str3(str);
+}
+
+void str4(Str* str)
+{
+    str4(str);
+}
+
+void str5(Str);
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/constructors.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,29 @@
+import tango.io.Console;
+
+class C
+{
+    this()
+    {
+        Cout("C()").newline;
+    }
+    this(char[] str)
+    {
+        Cout("C(")(str)(")").newline;
+    }
+}
+
+class D : C
+{
+    this()
+    {
+        super("D");
+        Cout("D()").newline;
+    }
+}
+
+void main()
+{
+    auto c1 = new C();
+    auto c2 = new C("C");
+    auto d = new D();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/files1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,12 @@
+module tangotests.files1;
+
+//import tango.io.Stdout;
+import tango.io.File;
+
+void main()
+{
+    auto file = new File("files1.output");
+    char[] str = "hello world from files1 test\n";
+    void[] data = cast(void[])str;
+    file.write(str);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/gc2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+module tangotests.gc2;
+
+import tango.core.Memory;
+
+void main()
+{
+    char[] tmp = new char[2500];
+    GC.collect();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/ina1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,11 @@
+module tangotests.ina1;
+
+import tango.stdc.stdio;
+
+void main()
+{
+    int alder;
+    printf("Hvor gammel er du?\n");
+    scanf("%d", &alder);
+    printf("om 10 år er du %d\n", alder + 10);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/l.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,6 @@
+import tango.io.Console;
+
+void main()
+{
+    Cout("Hi, says LLVMDC + Tango").newline;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/mem1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,63 @@
+module tangotests.mem1;
+
+import tango.stdc.stdio;
+
+void main()
+{
+    printf("new int;\n");
+    int* i = new int;
+    assert(*i == 0);
+
+    printf("new int[3];\n");
+    int[] ar = new int[3];
+    ar[0] = 1;
+    ar[1] = 56;
+    assert(ar.length == 3);
+    assert(ar[0] == 1);
+    assert(ar[1] == 56);
+    assert(ar[2] == 0);
+
+    printf("array ~= elem;\n");
+    int[] ar2;
+    ar2 ~= 22;
+    assert(ar2.length == 1);
+    assert(ar2[0] == 22);
+
+    printf("array ~= array;\n");
+    ar2 ~= ar;
+    assert(ar2.length == 4);
+    assert(ar2[0] == 22);
+    assert(ar2[1] == 1);
+    printf("%d %d %d %d\n", ar2[0], ar2[1], ar2[2], ar2[3]);
+    assert(ar2[2] == 56);
+    assert(ar2[3] == 0);
+
+    printf("array ~ array;\n");
+    int[] ar5 = ar ~ ar2;
+    assert(ar5.length == 7);
+    assert(ar5[0] == 1);
+    assert(ar5[1] == 56);
+    assert(ar5[2] == 0);
+    assert(ar5[3] == 22);
+    assert(ar5[4] == 1);
+    assert(ar5[5] == 56);
+    assert(ar5[6] == 0);
+
+    printf("array ~ elem;\n");
+    int[] ar4 = ar2 ~ 123;
+    assert(ar4.length == 5);
+    assert(ar4[0] == 22);
+    assert(ar4[1] == 1);
+    assert(ar4[2] == 56);
+    assert(ar4[3] == 0);
+    assert(ar4[4] == 123);
+
+    printf("elem ~ array;\n");
+    int[] ar3 = 123 ~ ar2;
+    assert(ar3.length == 5);
+    assert(ar3[0] == 123);
+    assert(ar3[1] == 22);
+    assert(ar3[2] == 1);
+    assert(ar3[3] == 56);
+    assert(ar3[4] == 0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/mem4.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,29 @@
+module tangotests.mem4;
+
+import tango.stdc.stdio;
+
+class C {
+    int* ptr;
+    this() {
+        printf("this()\n");
+        ptr = new int;
+    }
+    ~this() {
+        printf("~this()\n");
+        delete ptr;
+        assert(ptr is null);
+    }
+    final void check()
+    {
+        printf("check()\n");
+        assert(ptr !is null);
+    }
+}
+
+void main()
+{
+    C c = new C();
+    c.check();
+    delete c;
+    assert(c is null);
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/stdout1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,7 @@
+import tango.io.Stdout;
+
+void main()
+{
+    Stdout("Hello World").newline;
+    Stdout.formatln("{} {}", "Hello", "World");
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/stdout2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,8 @@
+module tangotests.stdout2;
+
+import tango.io.Stdout;
+
+void main()
+{
+    Stdout.formatln("{} {} {}", "a", "b", 1.0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/templ1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module tangotests.templ1;
+
+import Util = tango.text.Util;
+
+extern(C) int printf(char*, ...);
+
+void main()
+{
+    foreach (line; Util.lines("a\nb\nc"))
+    {
+        printf("%.*s\n", line.length, line.ptr);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/u.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,9 @@
+import tango.io.Console;
+void main()
+{
+    Cout("getting name std").newline;
+    Cerr("getting name err").newline;
+    auto s = Cin.get();
+    Cout("putting name").newline;
+    Cout (s).newline;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/vararg1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module tangotests.vararg1;
+
+import tango.stdc.stdio;
+
+void func(int[] arr...)
+{
+    printf("1,2,4,5,6 == %d,%d,%d,%d,%d\n", arr[0],arr[1],arr[2],arr[3],arr[4]);
+}
+
+void main()
+{
+    func(1,2,4,5,6);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/vararg2.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,42 @@
+module tangotests.vararg2;
+
+extern(C) int printf(char*, ...);
+
+import tango.core.Vararg;
+
+void main()
+{
+    func(0xf00, 1, " ", 2, " ", 3, "\n", 0.3, "\n");
+}
+
+void func(int foo, ...)
+{
+    foreach(t; _arguments)
+    {
+        if (t == typeid(char[]))
+        {
+            char[] str = va_arg!(char[])(_argptr);
+            printf("%.*s", str.length, str.ptr);
+        }
+        else if (t == typeid(int))
+        {
+            printf("%d", va_arg!(int)(_argptr));
+        }
+        else if (t == typeid(float))
+        {
+            printf("%f", va_arg!(float)(_argptr));
+        }
+        else if (t == typeid(double))
+        {
+            printf("%f", va_arg!(double)(_argptr));
+        }
+        else if (t == typeid(real))
+        {
+            printf("%f", va_arg!(real)(_argptr));
+        }
+        else
+        {
+            assert(0, "not int");
+        }
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/minicomplex/volatile1.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,13 @@
+module tangotests.volatile1;
+
+import tango.stdc.stdlib;
+
+void main()
+{
+    int var = rand();
+    {
+        int i = var;
+        volatile;
+        int j = i;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/runminitest.d	Sun Jul 13 02:51:19 2008 +0200
@@ -0,0 +1,45 @@
+module runminitest;
+
+import std.file;
+import std.path;
+import std.process;
+import std.stdio;
+
+int main(string[] args) {
+    string[] bad;
+    string[] badrun;
+
+    chdir("mini");
+
+    auto contents = listdir(".", "*.d");
+    foreach(c; contents) {
+        string cmd = "llvmdc -quiet "~c;
+        foreach(v; args[1..$]) {
+            cmd ~= ' ';
+            cmd ~= v;
+        }
+        writefln(cmd);
+        if (system(cmd) != 0) {
+            bad ~= c;
+        }
+        else if (system(getName(c)) != 0) {
+            badrun ~= c;
+        }
+    }
+
+    int ret = 0;
+    if (bad.length > 0 || badrun.length > 0) {
+        writefln(bad.length, '/', contents.length, " of the tests failed to compile:");
+        foreach(b; bad) {
+            writefln("  ",b);
+        }
+        writefln(badrun.length, '/', contents.length - bad.length, " of the compiled tests failed to run:");
+        foreach(b; badrun) {
+            writefln("  ",b);
+        }
+        ret = 1;
+    }
+
+    writefln(contents.length - bad.length - badrun.length, '/', contents.length, " of the tests passed");
+    return ret;
+}