This commit is contained in:
Andreas Rumpf 2020-01-19 23:30:45 +01:00 • committed by GitHub
commit 41555ca86f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 3 deletions

View file

@ -906,16 +906,26 @@ proc track(tracked: PEffects, n: PNode) =
of nkTypeSection, nkProcDef, nkConverterDef, nkMethodDef, nkIteratorDef,
nkMacroDef, nkTemplateDef, nkLambda, nkDo, nkFuncDef:
discard
of nkCast, nkHiddenStdConv, nkHiddenSubConv, nkConv:
of nkCast:
if n.len == 2:
track(tracked, n[1])
if tracked.owner.kind != skMacro:
createTypeBoundOps(tracked, n.typ, n.info)
of nkHiddenStdConv, nkHiddenSubConv, nkConv:
if n.len == 2:
track(tracked, n[1])
if tracked.owner.kind != skMacro:
createTypeBoundOps(tracked, n.typ, n.info)
# This is a hacky solution in order to fix bug #13110. Hopefully
# a better solution will come up eventually.
if n[1].typ.kind != tyString:
createTypeBoundOps(tracked, n[1].typ, n[1].info)
of nkObjUpConv, nkObjDownConv, nkChckRange, nkChckRangeF, nkChckRange64:
if n.len == 1:
track(tracked, n[0])
if tracked.owner.kind != skMacro:
createTypeBoundOps(tracked, n.typ, n.info)
createTypeBoundOps(tracked, n[0].typ, n[0].info)
of nkBracket:
for i in 0..<n.safeLen: track(tracked, n[i])
if tracked.owner.kind != skMacro: