diff options
author | Lolo Iccl <oxisccl@gmail.com> | 2017-01-18 00:58:50 +0900 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-01-17 16:58:50 +0100 |
commit | b6b5a11be78961cebd4f3d0b354b227373f64427 (patch) | |
tree | 6b8491fd89f1e6d22f842cae98ba44186d10baa8 | |
parent | 454547da8efe7e07b0c13254c6a000e805e2475e (diff) | |
download | Nim-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.nim | 7 | ||||
-rw-r--r-- | tests/modules/mnotuniquename.nim | 0 | ||||
-rw-r--r-- | tests/modules/tnotuniquename.nim | 7 | ||||
-rw-r--r-- | tests/modules/tnotuniquename/mnotuniquename.nim | 0 | ||||
-rw-r--r-- | tests/modules/tnotuniquename2.nim | 7 |
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 |