parent
6f3476d39c
commit
41555ca86f
3 changed files with 15 additions and 3 deletions
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue