diff options
author | Jasper Jenkins <jasper.vs.jenkins@gmail.com> | 2020-01-20 07:56:59 -0800 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2020-01-20 16:56:59 +0100 |
commit | 0606b6a44e2778697869ed33bff000a1548f36aa (patch) | |
tree | b595df7737c047925c6ac7b96f3745b4b1b2c6c9 /tests/range | |
parent | 470faa97c60aa5d8153f00083913aca4f0dc1fdf (diff) | |
download | Nim-0606b6a44e2778697869ed33bff000a1548f36aa.tar.gz |
fix range[enum] type conversion (#13204) [backport]
Diffstat (limited to 'tests/range')
-rw-r--r-- | tests/range/tenums.nim | 33 |
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)) |