From f05ac0cb23c6d38ff74754d7bdbcf404a226c90b Mon Sep 17 00:00:00 2001 From: Zahary Karadjov Date: Sat, 7 Sep 2013 11:44:11 +0300 Subject: [PATCH] fix regressions affecting the echo magic and the creating of rod files the markAndSweep GC was not responsible for the regressions so this commit restores its use --- compiler/nimrod.cfg | 2 +- compiler/semexprs.nim | 2 +- compiler/semtypes.nim | 4 +++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/compiler/nimrod.cfg b/compiler/nimrod.cfg index ac8f732f1f..fbebe1cecf 100644 --- a/compiler/nimrod.cfg +++ b/compiler/nimrod.cfg @@ -2,7 +2,7 @@ mainModule:"nimrod.nim" -# gc:markAndSweep +gc:markAndSweep hint[XDeclaredButNotUsed]:off path:"llvm" diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 2681150e0f..5dce7be54b 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -686,7 +686,7 @@ proc semIndirectOp(c: PContext, n: PNode, flags: TExprFlags): PNode = result = n.sons[0] result.kind = nkCall for i in countup(1, sonsLen(n) - 1): addSon(result, n.sons[i]) - return semDirectOp(c, result, flags) + return semExpr(c, result, flags) else: n.sons[0] = semExpr(c, n.sons[0]) let nOrig = n.copyTree diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index 64140274ea..d61a1d481b 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -608,7 +608,9 @@ proc liftParamType(c: PContext, procKind: TSymKind, genericParams: PNode, if genericParams.sons[i].sym.name.id == finalTypId.id: return genericParams.sons[i].typ - var s = newSym(skType, finalTypId, typeClass.sym, info) + let owner = if typeClass.sym != nil: typeClass.sym + else: getCurrOwner() + var s = newSym(skType, finalTypId, owner, info) if typId == nil: s.flags.incl(sfAnon) s.linkTo(typeClass) s.position = genericParams.len