From 0e4a8bfb289d707909069e72ca24efd2a074a5f1 Mon Sep 17 00:00:00 2001 From: Araq Date: Fri, 9 Aug 2019 16:38:10 +0200 Subject: [PATCH] fixes 'unused module' feature for 32 bit builds of Nim for good [nobackport] --- compiler/importer.nim | 4 ++-- compiler/semdata.nim | 6 ++---- compiler/suggest.nim | 4 ++-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/compiler/importer.nim b/compiler/importer.nim index d048d7fe19..2471f05aaa 100644 --- a/compiler/importer.nim +++ b/compiler/importer.nim @@ -11,7 +11,7 @@ import intsets, ast, astalgo, msgs, options, idents, lookups, - semdata, modulepaths, sigmatch, lineinfos + semdata, modulepaths, sigmatch, lineinfos, sets proc readExceptSet*(c: PContext, n: PNode): IntSet = assert n.kind in {nkImportExceptStmt, nkExportExceptStmt} @@ -70,7 +70,7 @@ proc rawImportSymbol(c: PContext, s, origin: PSym) = if s.kind == skConverter: addConverter(c, s) if hasPattern(s): addPattern(c, s) if s.owner != origin: - c.exportIndirections.incl(idPairToInt(origin.id, s.id)) + c.exportIndirections.incl((origin.id, s.id)) proc importSymbol(c: PContext, n: PNode, fromMod: PSym) = let ident = lookups.considerQuotedIdent(c, n) diff --git a/compiler/semdata.nim b/compiler/semdata.nim index 7010d512a9..0d4d3ea48d 100644 --- a/compiler/semdata.nim +++ b/compiler/semdata.nim @@ -11,7 +11,7 @@ import intsets, options, ast, astalgo, msgs, idents, renderer, - magicsys, vmdef, modulegraphs, lineinfos + magicsys, vmdef, modulegraphs, lineinfos, sets type TOptionEntry* = object # entries to put on a stack for pragma parsing @@ -138,9 +138,7 @@ type # tests/destructor/topttree.nim for an example that # would otherwise fail. unusedImports*: seq[(PSym, TLineInfo)] - exportIndirections*: IntSet - -template idPairToInt*(a, b: int): int = a * 1_000_000 + b + exportIndirections*: HashSet[(int, int)] template config*(c: PContext): ConfigRef = c.graph.config diff --git a/compiler/suggest.nim b/compiler/suggest.nim index 38ebb85e03..dc01916d1d 100644 --- a/compiler/suggest.nim +++ b/compiler/suggest.nim @@ -32,7 +32,7 @@ # included from sigmatch.nim -import algorithm, prefixmatches, lineinfos, parseutils, linter +import algorithm, sets, prefixmatches, lineinfos, parseutils, linter from wordrecg import wDeprecated, wError, wAddr, wYield, specialWords when defined(nimsuggest): @@ -536,7 +536,7 @@ proc markOwnerModuleAsUsed(c: PContext; s: PSym) = var i = 0 while i <= high(c.unusedImports): let candidate = c.unusedImports[i][0] - if candidate == module or c.exportIndirections.contains(idPairToInt(candidate.id, s.id)): + if candidate == module or c.exportIndirections.contains((candidate.id, s.id)): # mark it as used: c.unusedImports.del(i) else: