summary refs log tree commit diff stats
path: root/tests/range
diff options
context:
space:
mode:
authorJasper Jenkins <jasper.vs.jenkins@gmail.com>2020-01-20 07:56:59 -0800
committerAndreas Rumpf <rumpf_a@web.de>2020-01-20 16:56:59 +0100
commit0606b6a44e2778697869ed33bff000a1548f36aa (patch)
treeb595df7737c047925c6ac7b96f3745b4b1b2c6c9 /tests/range
parent470faa97c60aa5d8153f00083913aca4f0dc1fdf (diff)
downloadNim-0606b6a44e2778697869ed33bff000a1548f36aa.tar.gz
fix range[enum] type conversion (#13204) [backport]
Diffstat (limited to 'tests/range')
-rw-r--r--tests/range/tenums.nim33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/range/tenums.nim b/tests/range/tenums.nim
new file mode 100644
index 000000000..3cdf06fe2
--- /dev/null
+++ b/tests/range/tenums.nim
@@ -0,0 +1,33 @@
+discard """
+  cmd: "nim check --hints:off $file"
+  errormsg: "type mismatch: got <BC>"
+  nimout: '''
+tenums.nim(32, 20) Error: type mismatch: got <Letters>
+but expected one of:
+proc takesChristmasColor(color: ChristmasColors)
+  first type mismatch at position: 1
+  required type for color: ChristmasColors
+  but expression 'A' is of type: Letters
+
+expression: takesChristmasColor(A)
+tenums.nim(33, 20) Error: type mismatch: got <BC>
+but expected one of:
+proc takesChristmasColor(color: ChristmasColors)
+  first type mismatch at position: 1
+  required type for color: ChristmasColors
+  but expression 'BC(C)' is of type: BC
+
+expression: takesChristmasColor(BC(C))
+'''
+"""
+
+type
+  Colors = enum Red, Green, Blue
+  ChristmasColors = range[Red .. Green]
+  Letters = enum A, B, C
+  BC = range[B .. C]
+
+proc takesChristmasColor(color: ChristmasColors) = discard
+takesChristmasColor(Green)
+takesChristmasColor(A)
+takesChristmasColor(BC(C))