Maybe this is a duplicated error report, but I haven't found it. Current dmd 2.049 doesn't support nested functions with "auto" return value: void main() { auto foo() { return 1; } } DMD shows: test.d(2): no identifier for declarator foo test.d(2): semicolon expected, not '{' But this is an useful feature to have because "auto" is becoming increasingly important as lazy Ranges often have a very complex type.
i found it too,^-^
In DMD 2.053 the error messages are: test.d(2): function declaration without return type. (Note that constructors are always named 'this') test.d(2): no identifier for declarator foo()
*** This issue has been marked as a duplicate of issue 4401 ***