diff --git a/source/dub/dependency.d b/source/dub/dependency.d index 19b6dc0..766ebc5 100644 --- a/source/dub/dependency.d +++ b/source/dub/dependency.d @@ -507,7 +507,7 @@ } void insert(const Package p) { - enforce(p.name != m_root.name); + enforce(p.name != m_root.name, format("Dependency with the same name as the root package (%s) detected.", p.name)); m_packages[p.name] = p; } diff --git a/source/dub/project.d b/source/dub/project.d index 71b58db..4e78a55 100644 --- a/source/dub/project.d +++ b/source/dub/project.d @@ -414,9 +414,10 @@ logDiagnostic("Fechting package %s (%d suppliers registered)", pkg, packageSuppliers.length); foreach (ps; packageSuppliers) { try { - p = new Package(ps.getPackageDescription(ppath[0], reqDep.dependency)); + auto sp = new Package(ps.getPackageDescription(ppath[0], reqDep.dependency)); foreach (spn; ppath[1 .. $]) - p = p.getSubPackage(spn); + sp = sp.getSubPackage(spn); + p = sp; break; } catch (Exception e) { logDiagnostic("No metadata for %s: %s", ps.toString(), e.msg);