http://d.puremagic.com/issues/show_bug.cgi?id=7459
--- Comment #2 from [email protected] 2012-12-14 00:20:08 PST --- (In reply to comment #1) > Ideally, the compiler should allow nested functions to call each other. I agree. Furthermore, ideally the state of the symbol table should the one at the declaration of the template. > I understand there are some complications with how declarations inside > function > scope are processed, but is there a way to treat function declarations > differently from variable declarations? There are no complications specific to local declarations, except maybe some kind of conservative definite initalization analysis. I guess it's just not implemented and the spec has been modelled after the implementation. An implementation would have to make sure to handle mixins correctly. (just looking at syntactic properties is not enough to decide whether something can be forward-referenced because of those.) string foo(){ return "foo"; } void fun(){ string gen(){ return "void "~foo()~"(){ return `baz`; } "; mixin(gen()); } The above code should be a compiler error. (Similar examples can be constructed in unordered scopes.) -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
