Files
Nim/tests/proc/tprocvar.nim
metagn b97d603cd0 some test cleanups & category reorganization (#22010)
* clean up some test categories

* mention exact slice issue

* magics into system

* move trangechecks into overflow

* move tmemory to system

* try fix CI

* try fix CI

* final CI fix
2023-06-06 06:54:07 +02:00

40 lines
822 B
Nim

discard """
output: '''
papbpcpdpe7
'''
"""
block genericprocvar:
proc foo[T](thing: T) =
discard thing
var a: proc (thing: int) {.nimcall.} = foo[int]
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")
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