[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