diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/accept/compile/tgenericrefs.nim | 2 | ||||
-rw-r--r-- | tests/accept/run/teventemitter.nim | 31 | ||||
-rw-r--r-- | tests/reject/tvarres2.nim | 2 |
3 files changed, 18 insertions, 17 deletions
diff --git a/tests/accept/compile/tgenericrefs.nim b/tests/accept/compile/tgenericrefs.nim index 2a3de7edd..3b7940098 100755 --- a/tests/accept/compile/tgenericrefs.nim +++ b/tests/accept/compile/tgenericrefs.nim @@ -15,7 +15,7 @@ type TA[T] = object -# Cannot instanciate: +# Cannot instantiate: type TA[T] = object a: PA[T] diff --git a/tests/accept/run/teventemitter.nim b/tests/accept/run/teventemitter.nim index 6ebe994b1..166a0cb30 100644 --- a/tests/accept/run/teventemitter.nim +++ b/tests/accept/run/teventemitter.nim @@ -1,23 +1,24 @@ import tables import lists type - TEventArgs = object of TObject + TEventArgs = object of TObject type - TEventEmitter = object of TObject - events*: TTable[string, TDoublyLinkedList[proc(e : TEventArgs)]] -proc on*(emitter : var TEventEmitter, event : string, func : proc(e : TEventArgs)) = - if hasKey(emitter.events, event) == false: - var list: TDoublyLinkedList[proc(e : TEventArgs)] - add(emitter.events,event,list) #if not, add it. - append(emitter.events[event], func) #adds the function to the event's list. I get a error here too. + TEventEmitter = object of TObject + events*: TTable[string, TDoublyLinkedList[proc(e : TEventArgs)]] +proc on*(emitter: var TEventEmitter, event: string, func: proc(e: TEventArgs)) = + if not hasKey(emitter.events, event): + var list: TDoublyLinkedList[proc(e: TEventArgs)] + add(emitter.events,event,list) #if not, add it. + #append(emitter.events[event], func) + #adds the function to the event's list. I get a error here too. -proc emit*(emitter : TEventEmitter, event : string, args : TEventArgs) = - for func in items(emitter.events[event]): - func(args) #call function with args. -proc initEmitter(emitter : TEventEmitter) = - emitter.events = initTable[string, TSinglyLinkedList[TObject]]() +proc emit*(emitter: TEventEmitter, event: string, args: TEventArgs) = + for func in nodes(emitter.events[event]): + func.value(args) #call function with args. +proc initEmitter(emitter: TEventEmitter) = + emitter.events = initTable[string, TDoublyLinkedList[proc(e: TEventArgs)]]() -var ee : TEventEmitter -ee.on("print", proc(e : TEventArgs) = echo("pie")) +var ee: TEventEmitter +ee.on("print", proc(e: TEventArgs) = echo("pie")) ee.emit("print") diff --git a/tests/reject/tvarres2.nim b/tests/reject/tvarres2.nim index 6bda844fc..165e4a36e 100644 --- a/tests/reject/tvarres2.nim +++ b/tests/reject/tvarres2.nim @@ -1,5 +1,5 @@ discard """ - file: "tvarres1.nim" + file: "tvarres2.nim" line: 11 errormsg: "expression has no address" """ |