http://d.puremagic.com/issues/show_bug.cgi?id=5657
--- Comment #1 from SHOO <zan77...@nifty.com> 2011-04-01 04:44:14 PDT --- I tested following commit: https://github.com/D-Programming-Language/dmd/commit/e764b3949ae0f95f8fc4d7d2e9114e29fee12493 with following code: http://ideone.com/Yqomf and result is here: http://ideone.com/qfBnx CONCLUTION: Almost! Its behavior is right except a case to ignore without storing away a temporary object produced in a return value to a variable. +--------------+--------------+----------+------------+-------------+ | source | distination | postblit | destructor | correctness | +--------------+--------------+----------+------------+-------------+ | constructor | parameter | x | o | OK | | constructor | return value | x | x | OK | | constructor | variable | x | o | OK | | constructor | no operate | x | o | OK | | return value | parameter | x | o | OK | | return value | return value | x | x | OK | | return value | variable | x | o | OK | | return value | no operate | x | _x_ | _NG_ | | variable | parameter | o | o | OK | | variable | return value | o | o | OK | | variable | variable | o | o | OK | | variable | no operate | (error) | (error) | OK | +--------------+--------------+----------+------------+-------------+ (*) x ... not called / o ... called Minimized case is here: ----- import std.stdio; struct A{ this(int x) {writeln("ctor");} ~this(){writeln("dtor");} } A foo() { return A(1); } void main() { foo(); } ----- $ dmd -run main ctor ----- -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------