From 5f62054f38c2c1150e4f6d464e6802df5aa385a4 Mon Sep 17 00:00:00 2001 From: Hackerpilot Date: Mon, 14 Apr 2014 14:07:33 -0700 Subject: [PATCH] Fix #162 --- stdx/d/parser.d | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/stdx/d/parser.d b/stdx/d/parser.d index f6d3874..0c59f00 100644 --- a/stdx/d/parser.d +++ b/stdx/d/parser.d @@ -4522,8 +4522,18 @@ q{(int a, ...) if (!currentIs(tok!"]")) { node.lower = parseAssignExpression(); + if (node.lower is null) + { + error("assignExpression expected"); + return null; + } expect(tok!".."); node.upper = parseAssignExpression(); + if (node.upper is null) + { + error("assignExpression expected"); + return null; + } } if (expect(tok!"]") is null) return null; return node; @@ -4777,8 +4787,13 @@ q{(int a, ...) mixin(traceEnterAndExit!(__FUNCTION__)); auto node = allocate!StructInitializer; expect(tok!"{"); - node.structMemberInitializers = parseStructMemberInitializers(); - expect(tok!"}"); + if (currentIs(tok!"}")) + advance(); + else + { + node.structMemberInitializers = parseStructMemberInitializers(); + expect(tok!"}"); + } return node; }