diff options
author | Kier Davis <kierdavis@gmail.com> | 2016-07-30 14:22:24 +0100 |
---|---|---|
committer | Kier Davis <kierdavis@gmail.com> | 2016-07-30 14:29:45 +0100 |
commit | 2bea2bdbbf0b709811203f64d07ba6ddf3e90cc7 (patch) | |
tree | 132c9eac123668d1663211ae3992fed6da563f4e /compiler/importer.nim | |
parent | 2605c8c4ced0b088d5619d86903d659e8ff89a76 (diff) | |
download | Nim-2bea2bdbbf0b709811203f64d07ba6ddf3e90cc7.tar.gz |
Locate 'attempt to redefine' errors at the import statement rather than at the first line of the imported module. Fixes #4541.
Diffstat (limited to 'compiler/importer.nim')
-rw-r--r-- | compiler/importer.nim | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/importer.nim b/compiler/importer.nim index 5ffe12728..dd2c4d954 100644 --- a/compiler/importer.nim +++ b/compiler/importer.nim @@ -176,7 +176,7 @@ proc evalImport(c: PContext, n: PNode): PNode = var m = myImportModule(c, n.sons[i]) if m != nil: # ``addDecl`` needs to be done before ``importAllSymbols``! - addDecl(c, m) # add symbol to symbol table of module + addDecl(c, m, n.info) # add symbol to symbol table of module importAllSymbolsExcept(c, m, emptySet) #importForwarded(c, m.ast, emptySet) @@ -186,7 +186,7 @@ proc evalFrom(c: PContext, n: PNode): PNode = var m = myImportModule(c, n.sons[0]) if m != nil: n.sons[0] = newSymNode(m) - addDecl(c, m) # add symbol to symbol table of module + addDecl(c, m, n.info) # add symbol to symbol table of module for i in countup(1, sonsLen(n) - 1): if n.sons[i].kind != nkNilLit: importSymbol(c, n.sons[i], m) @@ -197,7 +197,7 @@ proc evalImportExcept*(c: PContext, n: PNode): PNode = var m = myImportModule(c, n.sons[0]) if m != nil: n.sons[0] = newSymNode(m) - addDecl(c, m) # add symbol to symbol table of module + 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(n.sons[i]) |