This commit is contained in:
Araq
2014-04-06 22:05:42 +02:00
parent 5d6053173a
commit 7c065bfadf
12 changed files with 10 additions and 2 deletions

View File

@@ -68,7 +68,8 @@ proc hlo(c: PContext, n: PNode): PNode =
result = n
else:
if n.kind in {nkFastAsgn, nkAsgn, nkIdentDefs, nkVarTuple} and
n.sons[0].kind == nkSym and sfGlobal in n.sons[0].sym.flags:
n.sons[0].kind == nkSym and
{sfGlobal, sfPure} * n.sons[0].sym.flags == {sfGlobal, sfPure}:
# do not optimize 'var g {.global} = re(...)' again!
return n
result = applyPatterns(c, n)

View File

@@ -1,6 +1,7 @@
discard """
output: '''3060
true'''
true
3'''
"""
template arithOps: expr = (`+` | `-` | `*`)
@@ -19,3 +20,9 @@ var
c = false
a = b and a
echo a
# bug #798
template t012{(0|1|2){x}}(x: expr): expr = x+1
let z = 1
# outputs 3 thanks to fixpoint iteration:
echo z