summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/types.nix20
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.