Bug 8693 – inconsistent behavior with "is a nested function and cannot be accessed from"
Status
RESOLVED
Resolution
WORKSFORME
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-09-18T23:47:00Z
Last change time
2015-11-05T01:41:14Z
Assigned to
nobody
Creator
thelastmammoth
Comments
Comment #0 by thelastmammoth — 2012-09-18T23:47:29Z
The code below fails to compile with:
Error: function
main.fun!(cast(ModeScore)0,int).fun.map!(__lambda33).map!(int[]).map
is a nested function and cannot be accessed from
main.fun!(cast(ModeScore)1,int).fun
which is weird.
But then comment out line B or line A (see below) and it works,
which is even weirder.
Is that a bug?
----
import std.algorithm;
void main(){
int[]as;
auto scores=as.map!(a=>a.fun!(ModeScore.u)); //line A
auto scores2=as.map!(a=>a.fun!(ModeScore.v)); //line B
}
enum ModeScore {u,v}
auto fun(ModeScore modeScore=ModeScore.sum,T)(T a){
auto scores=[a].map!(b=>b);
return 0;
}
----