summary refs log tree commit diff stats
path: root/tests/ccgbugs/tclosureeq.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ccgbugs/tclosureeq.nim')
-rw-r--r--tests/ccgbugs/tclosureeq.nim19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/ccgbugs/tclosureeq.nim b/tests/ccgbugs/tclosureeq.nim
new file mode 100644
index 000000000..0486a9559
--- /dev/null
+++ b/tests/ccgbugs/tclosureeq.nim
@@ -0,0 +1,19 @@
+discard """
+  output: '''true
+true'''
+"""
+
+# bug #4186
+type
+  Predicate[T] = proc(item: T): bool
+
+proc a[T](): Predicate[T] =
+  return nil
+
+proc b[T](): Predicate[T] =
+  return a[T]()
+
+echo b[int]() == nil  # ok
+
+let x = b[int]()
+echo x == nil     #won't compile