On Wednesday, 19 July 2017 at 12:23:06 UTC, Danni Coy wrote:
On Wed, Jul 19, 2017 at 7:09 PM, Stefan Koch via Digitalmars-d < digitalmars-d@puremagic.com> wrote:What happens is this. void open() { foo = () { Foo _tmp = Foo.__ctor("test"); return _tmp; } (); } Error: need 'this' for 'this' of type 'ref Foo(string s)'
I posted pseudo code to show you that you are creating a temporary.
Which leaves the scope after assigning. And therefore triggers the destructor.