mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-03 10:24:44 +00:00
fixes #798
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user