I get this error: ----/d701/f223.d(11): Error: pure function 'f223.getA' cannot call impure function 'f223.A.~this'
----
with this code: ---- import std.stdio; struct A { public: ~this() { writeln("DTor"); } } A getA() pure nothrow { return A(); } void main() { A a = getA(); writeln("end of main"); } ---- But without pure and nothrow I get this output: ---- end of main DTor ----Why the compiler thinks that the function should/could call A::~this?