https://issues.dlang.org/show_bug.cgi?id=13586
--- Comment #15 from monarchdo...@gmail.com --- (In reply to Sobirari Muhomori from comment #14) > (In reply to Walter Bright from comment #11) > > Because the caller can transfer ownership to the callee. If the callee never > > destructed its parameters, this could not be done. > > If transfer of ownership makes things messy, it's better to not do that. Is > there a reason, why the caller can't keep ownership to itself? I could be talking out of my ass, but I'd *assume* ownership transfer is required for proper move semantics. The easiest way to move an object from scope A to scope B would be for A to "give ownership" to B. EG: foo(getLValue()); Here the outerscope calls neither postblit nor destructor. Speaking of which: Walter, is there anything blocking https://issues.dlang.org/show_bug.cgi?id=12684 ? Or has it simply not been brought to DMD team's attention? --