restore return type inference

This commit is contained in:
Zahary Karadjov
2013-12-30 00:03:57 +02:00
parent 723efe7cfb
commit fa3bb8d66b
2 changed files with 4 additions and 1 deletions

View File

@@ -905,6 +905,9 @@ template `{}=`*(n: PNode, i: int, s: PNode): stmt =
var emptyNode* = newNode(nkEmpty)
# There is a single empty node that is shared! Do not overwrite it!
proc isMetaType*(t: PType): bool =
return t.kind in tyMetaTypes or tfHasMeta in t.flags
proc linkTo*(t: PType, s: PSym): PType {.discardable.} =
t.sym = s
s.typ = t

View File

@@ -1164,7 +1164,7 @@ proc semAsgn(c: PContext, n: PNode): PNode =
if lhsIsResult: {efAllowDestructor} else: {})
if lhsIsResult:
n.typ = enforceVoidContext
if lhs.sym.typ.kind == tyGenericParam:
if lhs.sym.typ.isMetaType:
if cmpTypes(c, lhs.typ, rhs.typ) == isGeneric:
internalAssert c.p.resultSym != nil
lhs.typ = rhs.typ