diff --git a/source/dub/commandline.d b/source/dub/commandline.d index 597a10e..704d7c6 100644 --- a/source/dub/commandline.d +++ b/source/dub/commandline.d @@ -2333,12 +2333,11 @@ into `name` and `version_`. */ private PackageAndVersion splitPackageName(string packageName) { - - // split = - auto parts = packageName.findSplit("="); + // split @ + auto parts = packageName.findSplit("@"); if (parts[1].empty) { - // support splitting @ too - parts = packageName.findSplit("@"); + // split = + parts = packageName.findSplit("="); } PackageAndVersion p; @@ -2348,10 +2347,15 @@ return p; } -// https://github.com/dlang/dub/issues/1681 unittest { - auto pv = splitPackageName(""); - assert(pv.name == ""); - assert(pv.version_ is null); + // https://github.com/dlang/dub/issues/1681 + assert(splitPackageName("") == PackageAndVersion("", null)); + + assert(splitPackageName("foo=1.0.1") == PackageAndVersion("foo", "1.0.1")); + assert(splitPackageName("foo@1.0.1") == PackageAndVersion("foo", "1.0.1")); + assert(splitPackageName("foo@==1.0.1") == PackageAndVersion("foo", "==1.0.1")); + assert(splitPackageName("foo@>=1.0.1") == PackageAndVersion("foo", ">=1.0.1")); + assert(splitPackageName("foo@~>1.0.1") == PackageAndVersion("foo", "~>1.0.1")); + assert(splitPackageName("foo@<1.0.1") == PackageAndVersion("foo", "<1.0.1")); }