diff --git a/std/d/parser.d b/std/d/parser.d index 13aa955..d6a80ed 100644 --- a/std/d/parser.d +++ b/std/d/parser.d @@ -325,7 +325,7 @@ alias core.sys.posix.stdio.fileno fileno; * Parses an ArrayLiteral * * $(GRAMMAR $(RULEDEF arrayLiteral): - * $(LITERAL '[') ($(RULE assignExpression) ($(LITERAL ',') $(RULE assignExpression))*)? $(LITERAL ']') + * $(LITERAL '[') $(RULE argumentList)? $(LITERAL ']') * ;) */ ArrayLiteral parseArrayLiteral() @@ -6258,8 +6258,7 @@ protected: auto b = setBookmark(); scope(exit) goToBookmark(b); advance(); - Expression e = parseExpression(); - return e !is null && currentIs(tok!":"); + return !currentIs(tok!"]") && parseExpression() !is null && currentIs(tok!":"); } bool hasMagicDelimiter(alias L, alias T)()