diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2016-08-04 00:30:08 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2016-08-04 01:37:41 +0200 |
commit | 6d98c717deb16d265fb1d26528182eb16b07f784 (patch) | |
tree | fea8a5d5a861ae8d5522b3321ec63118225744b3 /compiler | |
parent | 186bfe447515cd32916415f3b8675120f1a9f9ff (diff) | |
download | Nim-6d98c717deb16d265fb1d26528182eb16b07f784.tar.gz |
fixes #4564
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/semexprs.nim | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/semexprs.nim b/compiler/semexprs.nim index 70f795d4a..fd18dc3d7 100644 --- a/compiler/semexprs.nim +++ b/compiler/semexprs.nim @@ -752,14 +752,16 @@ proc semIndirectOp(c: PContext, n: PNode, flags: TExprFlags): PNode = var prc = n.sons[0] if n.sons[0].kind == nkDotExpr: checkSonsLen(n.sons[0], 2) - n.sons[0] = semFieldAccess(c, n.sons[0]) - if n.sons[0].kind == nkDotCall: + let n0 = semFieldAccess(c, n.sons[0]) + if n0.kind == nkDotCall: # it is a static call! - result = n.sons[0] + result = n0 result.kind = nkCall result.flags.incl nfExplicitCall for i in countup(1, sonsLen(n) - 1): addSon(result, n.sons[i]) return semExpr(c, result, flags) + else: + n.sons[0] = n0 else: n.sons[0] = semExpr(c, n.sons[0], {efInCall}) let t = n.sons[0].typ |