https://d.puremagic.com/issues/show_bug.cgi?id=7653
--- Comment #13 from Vladimir Panteleev <[email protected]> 2014-03-02 23:12:36 EET --- Sorry, there does appear to be a misunderstanding. I am referring to the code in the issue description: (In reply to comment #0) > class C{ > mixin({ > string r; > foreach(x;["a","b","c"]) r~="int "~x~";"; > return r; > }()); > } With Kenji's pull from issue 11545, this code compiles and works fine. This code does not need an instance of C to work, thus it does not have a context pointer, and so I've referred to it as a "function literal" in my last comment. The two examples you posted earlier do have a context pointer: (In reply to comment #6) > class C{ > mixin(delegate{ > string r; > foreach(x;["a","b","c"]) r~="int "~x~";"; > return r; > }()); > } Here, although the code does not refer to C fields or methods, it is explicitly declared as a delegate. > template ID(alias a){ alias ID=a; } > class C{ > int x=3; > alias a = ID!(()=>x); > } > static assert(new C().a()==3); Here it refers to x, and thus needs a context pointer. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
