diff --git a/lib/strings.nix b/lib/strings.nix index 0c4095bb55cd..99399459bb48 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -502,9 +502,12 @@ rec { => false */ isStorePath = x: - isCoercibleToString x - && builtins.substring 0 1 (toString x) == "/" - && dirOf x == builtins.storeDir; + if isCoercibleToString x then + let str = toString x; in + builtins.substring 0 1 str == "/" + && dirOf str == builtins.storeDir + else + false; /* Convert string to int Obviously, it is a bit hacky to use fromJSON that way. diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index 853d911cdc81..1604fbb39cbb 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -112,7 +112,7 @@ runTests { storePathAppendix = isStorePath "${goodPath}/bin/python"; nonAbsolute = isStorePath (concatStrings (tail (stringToCharacters goodPath))); - asPath = isStorePath goodPath; + asPath = isStorePath (/. + goodPath); otherPath = isStorePath "/something/else"; otherVals = { attrset = isStorePath {};