diff --git a/lib/lists.nix b/lib/lists.nix index a59613f06ef3..fa2a526d1602 100644 --- a/lib/lists.nix +++ b/lib/lists.nix @@ -9,7 +9,6 @@ let min id warn - pipe ; inherit (lib.attrsets) mapAttrs attrNames; inherit (lib) max; @@ -144,10 +143,13 @@ rec { fold' 0; /** - `fold` is an alias of `foldr` for historic reasons + `fold` is an alias of `foldr` for historic reasons. + + ::: {.warning} + This function will be removed in 26.05. + ::: */ - # FIXME(Profpatsch): deprecate? - fold = foldr; + fold = warn "fold has been deprecated, use foldr instead" foldr; /** “left fold”, like `foldr`, but from the left: diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix index e4f2222b7685..e24ffa29d4f7 100644 --- a/lib/tests/misc.nix +++ b/lib/tests/misc.nix @@ -1288,25 +1288,23 @@ runTests { expected = [ 15 ]; }; - testFold = + testFoldr = let - f = op: fold: fold op 0 (range 0 100); - # fold with associative operator + f = op: foldr: foldr op 0 (range 0 100); + # foldr with associative operator assoc = f builtins.add; - # fold with non-associative operator + # foldr with non-associative operator nonAssoc = f builtins.sub; in { expr = { assocRight = assoc foldr; - # right fold with assoc operator is same as left fold + # foldr with assoc operator is same as foldl assocRightIsLeft = assoc foldr == assoc foldl; nonAssocRight = nonAssoc foldr; nonAssocLeft = nonAssoc foldl; - # with non-assoc operator the fold results are not the same + # with non-assoc operator the foldr results are not the same nonAssocRightIsNotLeft = nonAssoc foldl != nonAssoc foldr; - # fold is an alias for foldr - foldIsRight = nonAssoc fold == nonAssoc foldr; }; expected = { assocRight = 5050; @@ -1314,7 +1312,6 @@ runTests { nonAssocRight = 50; nonAssocLeft = (-5050); nonAssocRightIsNotLeft = true; - foldIsRight = true; }; }; diff --git a/nixos/modules/services/matrix/mjolnir.nix b/nixos/modules/services/matrix/mjolnir.nix index e20029e2d961..ab6b580b5ef9 100644 --- a/nixos/modules/services/matrix/mjolnir.nix +++ b/nixos/modules/services/matrix/mjolnir.nix @@ -30,7 +30,7 @@ let moduleConfigFile = pkgs.writeText "module-config.yaml" ( lib.generators.toYAML { } ( lib.filterAttrs (_: v: v != null) ( - lib.fold lib.recursiveUpdate { } [ + lib.foldr lib.recursiveUpdate { } [ yamlConfig cfg.settings ] diff --git a/pkgs/applications/video/mpv/scripts.nix b/pkgs/applications/video/mpv/scripts.nix index ab1e5f334d5b..b90501c0e7cf 100644 --- a/pkgs/applications/video/mpv/scripts.nix +++ b/pkgs/applications/video/mpv/scripts.nix @@ -6,7 +6,7 @@ }: let - unionOfDisjoints = lib.fold lib.attrsets.unionOfDisjoint { }; + unionOfDisjoints = lib.foldr lib.attrsets.unionOfDisjoint { }; addTests = attrPath: drv: