Fix merge function of types.

svn path=/nixpkgs/trunk/; revision=17649
This commit is contained in:
Nicolas Pierron 2009-10-05 18:10:42 +00:00
parent 9ae6664a5b
commit ba09982edb

View File

@ -87,7 +87,7 @@ rec {
name = "attribute set of ${elemType}s"; name = "attribute set of ${elemType}s";
check = x: lib.traceValIfNot builtins.isAttrs x check = x: lib.traceValIfNot builtins.isAttrs x
&& fold (e: v: v && elemType.check e) true (lib.attrValues x); && fold (e: v: v && elemType.check e) true (lib.attrValues x);
merge = lib.zip elemType.merge; merge = lib.zip (name: elemType.merge);
iter = f: path: set: lib.mapAttrs (name: elemType.iter f (path + "." + name)) set; iter = f: path: set: lib.mapAttrs (name: elemType.iter f (path + "." + name)) set;
fold = op: nul: set: fold (e: l: elemType.fold op l e) nul (lib.attrValues set); fold = op: nul: set: fold (e: l: elemType.fold op l e) nul (lib.attrValues set);
docPath = path: elemType.docPath (path + ".<name>"); docPath = path: elemType.docPath (path + ".<name>");
@ -114,6 +114,8 @@ rec {
# an argument. # an argument.
optionSet = mkOptionType { optionSet = mkOptionType {
name = "option set"; name = "option set";
# merge is done in "options.nix > addOptionMakeUp > handleOptionSets"
merge = lib.id;
check = x: lib.traceValIfNot builtins.isAttrs x; check = x: lib.traceValIfNot builtins.isAttrs x;
hasOptions = true; hasOptions = true;
}; };