view tests/mini/nested6.d @ 554:1b702422451c

Always call finalizer for stack classes. Checking for the number of destructors of the class type is not sufficient: we may be holding a derived class with a destructor. Fixes: run/auto_07
author Christian Kamm <kamm incasoftware de>
date Thu, 28 Aug 2008 20:17:21 +0200
parents a34078905d01
children
line wrap: on
line source

module nested6;
extern(C) int printf(char*, ...);

void main()
{
    int i = 42;

    printf("main() %d\n", i++);

    class C
    {
        void func()
        {
            printf("C.func() %d\n", i++);

            class C2
            {
                void func2()
                {
                    printf("C2.func2() %d\n", i++);
                }
            }

            auto c2 = new C2;
            c2.func2();
        }
    }

    auto c = new C;
    c.func();
    
    assert(i == 45);
}