mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 18:02:05 +00:00
@@ -121,9 +121,10 @@ proc generateInstance(c: PContext, fn: PSym, pt: TIdTable,
|
||||
instantiateGenericParamList(c, n.sons[genericParamsPos], pt, entry)
|
||||
n.sons[genericParamsPos] = ast.emptyNode
|
||||
# semantic checking for the parameters:
|
||||
if n.sons[paramsPos].kind != nkEmpty:
|
||||
if n.sons[paramsPos].kind != nkEmpty:
|
||||
removeDefaultParamValues(n.sons[ParamsPos])
|
||||
semParamList(c, n.sons[ParamsPos], nil, result)
|
||||
#echo "generated this return type: ", renderTree(n.sons[ParamsPos])
|
||||
addParams(c, result.typ.n)
|
||||
else:
|
||||
result.typ = newTypeS(tyProc, c)
|
||||
|
||||
@@ -231,7 +231,8 @@ proc typeRel(mapping: var TIdTable, f, a: PType): TTypeRelation =
|
||||
assert(f != nil)
|
||||
assert(a != nil)
|
||||
if a.kind == tyGenericInst and
|
||||
skipTypes(f, {tyVar}).kind notin {tyGenericBody, tyGenericInvokation}:
|
||||
skipTypes(f, {tyVar}).kind notin {
|
||||
tyGenericBody, tyGenericInvokation, tyGenericParam}:
|
||||
return typeRel(mapping, f, lastSon(a))
|
||||
if a.kind == tyVar and f.kind != tyVar:
|
||||
return typeRel(mapping, f, a.sons[0])
|
||||
|
||||
@@ -17,10 +17,12 @@ proc on*(emitter: var TEventEmitter, event: string, func: proc(e: TEventArgs)) =
|
||||
#append(emitter.events[event], func)
|
||||
#adds the function to the event's list. I get a error here too.
|
||||
|
||||
proc initEmitter(emitter: TEventEmitter) =
|
||||
proc initEmitter(emitter: var TEventEmitter) =
|
||||
emitter.events = initTable[string, TDoublyLinkedList[proc(e: TEventArgs)]]()
|
||||
|
||||
var ee: TEventEmitter
|
||||
var
|
||||
ee: TEventEmitter
|
||||
args: TEventArgs
|
||||
ee.on("print", proc(e: TEventArgs) = echo("pie"))
|
||||
ee.emit("print")
|
||||
ee.emit("print", args)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user