* Improve semchecking for duplicate cases in case statements * Revert to previous solution * Improve test
50 lines
No EOL
627 B
Nim
50 lines
No EOL
627 B
Nim
discard """
|
|
output: '''
|
|
OK
|
|
OK
|
|
OK
|
|
'''
|
|
"""
|
|
|
|
type Kind = enum A, B
|
|
var k = A
|
|
|
|
template reject(b) =
|
|
static: doAssert(not compiles(b))
|
|
|
|
reject:
|
|
var i = 2
|
|
case i
|
|
of [1, 1]: discard
|
|
else: discard
|
|
|
|
reject:
|
|
var i = 2
|
|
case i
|
|
of 1, { 1..2 }: discard
|
|
else: discard
|
|
|
|
reject:
|
|
var i = 2
|
|
case i
|
|
of { 1, 1 }: discard
|
|
of { 1, 1 }: discard
|
|
else: discard
|
|
|
|
reject:
|
|
case k
|
|
of [A, A]: discard
|
|
|
|
var i = 2
|
|
case i
|
|
of { 1, 1 }: discard
|
|
of { 2, 2 }: echo "OK"
|
|
else: discard
|
|
|
|
case i
|
|
of { 10..30, 15..25, 5..15, 25..35 }: discard
|
|
else: echo "OK"
|
|
|
|
case k
|
|
of {A, A..A}: echo "OK"
|
|
of B: discard |