Is there a reason that the following code
struct Foo
{ this (string name)
{ do_something(name); }
~this()
{ undo_something(); }
}
Foo foo = void;
void open()
{
foo = Foo("test"); // <- this line
}
tries to OpAssign foo to itself then calls foo's destructor?