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