disjoint checker works with the new countup iterators
This commit is contained in:
parent
eadf648767
commit
2f4472963f
1 changed files with 4 additions and 3 deletions
|
|
@ -317,8 +317,9 @@ proc analyseIf(c: var AnalysisCtx; n: PNode) =
|
||||||
proc analyse(c: var AnalysisCtx; n: PNode) =
|
proc analyse(c: var AnalysisCtx; n: PNode) =
|
||||||
case n.kind
|
case n.kind
|
||||||
of nkAsgn, nkFastAsgn:
|
of nkAsgn, nkFastAsgn:
|
||||||
if n[0].isSingleAssignable and n[1].isLocal:
|
let y = n[1].skipConv
|
||||||
let slot = c.getSlot(n[1].sym)
|
if n[0].isSingleAssignable and y.isLocal:
|
||||||
|
let slot = c.getSlot(y.sym)
|
||||||
slot.alias = n[0].sym
|
slot.alias = n[0].sym
|
||||||
elif n[0].isLocal:
|
elif n[0].isLocal:
|
||||||
# since we already ensure sfAddrTaken is not in s.flags, we only need to
|
# since we already ensure sfAddrTaken is not in s.flags, we only need to
|
||||||
|
|
@ -334,7 +335,7 @@ proc analyse(c: var AnalysisCtx; n: PNode) =
|
||||||
analyse(c, n[0])
|
analyse(c, n[0])
|
||||||
else:
|
else:
|
||||||
analyseSons(c, n)
|
analyseSons(c, n)
|
||||||
addAsgnFact(c.guards, n[0], n[1])
|
addAsgnFact(c.guards, n[0], y)
|
||||||
of nkCallKinds:
|
of nkCallKinds:
|
||||||
# direct call:
|
# direct call:
|
||||||
if n[0].kind == nkSym: analyseCall(c, n, n[0].sym)
|
if n[0].kind == nkSym: analyseCall(c, n, n[0].sym)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue