From 42556e6558cadb43f66e20c01fa31a43a1865789 Mon Sep 17 00:00:00 2001 From: Callum Anderson Date: Thu, 6 Mar 2014 10:45:28 +1100 Subject: [PATCH] Distinguish between struct initializer and func literal call expression --- stdx/d/parser.d | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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();