summary refs log tree commit diff stats
path: root/tests/procvar
diff options
context:
space:
mode:
Diffstat (limited to 'tests/procvar')
-rw-r--r--tests/procvar/tgenericprocvar.nim5
-rw-r--r--tests/procvar/tprocvar.nim43
-rw-r--r--tests/procvar/tprocvar2.nim32
-rw-r--r--tests/procvar/tprocvarmismatch.nim18
-rw-r--r--tests/procvar/tprocvars.nim6
5 files changed, 50 insertions, 54 deletions
diff --git a/tests/procvar/tgenericprocvar.nim b/tests/procvar/tgenericprocvar.nim
deleted file mode 100644
index e642e3577..000000000
--- a/tests/procvar/tgenericprocvar.nim
+++ /dev/null
@@ -1,5 +0,0 @@
-proc foo[T](thing: T) =
-    discard thing
-
-var a: proc (thing: int) {.nimcall.} = foo[int]
-
diff --git a/tests/procvar/tprocvar.nim b/tests/procvar/tprocvar.nim
index f523aa391..14f24efdc 100644
--- a/tests/procvar/tprocvar.nim
+++ b/tests/procvar/tprocvar.nim
@@ -1,18 +1,39 @@
 discard """
-  errormsg: "type mismatch"
-  line: 17
-  file: "tprocvar.nim"
+  output: '''
+papbpcpdpe7
+'''
 """
 
-type
-  TCallback = proc (a, b: int)
+block genericprocvar:
+  proc foo[T](thing: T) =
+    discard thing
+  var a: proc (thing: int) {.nimcall.} = foo[int]
 
-proc huh(x, y: var int) =
-  x = 0
-  y = x+1
 
-proc so(c: TCallback) =
-  c(2, 4)
+block tprocvar2:
+  proc pa() {.cdecl.} = write(stdout, "pa")
+  proc pb() {.cdecl.} = write(stdout, "pb")
+  proc pc() {.cdecl.} = write(stdout, "pc")
+  proc pd() {.cdecl.} = write(stdout, "pd")
+  proc pe() {.cdecl.} = write(stdout, "pe")
 
-so(huh)
+  const algos = [pa, pb, pc, pd, pe]
+  var x: proc (a, b: int): int {.cdecl.}
+
+  proc ha(c, d: int): int {.cdecl.} =
+    echo(c + d)
+    result = c + d
+
+  for a in items(algos):
+    a()
+
+  x = ha
+  discard x(3, 4)
+
+
+block tprocvars:
+  proc doSomething(v: int, x: proc(v:int):int): int = return x(v)
+  proc doSomething(v: int, x: proc(v:int)) = x(v)
+
+  doAssert doSomething(10, proc(v: int): int = return v div 2) == 5
 
diff --git a/tests/procvar/tprocvar2.nim b/tests/procvar/tprocvar2.nim
deleted file mode 100644
index a590bc4bd..000000000
--- a/tests/procvar/tprocvar2.nim
+++ /dev/null
@@ -1,32 +0,0 @@
-discard """
-  file: "tprocvar.nim"
-  output: "papbpcpdpe7"
-"""
-# test variables of type proc
-
-proc pa() {.cdecl.} = write(stdout, "pa")
-proc pb() {.cdecl.} = write(stdout, "pb")
-proc pc() {.cdecl.} = write(stdout, "pc")
-proc pd() {.cdecl.} = write(stdout, "pd")
-proc pe() {.cdecl.} = write(stdout, "pe")
-
-const
-  algos = [pa, pb, pc, pd, pe]
-
-var
-  x: proc (a, b: int): int {.cdecl.}
-
-proc ha(c, d: int): int {.cdecl.} =
-  echo(c + d)
-  result = c + d
-
-for a in items(algos):
-  a()
-
-x = ha
-discard x(3, 4)
-
-#OUT papbpcpdpe7
-
-
-
diff --git a/tests/procvar/tprocvarmismatch.nim b/tests/procvar/tprocvarmismatch.nim
new file mode 100644
index 000000000..4d6be9be6
--- /dev/null
+++ b/tests/procvar/tprocvarmismatch.nim
@@ -0,0 +1,18 @@
+discard """
+  errormsg: "type mismatch"
+  line: 17
+  file: "tprocvarmismatch.nim"
+"""
+
+type
+  TCallback = proc (a, b: int)
+
+proc huh(x, y: var int) =
+  x = 0
+  y = x+1
+
+proc so(c: TCallback) =
+  c(2, 4)
+
+so(huh)
+
diff --git a/tests/procvar/tprocvars.nim b/tests/procvar/tprocvars.nim
deleted file mode 100644
index 50d5d29f2..000000000
--- a/tests/procvar/tprocvars.nim
+++ /dev/null
@@ -1,6 +0,0 @@
-proc doSomething(v: int, x: proc(v:int):int): int = return x(v)
-proc doSomething(v: int, x: proc(v:int)) = x(v)
-
-
-echo doSomething(10, proc(v: int): int = return v div 2)
-