Regarding this: Bugzilla 3556: version(CTFE) I have written the following little D2 program:
import std.stdio: printf; static if (__ctfe) { int foo() { return 1; } } else { int foo() { return 2; } } enum int x1 = foo(); void main() { int x2 = foo(); printf("%d %d\n", x1, x2); } But it doesn't work, I don't understand why. (Isn't the usage of __ctfe normally done at compile time? Otherwise this feature introduces another very special case in the language). ---------------- Can you tell me the purpose of the following 3 changes? ModuleInfo changed from class to struct added static/final function implementations to interfaces http://dsource.org/projects/dmd/changeset/339 Thank you, bye, bearophile