view tests/mini/interface6.d @ 443:44f08170f4ef

Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn. Reworked the LLVMDC specific pragmas.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Fri, 01 Aug 2008 00:32:06 +0200
parents 1bb99290e03a
children
line wrap: on
line source

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);
}