[Issue 8269] The 'with statement' does not observe temporary object lifetime

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Fri Aug 8 23:04:24 PDT 2014


https://issues.dlang.org/show_bug.cgi?id=8269

yebblies <yebblies at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull
           Assignee|nobody at puremagic.com        |yebblies at gmail.com

--- Comment #12 from yebblies <yebblies at gmail.com> ---
It is how it expands itself.

with(exp) {...} gets re-written to

with(auto tmp = exp, tmp) {...}

and then

with(auto withptr = &(auto tmp = exp, tmp)) {...}

which ends up looking like

auto withptr = &(auto tmp = exp, tmp)
...

in the glue layer.  Since tmp is local to the expression, the dtor code is
inserted right after it.

https://github.com/D-Programming-Language/dmd/pull/3855

--


More information about the Digitalmars-d-bugs mailing list