[Issue 23136] closure in a loop should hold distinct values for each iteration

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Aug 5 09:23:56 UTC 2022


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

Bolpat <qs.il.paperinik at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |qs.il.paperinik at gmail.com

--- Comment #1 from Bolpat <qs.il.paperinik at gmail.com> ---
To be honest, I find this worse:

```d
import std.stdio;

void main() @safe
{
    int delegate() immutable pure @safe[] dgList;
    foreach(int i; [0,1,2])
    {
        immutable b = i;
        dgList ~= () immutable pure @safe => b;
        writeln(dgList[$-1]());
    }
    writeln;
    foreach(dg; dgList) writeln(dg());
}
```

An immutable pure @safe delegate should never ever be able to return different
values for the same parameters (in particular: no parameters).

--


More information about the Digitalmars-d-bugs mailing list