summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/strings.nix9
-rw-r--r--lib/tests/misc.nix2
2 files changed, 7 insertions, 4 deletions
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 {};