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; } ----
Comment #1 by k.hara.pg — 2014-06-09T10:27:14Z
Fixed in 2.061.