fix #17941: UnusedImport works for var/let/const/type invoked inside a generic (#17942)

* fix #17941: UnusedImport works for var/let/const/type invoked inside a generic

* fixup
This commit is contained in:
Timothee Cour
2021-05-08 00:56:46 -07:00
committed by GitHub
parent e224865b3b
commit 38b41f893a
4 changed files with 6 additions and 4 deletions

View File

@@ -189,6 +189,9 @@ proc semGenericStmt(c: PContext, n: PNode,
case n.kind
of nkIdent, nkAccQuoted:
result = lookup(c, n, flags, ctx)
if result != nil and result.kind == nkSym:
assert result.sym != nil
markUsed(c, n.info, result.sym)
of nkDotExpr:
#let luf = if withinMixin notin flags: {checkUndeclared} else: {}
#var s = qualifiedLookUp(c, n, luf)

View File

@@ -132,7 +132,7 @@ template encodeInternal(s, alphabet: typed): untyped =
result.setLen(outputIndex)
template encodeImpl() {.dirty.} =
when nimVM:
when nimvm:
block:
let lookupTableVM = if safe: cb64safeVM else: cb64VM
encodeInternal(s, lookupTableVM)

View File

@@ -262,7 +262,7 @@ proc expandIfNeeded[T](deq: var Deque[T]) =
var n = newSeq[T](cap * 2)
var i = 0
for x in mitems(deq):
when nimVM: n[i] = x # workaround for VM bug
when nimvm: n[i] = x # workaround for VM bug
else: n[i] = move(x)
inc i
deq.data = move(n)

View File

@@ -40,8 +40,7 @@ type
OsPlatform* {.pure.} = enum ## the OS this program will run on.
none, dos, windows, os2, linux, morphos, skyos, solaris,
irix, netbsd, freebsd, openbsd, aix, palmos, qnx, amiga,
atari, netware, macos, macosx, haiku, android, js,
standalone, nintendoswitch
atari, netware, macos, macosx, haiku, android, js, standalone, nintendoswitch
const
targetOS* = when defined(windows): OsPlatform.windows