Fix infinite recursion in semtypes with recursive types

Fixes #2213
This commit is contained in:
def 2015-03-13 02:17:46 +01:00
commit c19d6cb620

View file

@ -787,6 +787,8 @@ proc liftParamType(c: PContext, procKind: TSymKind, genericParams: PNode,
result = addImplicitGeneric(typ)
else:
for i in 0 .. <paramType.sons.len:
if paramType.sons[i] == paramType:
localError(info, errIllegalRecursionInTypeX, typeToString(paramType))
var lifted = liftingWalk(paramType.sons[i])
if lifted != nil:
paramType.sons[i] = lifted