mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-06 07:38:24 +00:00
* fix #19678 Broken behavior with string ranges in case labels * Update compiler/semtypes.nim Co-authored-by: Andreas Rumpf <rumpf_a@web.de> Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
This commit is contained in:
@@ -554,6 +554,8 @@ proc semBranchRange(c: PContext, t, a, b: PNode, covered: var Int128): PNode =
|
||||
checkMinSonsLen(t, 1, c.config)
|
||||
let ac = semConstExpr(c, a)
|
||||
let bc = semConstExpr(c, b)
|
||||
if ac.kind in {nkStrLit..nkTripleStrLit} or bc.kind in {nkStrLit..nkTripleStrLit}:
|
||||
localError(c.config, b.info, "range of string is invalid")
|
||||
let at = fitNode(c, t[0].typ, ac, ac.info).skipConvTakeType
|
||||
let bt = fitNode(c, t[0].typ, bc, bc.info).skipConvTakeType
|
||||
|
||||
|
||||
17
tests/range/t19678.nim
Normal file
17
tests/range/t19678.nim
Normal file
@@ -0,0 +1,17 @@
|
||||
discard """
|
||||
cmd: "nim check --hints:off $file"
|
||||
errormsg: ""
|
||||
nimout: '''
|
||||
t19678.nim(13, 13) Error: range of string is invalid
|
||||
|
||||
|
||||
|
||||
'''
|
||||
"""
|
||||
|
||||
case "5":
|
||||
of "0" .. "9":
|
||||
discard
|
||||
else:
|
||||
discard
|
||||
|
||||
Reference in New Issue
Block a user