[backport] add back a check that got accidentically removed; fixes #12379 (#12444)

This commit is contained in:
Andreas Rumpf 2019-10-17 20:02:59 +02:00 • committed by GitHub
commit 81125e2029
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -635,6 +635,12 @@ proc semRecordCase(c: PContext, n: PNode, check: var IntSet, pos: var int,
errorUndeclaredIdentifier(c, n.sons[0].info, typ.sym.name.s)
elif not isOrdinalType(typ):
localError(c.config, n.sons[0].info, "selector must be of an ordinal type, float or string")
elif firstOrd(c.config, typ) != 0:
localError(c.config, n.info, "low(" & $a.sons[0].sym.name.s &
") must be 0 for discriminant")
elif lengthOrd(c.config, typ) > 0x00007FFF:
localError(c.config, n.info, "len($1) must be less than 32768" % a.sons[0].sym.name.s)
for i in 1 ..< len(n):
var b = copyTree(n.sons[i])
addSon(a, b)