summary refs log tree commit diff stats
path: root/compiler
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2012-07-10 22:17:47 +0200
committerAraq <rumpf_a@web.de>2012-07-10 22:17:47 +0200
commit483f28d1cf4baedbce900bc8278e8508127351cc (patch)
tree951af23bbaba3531be7f782a250c07a0bb9cd0de /compiler
parent607f46a61afebc7a9e1ab7c66570b6573d91ff6c (diff)
downloadNim-483f28d1cf4baedbce900bc8278e8508127351cc.tar.gz
fixes #147
Diffstat (limited to 'compiler')
-rwxr-xr-xcompiler/semexprs.nim3
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim
index aea1227d0..803dcdcfe 100755
--- a/compiler/semexprs.nim
+++ b/compiler/semexprs.nim
@@ -762,10 +762,11 @@ proc makeDeref(n: PNode): PNode =
     result = newNodeIT(nkHiddenDeref, n.info, t.sons[0])
     addSon(result, n)
     t = skipTypes(t.sons[0], {tyGenericInst})
-  if t.kind in {tyPtr, tyRef}: 
+  while t.kind in {tyPtr, tyRef}:
     var a = result
     result = newNodeIT(nkHiddenDeref, n.info, t.sons[0])
     addSon(result, a)
+    t = skipTypes(t.sons[0], {tyGenericInst})
 
 proc builtinFieldAccess(c: PContext, n: PNode, flags: TExprFlags): PNode =
   ## returns nil if it's not a built-in field access