mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-29 09:24:36 +00:00
* merge magics * merge metatype tests * merge method tests * merge objects tests * change `import future` to `import sugar` Nim in Action tests are left with `import future`, to ensure compatibility. * merge overload tests * merge proc tests * merge procvar tests * merge range tests * merge seq tests * merge sets tests * remove wrong assert from `tsets3` * fix `jsTests` * better 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
|
|
|