view tests/mini/classes12.d @ 1619:c61782a76dff

Merge DMD r304: refactor invariant => immutable --- dmd/cast.c | 2 +- dmd/declaration.c | 2 +- dmd/declaration.h | 3 +-- dmd/doc.c | 2 +- dmd/expression.c | 6 +++--- dmd/interpret.c | 4 ++-- dmd/mtype.c | 2 +- dmd/mtype.h | 2 +- dmd/parse.c | 4 ++-- dmd/struct.c | 2 +- 10 files changed, 14 insertions(+), 15 deletions(-)
author Leandro Lucarella <llucax@gmail.com>
date Wed, 06 Jan 2010 15:18:22 -0300
parents 1bb99290e03a
children
line wrap: on
line source

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