fixes a converter handling regression that caused private converters to leak into client modules; fixes #19213; [backport:1.6] (#19229)

(cherry picked from commit 502ac4ed5e)
This commit is contained in:
Andreas Rumpf
2021-12-09 13:56:51 +01:00
committed by narimiran
parent c14008d77f
commit 7cf5e73fb7
3 changed files with 17 additions and 2 deletions

View File

@@ -185,11 +185,13 @@ template addUnnamedIt(c: PContext, fromMod: PSym; filter: untyped) {.dirty.} =
for it in mitems c.graph.ifaces[fromMod.position].converters:
if filter:
loadPackedSym(c.graph, it)
addConverter(c, it)
if sfExported in it.sym.flags:
addConverter(c, it)
for it in mitems c.graph.ifaces[fromMod.position].patterns:
if filter:
loadPackedSym(c.graph, it)
addPattern(c, it)
if sfExported in it.sym.flags:
addPattern(c, it)
for it in mitems c.graph.ifaces[fromMod.position].pureEnums:
if filter:
loadPackedSym(c.graph, it)

View File

@@ -0,0 +1,3 @@
converter toBool(x: uint32): bool = x != 0
# Note: This convertes is not exported!

View File

@@ -0,0 +1,10 @@
discard """
output: '''5'''
joinable: false
"""
import mdontleak
# bug #19213
let a = 5'u32
echo a