view tests/mini/classinfo4.d @ 811:8e6135be6999

Fixed ModuleInfo generation to no longer use the ModuleInfo class' default initializer for types/defaults, it's unsafe as initializers don't necesarily match the "formal" type. There might be explicit padding. Changed -g switch to emit DW_LANG_D debug info, make demangling work with a patched GDB, still more work to do for full support of D's Dwarf extensions. Added getNullValue helper method.
author Tomas Lindquist Olsen <tomas.l.olsen@gmail.com>
date Mon, 01 Dec 2008 02:10:16 +0100
parents 1bb99290e03a
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);
}