invoke createTypeBoundOps for constructors (#12878)
This commit is contained in:
parent
3524944e21
commit
94289161f9
1 changed files with 7 additions and 0 deletions
|
|
@ -855,9 +855,16 @@ proc track(tracked: PEffects, n: PNode) =
|
||||||
track(tracked, x)
|
track(tracked, x)
|
||||||
if x[0].kind == nkSym and sfDiscriminant in x[0].sym.flags:
|
if x[0].kind == nkSym and sfDiscriminant in x[0].sym.flags:
|
||||||
addDiscriminantFact(tracked.guards, x)
|
addDiscriminantFact(tracked.guards, x)
|
||||||
|
if tracked.owner.kind != skMacro:
|
||||||
|
createTypeBoundOps(tracked, x[1].typ, n.info)
|
||||||
setLen(tracked.guards.s, oldFacts)
|
setLen(tracked.guards.s, oldFacts)
|
||||||
if tracked.owner.kind != skMacro:
|
if tracked.owner.kind != skMacro:
|
||||||
createTypeBoundOps(tracked, n.typ, n.info)
|
createTypeBoundOps(tracked, n.typ, n.info)
|
||||||
|
of nkTupleConstr:
|
||||||
|
for i in 0..<n.len:
|
||||||
|
track(tracked, n[i])
|
||||||
|
if tracked.owner.kind != skMacro:
|
||||||
|
createTypeBoundOps(tracked, n[i].typ, n.info)
|
||||||
of nkPragmaBlock:
|
of nkPragmaBlock:
|
||||||
let pragmaList = n[0]
|
let pragmaList = n[0]
|
||||||
let oldLocked = tracked.locked.len
|
let oldLocked = tracked.locked.len
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue