1 class Base
2 {
this()3     this() shared
4     {}
5 
this()6     this()
7     {}
8 }
9 
10 class Derived1 : Base
11 {
this()12     this()
13     {
14         // implicit super();
15     }
16 }
17 
18 class Derived2 : Base
19 {
20     // implicit this()
21 }
22 
23 class Base2
24 {
this()25     this() shared
26     {}
27 }
28 
29 class Derived3 : Base2
30 {
31     // implicit this() shared
32 }
33 
test()34 void test()
35 {
36     auto d2 = new Derived2;
37     auto d3 = new shared(Derived3);
38 }
39