fixes #35, fixes #43

This commit is contained in:
Araq
2011-08-08 01:15:09 +02:00
parent cb21fd4f8f
commit 12f22ba68a
4 changed files with 9 additions and 6 deletions

View File

@@ -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)

View File

@@ -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])

View File

@@ -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)

View File

@@ -1,7 +1,6 @@
Version 0.8.14
==============
- fix serious bug that keeps teventemitter from compiling
- ``var T`` as a return type: add ``modGet`` for generics
- optional indentation for 'case' statement
- make threadvar efficient again on linux after testing