diff --git a/stdx/d/parser.d b/stdx/d/parser.d index a95ec5a..10a0049 100644 --- a/stdx/d/parser.d +++ b/stdx/d/parser.d @@ -3875,7 +3875,13 @@ invariant() foo(); mixin(traceEnterAndExit!(__FUNCTION__)); auto node = allocate!NonVoidInitializer; if (currentIs(tok!"{")) - node.structInitializer = parseStructInitializer(); + { + auto b = peekPastBraces(); + if (b !is null && (b.type == tok!"(")) + node.assignExpression = parseAssignExpression(); + else + node.structInitializer = parseStructInitializer(); + } else if (currentIs(tok!"[")) { auto b = peekPastBrackets();