diff options
author | Araq <rumpf_a@web.de> | 2012-07-16 23:00:57 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2012-07-16 23:00:57 +0200 |
commit | 8d99753d6320489e4de8cf186415b0a7be8260b4 (patch) | |
tree | 2008a25dac1df222efc2c205fdf772ba5a533ecc /tests | |
parent | 56b4e3ad91a0dda632ba6bab7139665a3da163d3 (diff) | |
download | Nim-8d99753d6320489e4de8cf186415b0a7be8260b4.tar.gz |
preparations for making 'closure' the default calling convention for proc types
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/compile/tnewlibs.nim | 3 | ||||
-rw-r--r-- | tests/run/tclosure3.nim | 6 | ||||
-rw-r--r-- | tests/run/teventemitter.nim | 10 |
3 files changed, 11 insertions, 8 deletions
diff --git a/tests/compile/tnewlibs.nim b/tests/compile/tnewlibs.nim index ab358f557..041316290 100755 --- a/tests/compile/tnewlibs.nim +++ b/tests/compile/tnewlibs.nim @@ -10,7 +10,8 @@ import osproc, cairowin32, cairoxlib, gl, glut, glu, glx, glext, wingl, - lua, lualib, lauxlib, mysql, sqlite3, db_mongo, md5 + lua, lualib, lauxlib, mysql, sqlite3, db_mongo, md5, asyncio, mimetypes, + cookies, events, ftpclient writeln(stdout, "test compilation of binding modules") diff --git a/tests/run/tclosure3.nim b/tests/run/tclosure3.nim index b2748035b..bb217387f 100644 --- a/tests/run/tclosure3.nim +++ b/tests/run/tclosure3.nim @@ -6,13 +6,13 @@ discard """ proc main = const n = 30 for iterations in 0..50_000: - var s: seq[proc(): int {.closure.}] = @[] + var s: seq[proc(): string {.closure.}] = @[] for i in 0 .. n-1: let ii = i - s.add(proc(): int = return ii*ii) + s.add(proc(): string = return $(ii*ii)) for i in 0 .. n-1: let val = s[i]() - if val != i*i: echo "bug ", val + if val != $(i*i): echo "bug ", val if getOccupiedMem() > 3000_000: quit("still a leak!") echo "success" diff --git a/tests/run/teventemitter.nim b/tests/run/teventemitter.nim index 8394776a8..9ecf72ea2 100644 --- a/tests/run/teventemitter.nim +++ b/tests/run/teventemitter.nim @@ -7,20 +7,22 @@ import tables, lists type TEventArgs = object of TObject TEventEmitter = object of TObject - events*: TTable[string, TDoublyLinkedList[proc(e: TEventArgs)]] + events*: TTable[string, TDoublyLinkedList[proc(e: TEventArgs) {.nimcall.}]] proc emit*(emitter: TEventEmitter, event: string, args: TEventArgs) = for func in nodes(emitter.events[event]): func.value(args) #call function with args. -proc on*(emitter: var TEventEmitter, event: string, func: proc(e: TEventArgs)) = +proc on*(emitter: var TEventEmitter, event: string, + func: proc(e: TEventArgs) {.nimcall.}) = if not hasKey(emitter.events, event): - var list: TDoublyLinkedList[proc(e: TEventArgs)] + var list: TDoublyLinkedList[proc(e: TEventArgs) {.nimcall.}] add(emitter.events, event, list) #if not, add it. append(emitter.events.mget(event), func) proc initEmitter(emitter: var TEventEmitter) = - emitter.events = initTable[string, TDoublyLinkedList[proc(e: TEventArgs)]]() + emitter.events = initTable[string, + TDoublyLinkedList[proc(e: TEventArgs) {.nimcall.}]]() var ee: TEventEmitter |