class Base
{
    this() shared
    {}
    this()
    {}
}
class Derived1 : Base
{
    this()
    {
        // implicit super();
    }
}
class Derived2 : Base
{
    // implicit this()
}
class Base2
{
    this() shared
    {}
}
class Derived3 : Base2
{
    // implicit this() shared
}
void test()
{
    auto d2 = new Derived2;
    auto d3 = new shared(Derived3);
}