inconsistent behavior with "is a nested function and cannot be accessed from"

timotheecour thelastmammoth at gmail.com
Tue Sep 18 14:07:23 PDT 2012


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;
}
----



More information about the Digitalmars-d-learn mailing list