diff options
author | Zahary Karadjov <zahary@gmail.com> | 2013-09-07 11:44:11 +0300 |
---|---|---|
committer | Zahary Karadjov <zahary@gmail.com> | 2013-09-07 11:55:19 +0300 |
commit | f05ac0cb23c6d38ff74754d7bdbcf404a226c90b (patch) | |
tree | c87f08f8c2a60690ef6901608881a7a58c9fe718 /compiler | |
parent | ff1273a3123ba8296780d62d7ad67ffee8c4b8c2 (diff) | |
download | Nim-f05ac0cb23c6d38ff74754d7bdbcf404a226c90b.tar.gz |
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
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/nimrod.cfg | 2 | ||||
-rw-r--r-- | compiler/semexprs.nim | 2 | ||||
-rw-r--r-- | compiler/semtypes.nim | 4 |
3 files changed, 5 insertions, 3 deletions
diff --git a/compiler/nimrod.cfg b/compiler/nimrod.cfg index ac8f732f1..fbebe1cec 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 2681150e0..5dce7be54 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 64140274e..d61a1d481 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 |