Am 19.01.2014 18:48, schrieb Lemonfiend:
import std.stdio;struct C { A[] _objs; this(A[] objs...) { writeln(` C this()`); _objs = objs; // A.this(this) is not called // yet A.~this IS called } } struct B { A sup; alias sup this; this(A a) { writeln(count, ` B this()`); sup = a; } } struct A { static int count; this(int n) { count++; writeln(count, ` A this()`); } this(this) { count++; writeln(count, ` A this(this)`); } ~this() { count--; writeln(count, ` A ~this()`); } } void main() { A a = A(1); writeln(a.count == 1); B b = B(a); writeln(a.count == 2); C c = C(b); writeln(a.count == 3); }
Yes this looks like a bug to me. Please file a bug report at https://d.puremagic.com/issues/
Kind Regards Benjamin Thaut
