view test/classinfo4.d @ 217:0806379a5eca trunk

[svn r233] Added: -oq command line option for writing fully qualified object names. Added: started support for x86 80bit floating point. Changed: aggregates passed by value now use the llvm 'byval' parameter attribute, also lays ground work for using other attributes. Changed: eliminated a lot more std::vectorS, these showed up pretty much at the top when profiling! Changed: performed other misc. cleanups. Changed: halt expression now call the new llvm trap intrinsic instead of an assert(0). Changed: dstress suite now passes -O0 by default, this only eliminates unreferenced globals, which speeds up linking quite a bit.
author lindquist
date Thu, 05 Jun 2008 06:38:36 +0200
parents 368547b1cbe6
children
line wrap: on
line source

module classinfo4;

class C
{
}

class D : C
{
    this()
    {
    }
    ~this()
    {
    }
}

template T()
{
    ~this()
    {
    }
}

class E : D
{
    this()
    {
    }
    ~this()
    {
    }
    mixin T;
}

void main()
{
    assert(C.classinfo.defaultConstructor is null);
    assert(C.classinfo.destructor is null);
    assert(D.classinfo.defaultConstructor !is null);
    assert(D.classinfo.destructor !is null);
    assert(E.classinfo.defaultConstructor !is null);
    assert(E.classinfo.destructor !is null);
}