diff options
Diffstat (limited to 'tests/ccgbugs/twrong_discriminant_check.nim')
-rw-r--r-- | tests/ccgbugs/twrong_discriminant_check.nim | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/ccgbugs/twrong_discriminant_check.nim b/tests/ccgbugs/twrong_discriminant_check.nim new file mode 100644 index 000000000..a802f45ef --- /dev/null +++ b/tests/ccgbugs/twrong_discriminant_check.nim @@ -0,0 +1,30 @@ +discard """ + output: "(kind: None)" +""" + +when true: + # bug #2637 + + type + OptionKind = enum + None, + Some + + Option*[T] = object + case kind: OptionKind + of None: + discard + of Some: + value*: T + + proc none*[T](): Option[T] = + Option[T](kind: None) + + proc none*(T: typedesc): Option[T] = none[T]() + + + proc test(): Option[int] = + int.none + + echo test() + |