summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorBen Siraphob <bensiraphob@gmail.com>2021-07-27 15:13:31 +0700
committerGitHub <noreply@github.com>2021-07-27 15:13:31 +0700
commitb63a54f81ce96391e6da6aab5965926e7cdbce47 (patch)
treeae8f9eca6965b3eb7e919548723c46ba663525c2 /lib
parentd82543f22d9e778a051ee866e6d2d8716a1cae0d (diff)
parent1c2a2b0a0848d58407fb4ff73a8dc1e854f5a270 (diff)
downloadnixpkgs-b63a54f81ce96391e6da6aab5965926e7cdbce47.tar
nixpkgs-b63a54f81ce96391e6da6aab5965926e7cdbce47.tar.gz
nixpkgs-b63a54f81ce96391e6da6aab5965926e7cdbce47.tar.bz2
nixpkgs-b63a54f81ce96391e6da6aab5965926e7cdbce47.tar.lz
nixpkgs-b63a54f81ce96391e6da6aab5965926e7cdbce47.tar.xz
nixpkgs-b63a54f81ce96391e6da6aab5965926e7cdbce47.tar.zst
nixpkgs-b63a54f81ce96391e6da6aab5965926e7cdbce47.zip
Merge pull request #110742 from siraben/deprecate-fold
Diffstat (limited to 'lib')
-rw-r--r--lib/attrsets.nix8
-rw-r--r--lib/deprecated.nix10
-rw-r--r--lib/trivial.nix2
3 files changed, 10 insertions, 10 deletions
diff --git a/lib/attrsets.nix b/lib/attrsets.nix
index 5c787940cb0..0b61819f6b4 100644
--- a/lib/attrsets.nix
+++ b/lib/attrsets.nix
@@ -5,7 +5,7 @@ let
   inherit (builtins) head tail length;
   inherit (lib.trivial) and;
   inherit (lib.strings) concatStringsSep sanitizeDerivationName;
-  inherit (lib.lists) fold concatMap concatLists;
+  inherit (lib.lists) fold foldr concatMap concatLists;
 in
 
 rec {
@@ -152,8 +152,8 @@ rec {
        => { a = [ 2 3 ]; }
   */
   foldAttrs = op: nul: list_of_attrs:
-    fold (n: a:
-        fold (name: o:
+    foldr (n: a:
+        foldr (name: o:
           o // { ${name} = op n.${name} (a.${name} or nul); }
         ) a (attrNames n)
     ) {} list_of_attrs;
@@ -455,7 +455,7 @@ rec {
        => true
    */
   matchAttrs = pattern: attrs: assert isAttrs pattern;
-    fold and true (attrValues (zipAttrsWithNames (attrNames pattern) (n: values:
+    foldr and true (attrValues (zipAttrsWithNames (attrNames pattern) (n: values:
       let pat = head values; val = head (tail values); in
       if length values == 1 then false
       else if isAttrs pat then isAttrs val && matchAttrs pat val
diff --git a/lib/deprecated.nix b/lib/deprecated.nix
index be0ef904c66..ddce69f160c 100644
--- a/lib/deprecated.nix
+++ b/lib/deprecated.nix
@@ -77,11 +77,11 @@ rec {
   # Output : are reqs satisfied? It's asserted.
   checkReqs = attrSet: argList: condList:
   (
-    fold lib.and true
+    foldr lib.and true
       (map (x: let name = (head x); in
 
         ((checkFlag attrSet name) ->
-        (fold lib.and true
+        (foldr lib.and true
         (map (y: let val=(getValue attrSet argList y); in
                 (val!=null) && (val!=false))
         (tail x))))) condList));
@@ -177,7 +177,7 @@ rec {
   # merge attributes with custom function handling the case that the attribute
   # exists in both sets
   mergeAttrsWithFunc = f: set1: set2:
-    fold (n: set: if set ? ${n}
+    foldr (n: set: if set ? ${n}
                         then setAttr set n (f set.${n} set2.${n})
                         else set )
            (set2 // set1) (attrNames set2);
@@ -196,7 +196,7 @@ rec {
   mergeAttrsNoOverride = { mergeLists ? ["buildInputs" "propagatedBuildInputs"],
                            overrideSnd ? [ "buildPhase" ]
                          }: attrs1: attrs2:
-    fold (n: set:
+    foldr (n: set:
         setAttr set n ( if set ? ${n}
             then # merge
               if elem n mergeLists # attribute contains list, merge them by concatenating
@@ -224,7 +224,7 @@ rec {
           mergeAttrBy2 = { mergeAttrBy = lib.mergeAttrs; }
                       // (maybeAttr "mergeAttrBy" {} x)
                       // (maybeAttr "mergeAttrBy" {} y); in
-    fold lib.mergeAttrs {} [
+    foldr lib.mergeAttrs {} [
       x y
       (mapAttrs ( a: v: # merge special names using given functions
           if x ? ${a}
diff --git a/lib/trivial.nix b/lib/trivial.nix
index e1581f1e91d..c8ef5599ccd 100644
--- a/lib/trivial.nix
+++ b/lib/trivial.nix
@@ -308,7 +308,7 @@ rec {
 
   info = msg: builtins.trace "INFO: ${msg}";
 
-  showWarnings = warnings: res: lib.fold (w: x: warn w x) res warnings;
+  showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings;
 
   ## Function annotations