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

This commit is contained in:
Andreas Rumpf 2021-12-09 13:56:51 +01:00 • committed by GitHub
commit 502ac4ed5e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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: for it in mitems c.graph.ifaces[fromMod.position].converters:
if filter: if filter:
loadPackedSym(c.graph, it) 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: for it in mitems c.graph.ifaces[fromMod.position].patterns:
if filter: if filter:
loadPackedSym(c.graph, it) 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: for it in mitems c.graph.ifaces[fromMod.position].pureEnums:
if filter: if filter:
loadPackedSym(c.graph, it) 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