view tests/mini/interface6.d @ 1504:855f188aab7a

Added a stripModifiers() function to remove shared|const|immutable storage classes in D2 (should eventually be moved to a dhelpers file rather than llvm helpers). Replaced a few occurances of STCinvariant with STCimmutable.
author Robert Clipsham <robert@octarineparrot.com>
date Thu, 18 Jun 2009 15:44:04 +0100
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);
}