view test/d.d @ 73:b706170e24a9 trunk

[svn r77] Fixed foreach on slice. Fixed some nested function problems when accessing outer function parameters. Major changes to handling of structs. Initial support for unions. Probably more...
author lindquist
date Wed, 31 Oct 2007 03:11:32 +0100
parents c53b6e3fe49a
children
line wrap: on
line source
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;
}
*/