diff options
author | Zahary Karadjov <zahary@gmail.com> | 2013-12-30 00:03:57 +0200 |
---|---|---|
committer | Zahary Karadjov <zahary@gmail.com> | 2013-12-30 00:03:57 +0200 |
commit | fa3bb8d66bfa18c3a497db2945df43703d809adc (patch) | |
tree | 40a5b2e3cc93362ea22654e47a52833b24691ebd /compiler | |
parent | 723efe7cfb6cb6ea4147cb5ba407ad3f39ac9032 (diff) | |
download | Nim-fa3bb8d66bfa18c3a497db2945df43703d809adc.tar.gz |
restore return type inference
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/ast.nim | 3 | ||||
-rw-r--r-- | compiler/semexprs.nim | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/compiler/ast.nim b/compiler/ast.nim index 6f30522a2..22b17f673 100644 --- a/compiler/ast.nim +++ b/compiler/ast.nim @@ -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 diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 4e53a5389..14f611c5c 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -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 |