summary refs log tree commit diff stats
path: root/tests/ccgbugs/twrong_discriminant_check.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2015-10-06 15:49:36 +0200
committerAraq <rumpf_a@web.de>2015-10-06 15:51:00 +0200
commit8507f95d68e097f714000f2baa4271ba09f5699e (patch)
tree2bdc205f43f5404ef1bb8652cd8c878936f9ce4a /tests/ccgbugs/twrong_discriminant_check.nim
parent732bdd54a09c2a7a1724a80ffbc6fbe09c697886 (diff)
downloadNim-8507f95d68e097f714000f2baa4271ba09f5699e.tar.gz
fixes #2637
Diffstat (limited to 'tests/ccgbugs/twrong_discriminant_check.nim')
-rw-r--r--tests/ccgbugs/twrong_discriminant_check.nim30
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()
+