From f9d7e8db2a8b89575df51768ce9e5aa66c47cc9f Mon Sep 17 00:00:00 2001 From: Araq Date: Sun, 6 Jul 2014 22:56:34 +0200 Subject: implements #1332 --- compiler/semtypes.nim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'compiler') diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index b075e603d..53fe4e266 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -443,14 +443,14 @@ proc semCaseBranch(c: PContext, t, branch: PNode, branchIndex: int, elif isRange(b): branch.sons[i] = semCaseBranchRange(c, t, b, covered) else: + # constant sets and arrays are allowed: var r = semConstExpr(c, b) # for ``{}`` we want to trigger the type mismatch in ``fitNode``: - if r.kind != nkCurly or len(r) == 0: + if r.kind notin {nkCurly, nkBracket} or len(r) == 0: checkMinSonsLen(t, 1) branch.sons[i] = skipConv(fitNode(c, t.sons[0].typ, r)) inc(covered) else: - # constant sets have special rules # first element is special and will overwrite: branch.sons[i]: branch.sons[i] = semCaseBranchSetElem(c, t, r[0], covered) # other elements have to be added to ``branch`` -- cgit 1.4.1-2-gfad0