From b6b5a11be78961cebd4f3d0b354b227373f64427 Mon Sep 17 00:00:00 2001 From: Lolo Iccl Date: Wed, 18 Jan 2017 00:58:50 +0900 Subject: [PATCH] Fixes #5112 (Fix error messages raised when multiple modules have the same original name) (#5220) Fixes #5112 --- compiler/modules.nim | 7 ++++--- tests/modules/mnotuniquename.nim | 0 tests/modules/tnotuniquename.nim | 7 +++++++ tests/modules/tnotuniquename/mnotuniquename.nim | 0 tests/modules/tnotuniquename2.nim | 7 +++++++ 5 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 tests/modules/mnotuniquename.nim create mode 100644 tests/modules/tnotuniquename.nim create mode 100644 tests/modules/tnotuniquename/mnotuniquename.nim create mode 100644 tests/modules/tnotuniquename2.nim 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 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 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