summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorLolo Iccl <oxisccl@gmail.com>2017-01-18 00:58:50 +0900
committerAndreas Rumpf <rumpf_a@web.de>2017-01-17 16:58:50 +0100
commitb6b5a11be78961cebd4f3d0b354b227373f64427 (patch)
tree6b8491fd89f1e6d22f842cae98ba44186d10baa8
parent454547da8efe7e07b0c13254c6a000e805e2475e (diff)
downloadNim-b6b5a11be78961cebd4f3d0b354b227373f64427.tar.gz
Fixes #5112 (Fix error messages raised when multiple modules have the same original name) (#5220)
Fixes #5112
-rw-r--r--compiler/modules.nim7
-rw-r--r--tests/modules/mnotuniquename.nim0
-rw-r--r--tests/modules/tnotuniquename.nim7
-rw-r--r--tests/modules/tnotuniquename/mnotuniquename.nim0
-rw-r--r--tests/modules/tnotuniquename2.nim7
5 files changed, 18 insertions, 3 deletions
diff --git a/compiler/modules.nim b/compiler/modules.nim
index 3451d85ec..4763ac79b 100644
--- a/compiler/modules.nim
+++ b/compiler/modules.nim
@@ -133,11 +133,12 @@ proc newModule(graph: ModuleGraph; fileIdx: int32): PSym =
     rawMessage(errInvalidModuleName, result.name.s)
 
   result.info = newLineInfo(fileIdx, 1, 1)
-  let pack = getIdent(getPackageName(filename))
+  let
+    pck = getPackageName(filename)
+    pck2 = if pck.len > 0: pck else: "unknown"
+    pack = getIdent(pck2)
   var packSym = graph.packageSyms.strTableGet(pack)
   if packSym == nil:
-    let pck = getPackageName(filename)
-    let pck2 = if pck.len > 0: pck else: "unknown"
     packSym = newSym(skPackage, getIdent(pck2), nil, result.info)
     initStrTable(packSym.tab)
     graph.packageSyms.strTableAdd(packSym)
diff --git a/tests/modules/mnotuniquename.nim b/tests/modules/mnotuniquename.nim
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/modules/mnotuniquename.nim
diff --git a/tests/modules/tnotuniquename.nim b/tests/modules/tnotuniquename.nim
new file mode 100644
index 000000000..2d8ce4869
--- /dev/null
+++ b/tests/modules/tnotuniquename.nim
@@ -0,0 +1,7 @@
+discard """
+  file: "tnotuniquename/mnotuniquename.nim"
+  errormsg: "module names need to be unique per Nimble package"
+"""
+
+import mnotuniquename
+import tnotuniquename/mnotuniquename as nun
diff --git a/tests/modules/tnotuniquename/mnotuniquename.nim b/tests/modules/tnotuniquename/mnotuniquename.nim
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/modules/tnotuniquename/mnotuniquename.nim
diff --git a/tests/modules/tnotuniquename2.nim b/tests/modules/tnotuniquename2.nim
new file mode 100644
index 000000000..8e486d19f
--- /dev/null
+++ b/tests/modules/tnotuniquename2.nim
@@ -0,0 +1,7 @@
+discard """
+  file: "tnotuniquename/mnotuniquename.nim"
+  errormsg: "module names need to be unique per Nimble package"
+"""
+
+import mnotuniquename
+import tnotuniquename/mnotuniquename