summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorZahary Karadjov <zahary@gmail.com>2013-09-07 11:44:11 +0300
committerZahary Karadjov <zahary@gmail.com>2013-09-07 11:55:19 +0300
commitf05ac0cb23c6d38ff74754d7bdbcf404a226c90b (patch)
treec87f08f8c2a60690ef6901608881a7a58c9fe718 /compiler
parentff1273a3123ba8296780d62d7ad67ffee8c4b8c2 (diff)
downloadNim-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.cfg2
-rw-r--r--compiler/semexprs.nim2
-rw-r--r--compiler/semtypes.nim4
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