summary refs log tree commit diff stats
path: root/tests/notnil/tnotnil4.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/notnil/tnotnil4.nim')
-rw-r--r--tests/notnil/tnotnil4.nim23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/notnil/tnotnil4.nim b/tests/notnil/tnotnil4.nim
new file mode 100644
index 000000000..c5178f71b
--- /dev/null
+++ b/tests/notnil/tnotnil4.nim
@@ -0,0 +1,23 @@
+discard ""
+type
+   TObj = ref object
+
+{.experimental: "notnil".}
+
+proc check(a: TObj not nil) =
+  echo repr(a)
+
+proc doit() =
+   var x : array[0..1, TObj]
+
+   let y = x[0]
+   if y != nil:
+      check(y)
+
+doit()
+
+# bug #2352
+
+proc p(x: proc() {.noconv.} not nil) = discard
+p(proc() {.noconv.} = discard)
+# Error: cannot prove 'proc () {.noconv.} = discard ' is not nil