fixes #12885 [backport] (#12895)

This commit is contained in:
Andreas Rumpf
2019-12-13 19:20:29 +01:00
committed by GitHub
parent a0aa8fa857
commit 347a04606b
3 changed files with 18 additions and 2 deletions

View File

@@ -242,6 +242,10 @@ proc addLocalDecl(c: var TemplCtx, n: var PNode, k: TSymKind) =
proc semTemplSymbol(c: PContext, n: PNode, s: PSym; isField: bool): PNode =
incl(s.flags, sfUsed)
# bug #12885; ideally sem'checking is performed again afterwards marking
# the symbol as used properly, but the nfSem mechanism currently prevents
# that from happening, so we mark the module as used here already:
markOwnerModuleAsUsed(c, s)
# we do not call onUse here, as the identifier is not really
# resolved here. We will fixup the used identifiers later.
case s.kind

3
tests/tools/second.nim Normal file
View File

@@ -0,0 +1,3 @@
import tables
let dataEx* = {1: 2, 3: 4}.toTable

View File

@@ -2,14 +2,23 @@ discard """
cmd: '''nim c --hint[Processing]:off $file'''
nimout: '''
tunused_imports.nim(11, 10) Warning: BEGIN [User]
tunused_imports.nim(27, 10) Warning: END [User]
tunused_imports.nim(25, 8) Warning: imported and not used: 'strutils' [UnusedImport]
tunused_imports.nim(36, 10) Warning: END [User]
tunused_imports.nim(34, 8) Warning: imported and not used: 'strutils' [UnusedImport]
'''
action: "compile"
"""
{.warning: "BEGIN".}
# bug #12885
import tables, second
template test(key: int): untyped =
`[]`(dataEx, key)
echo test(1)
import net, dontmentionme
echo AF_UNIX