summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2021-01-26 02:02:12 +0100
committerSilvan Mosberger <contact@infinisil.com>2021-01-27 00:16:23 +0100
commite9101d4a3bc90dfaaa076d8ec00e5ed68e518f60 (patch)
tree02be0990cb474e19ef52dfb9ad5ee15b99cb228b /lib
parent8ac4b251c8a319909a29aa103101eeed82ca7d3e (diff)
downloadnixpkgs-e9101d4a3bc90dfaaa076d8ec00e5ed68e518f60.tar
nixpkgs-e9101d4a3bc90dfaaa076d8ec00e5ed68e518f60.tar.gz
nixpkgs-e9101d4a3bc90dfaaa076d8ec00e5ed68e518f60.tar.bz2
nixpkgs-e9101d4a3bc90dfaaa076d8ec00e5ed68e518f60.tar.lz
nixpkgs-e9101d4a3bc90dfaaa076d8ec00e5ed68e518f60.tar.xz
nixpkgs-e9101d4a3bc90dfaaa076d8ec00e5ed68e518f60.tar.zst
nixpkgs-e9101d4a3bc90dfaaa076d8ec00e5ed68e518f60.zip
lib/types: Improved functionTo merging
Now type checks the resulting function values and allows mkMerge and co.
Also indicates that the type check is done in the function body

Co-Authored-By: Robert Hensing <robert@roberthensing.nl>
Diffstat (limited to 'lib')
-rw-r--r--lib/types.nix2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/types.nix b/lib/types.nix
index 0810a43ed0e..77245158d9f 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -457,7 +457,7 @@ rec {
       name = "function that evaluates to a(n) ${elemType.name}";
       check = isFunction;
       merge = loc: defs:
-        fnArgs: elemType.merge loc (map (fn: { inherit (fn) file; value = fn.value fnArgs; }) defs);
+        fnArgs: (mergeDefinitions (loc ++ [ "[function body]" ]) elemType (map (fn: { inherit (fn) file; value = fn.value fnArgs; }) defs)).mergedValue;
       getSubOptions = elemType.getSubOptions;
       getSubModules = elemType.getSubModules;
       substSubModules = m: functionTo (elemType.substSubModules m);