diff options
author | Robert Hensing <robert@roberthensing.nl> | 2021-11-03 19:45:06 +0100 |
---|---|---|
committer | Robert Hensing <robert@roberthensing.nl> | 2021-11-03 19:47:03 +0100 |
commit | 844a9e746f92ac7278ece51c2b7819d0e6c5c05d (patch) | |
tree | 38e4ff8402b3f6ab37b3e0bac25d7d20b276d009 | |
parent | 541ce53a3bfa9c769ce4aa755d1c452cb3bdc2dd (diff) |
lib/modules: Use strict fold' as recursiveUpdate is also strict
recursiveUpdate does not produce an attrset until it has evaluated
both its arguments to weak head normal form.
nix-repl> lib.recursiveUpdate (throw "a") (throw "b")
error: b
nix-repl> lib.recursiveUpdate (throw "a") {}
error: a
-rw-r--r-- | lib/modules.nix | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/lib/modules.nix b/lib/modules.nix index 99f51d22dcd1..e3abf846625d 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -13,7 +13,6 @@ let elem filter findFirst - foldl foldl' getAttrFromPath head @@ -863,7 +862,7 @@ rec { mkMergedOptionModule = from: to: mergeFn: { config, options, ... }: { - options = foldl recursiveUpdate {} (map (path: setAttrByPath path (mkOption { + options = foldl' recursiveUpdate {} (map (path: setAttrByPath path (mkOption { visible = false; # To use the value in mergeFn without triggering errors default = "_mkMergedOptionModule"; |