view test/interface6.d @ 271:1e6e2b5d5bfe trunk

[svn r292] Fixed: string switch was broken in several ways. Fixed: TypeInfo_Typedef.next was incorrect (return base of base instead of just base). Fixed: ClassInfo offset type info (offTi) had invalid offsets.
author lindquist
date Wed, 18 Jun 2008 21:31:05 +0200
parents 44a95ac7368a
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);
}