Compiling this piece of code:
--
int x = {
--
makes dmd's parser loop inifitenly, consuming the machine's memory. It also happens in 1.020.
Although no one would ever write such a code, if the parser is ported and used for an IDE, it may freeze the IDE (I found it in Descent). There, it's very normal if the user stops typing at "{".
Fix: in parser.d, Parser::parseInitializer, after the first loop after "braces = 1;", in the swich of the loop add a "case TOKeof:" which breaks out of the for (I'm seeing a goto there :-P). A "break" must also be added in the next while(1) loop, also in a new "case TOKeof:".