summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/semtypes.nim4
-rw-r--r--doc/manual.txt8
2 files changed, 6 insertions, 6 deletions
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``
diff --git a/doc/manual.txt b/doc/manual.txt
index e34e1b164..cb1bb83aa 100644
--- a/doc/manual.txt
+++ b/doc/manual.txt
@@ -2228,12 +2228,12 @@ type.
 If the expression is not of an ordinal type, and no ``else`` part is
 given, control passes after the ``case`` statement.
 
-To suppress the static error in the ordinal case an ``else`` part with a ``nil``
-statement can be used.
+To suppress the static error in the ordinal case an ``else`` part with an
+empty ``discard`` statement can be used.
 
 As a special semantic extension, an expression in an ``of`` branch of a case
-statement may evaluate to a set constructor; the set is then expanded into 
-a list of its elements:
+statement may evaluate to a set or array constructor; the set or array is then
+expanded into a list of its elements:
 
 .. code-block:: nimrod
   const