[Issue 14833] New: Nested delegates problem
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Sun Jul 26 08:17:07 PDT 2015
https://issues.dlang.org/show_bug.cgi?id=14833
Issue ID: 14833
Summary: Nested delegates problem
Product: D
Version: D2
Hardware: x86
OS: Windows
Status: NEW
Severity: normal
Priority: P1
Component: dmd
Assignee: nobody at puremagic.com
Reporter: bearophile_hugs at eml.cc
void main() {
import std.algorithm: map;
import std.range: iota;
import std.typecons: tuple;
auto r1 = 100.iota.map!(a3 => iota(1, a3).map!(a2 => iota(1, a3).map!(a1 =>
tuple(a1, a2, a3)))); // OK
auto r2 = 100.iota.map!(a3 => iota(1, a3).map!(a2 => iota(1, a2).map!(a1 =>
tuple(a1, a2, a3)))); // Error
}
dmd v2.068.0-b1 gives:
test.d(6,95): Error: delegate
test.main.__lambda2!int.__lambda2.__lambda2!int.__lambda2.__lambda2 cannot
access frame of function test.main.__lambda2
...\dmd2\src\phobos\std\algorithm\iteration.d(459,16): instantiated from
here: MapResult!(__lambda2, Result)
test.d(6,69): instantiated from here: map!(Result)
...\dmd2\src\phobos\std\algorithm\iteration.d(549,19): instantiated from
here: __lambda2!int
...\dmd2\src\phobos\std\algorithm\iteration.d(459,16): ... (3
instantiations, -v to show) ...
...\dmd2\src\phobos\std\algorithm\iteration.d(459,16): instantiated from
here: MapResult!(__lambda2, Result)
test.d(6,23): instantiated from here: map!(Result)
--
More information about the Digitalmars-d-bugs
mailing list