reorder pass: consider the 'using' statement; disabled debug output

This commit is contained in:
Andreas Rumpf
2017-07-29 10:20:39 +02:00
parent 4150606422
commit dfe067a74a
2 changed files with 10 additions and 6 deletions

View File

@@ -35,7 +35,7 @@ proc computeDeps(n: PNode, declares, uses: var IntSet; topLevel: bool) =
of procDefs:
decl(n[0])
for i in 1..bodyPos: deps(n[i])
of nkLetSection, nkVarSection:
of nkLetSection, nkVarSection, nkUsingStmt:
for a in n:
if a.kind in {nkIdentDefs, nkVarTuple}:
for j in countup(0, a.len-3): decl(a[j])
@@ -99,4 +99,4 @@ proc reorder*(n: PNode): PNode =
result.sons[i].flags = result.sons[i].flags - {nfTempMark, nfPermMark}
result.sons[L - i].flags = result.sons[L - i].flags - {nfTempMark, nfPermMark}
swap(result.sons[i], result.sons[L - i])
echo result
#echo result

View File

@@ -3,10 +3,11 @@ discard """
output: '''works 34
34
defined
first impl'''
3'''
"""
{.reorder: on.}
{.experimental.}
{.push callconv: stdcall.}
proc bar(x: T)
@@ -32,11 +33,14 @@ else:
proc whendep() = echo "undefined"
when not declared(goo):
proc goo() = echo "first impl"
proc goo(my, omy) = echo my
when not declared(goo):
proc goo() = echo "second impl"
proc goo(my, omy) = echo omy
goo()
using
my, omy: int
goo(3, 4)
{.pop.}