mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
* 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
40 lines
822 B
Nim
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
|
|
|