invoke createTypeBoundOps for constructors (#12878)

This commit is contained in:
cooldome 2019-12-11 10:46:20 +00:00 • committed by GitHub
commit 94289161f9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -855,9 +855,16 @@ proc track(tracked: PEffects, n: PNode) =
track(tracked, x)
if x[0].kind == nkSym and sfDiscriminant in x[0].sym.flags:
addDiscriminantFact(tracked.guards, x)
if tracked.owner.kind != skMacro:
createTypeBoundOps(tracked, x[1].typ, n.info)
setLen(tracked.guards.s, oldFacts)
if tracked.owner.kind != skMacro:
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:
let pragmaList = n[0]
let oldLocked = tracked.locked.len