summary refs log tree commit diff stats
path: root/compiler/importer.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2018-05-14 17:45:44 +0200
committerAraq <rumpf_a@web.de>2018-05-14 17:45:44 +0200
commit5526252fa0218816c3ca5399a7cb927d9b2bbdc4 (patch)
treec2b90cfebc5d1ac6dabe6664004fa6dd41a41f0e /compiler/importer.nim
parent1616c6e0297efd09000c4286d1fdfc986ee1ab7a (diff)
parent6b5ad56ab3b5c6f62f8a5f312fe282ff05f7bafa (diff)
downloadNim-5526252fa0218816c3ca5399a7cb927d9b2bbdc4.tar.gz
fixes testament compilation
Diffstat (limited to 'compiler/importer.nim')
-rw-r--r--compiler/importer.nim13
1 files changed, 8 insertions, 5 deletions
diff --git a/compiler/importer.nim b/compiler/importer.nim
index ed988cea7..90e774a50 100644
--- a/compiler/importer.nim
+++ b/compiler/importer.nim
@@ -16,6 +16,13 @@ import
 proc evalImport*(c: PContext, n: PNode): PNode
 proc evalFrom*(c: PContext, n: PNode): PNode
 
+proc readExceptSet*(c: PContext, n: PNode): IntSet =
+  assert n.kind in {nkImportExceptStmt, nkExportExceptStmt}
+  result = initIntSet()
+  for i in 1 ..< n.len:
+    let ident = lookups.considerQuotedIdent(c.config, n[i])
+    result.incl(ident.id)
+
 proc importPureEnumField*(c: PContext; s: PSym) =
   var check = strTableGet(c.importTable.symbols, s.name)
   if check == nil:
@@ -199,9 +206,5 @@ proc evalImportExcept*(c: PContext, n: PNode): PNode =
   if m != nil:
     n.sons[0] = newSymNode(m)
     addDecl(c, m, n.info)               # add symbol to symbol table of module
-    var exceptSet = initIntSet()
-    for i in countup(1, sonsLen(n) - 1):
-      let ident = lookups.considerQuotedIdent(c.config, n.sons[i])
-      exceptSet.incl(ident.id)
-    importAllSymbolsExcept(c, m, exceptSet)
+    importAllSymbolsExcept(c, m, readExceptSet(c, n))
     #importForwarded(c, m.ast, exceptSet)