diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/types.nix | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/lib/types.nix b/lib/types.nix index e9302688d5c36..afc8f80eb0ea6 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -124,17 +124,6 @@ rec { getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["<name>"]); }; - heterogeneousAttrsOf = elemTypeFn: mkOptionType { - name = "attribute set of values of many types, including ${(elemTypeFn "<name>").name}"; - check = x: isAttrs x && all (name: (elemTypeFn name).check (getAttr name x)) (attrNames x); - merge = loc: defs: - zipAttrsWith (name: (elemTypeFn name).merge (loc ++ [name])) - # Push down position info. - (map (def: listToAttrs (mapAttrsToList (n: def': - { name = n; value = { inherit (def) file; value = def'; }; }) def.value)) defs); - getSubOptions = prefix: (elemTypeFn "<name>").getSubOptions (prefix ++ ["<name>"]); - }; - # List or attribute set of ... loaOf = elemType: let @@ -187,7 +176,7 @@ rec { getSubOptions = elemType.getSubOptions; }; - submoduleWithExtraArgs = extraArgs: opts: + submodule = opts: let opts' = toList opts; inherit (import ./modules.nix) evalModules; @@ -199,16 +188,13 @@ rec { let coerce = def: if isFunction def then def else { config = def; }; modules = opts' ++ map (def: { _file = def.file; imports = [(coerce def.value)]; }) defs; - args = extraArgs // { name = last loc; }; - in (evalModules { inherit modules args; prefix = loc; }).config; + in (evalModules { inherit modules; args.name = last loc; prefix = loc; }).config; getSubOptions = prefix: (evalModules { modules = opts'; inherit prefix; # FIXME: hack to get shit to evaluate. - args = extraArgs // { name = ""; }; }).options; + args = { name = ""; }; }).options; }; - submodule = submoduleWithExtraArgs {}; - # Obsolete alternative to configOf. It takes its option # declarations from the ‘options’ attribute of containing option # declaration. |