about summary refs log tree commit diff
path: root/lib/attrsets.nix
diff options
context:
space:
mode:
authoradisbladis <adisbladis@gmail.com>2024-03-03 16:15:31 +1300
committeradisbladis <adisbladis@gmail.com>2024-03-03 16:18:38 +1300
commit34fefe4e16e04e9b3c335e62462a150ebd303baa (patch)
tree4122c6272f09c4196ef9909aa21990feb59acd08 /lib/attrsets.nix
parent31f91738fb4aae351f1ee93300139c751dcf8196 (diff)
lib.mapAttrsRecursiveCond: Eliminate intermediate one intermediate variable environment
Diffstat (limited to 'lib/attrsets.nix')
-rw-r--r--lib/attrsets.nix13
1 files changed, 6 insertions, 7 deletions
diff --git a/lib/attrsets.nix b/lib/attrsets.nix
index 4f7d795c397f2..de531616a520c 100644
--- a/lib/attrsets.nix
+++ b/lib/attrsets.nix
@@ -731,14 +731,13 @@ rec {
     set:
     let
       recurse = path:
-        let
-          g =
-            name: value:
+        mapAttrs
+          (name: value:
             if isAttrs value && cond value
-              then recurse (path ++ [name]) value
-              else f (path ++ [name]) value;
-        in mapAttrs g;
-    in recurse [] set;
+            then recurse (path ++ [ name ]) value
+            else f (path ++ [ name ]) value);
+    in
+    recurse [ ] set;
 
 
   /* Generate an attribute set by mapping a function over a list of