diff --git a/pkgs/lib/modules.nix b/pkgs/lib/modules.nix index 286178a0fa7..74603e9c579 100644 --- a/pkgs/lib/modules.nix +++ b/pkgs/lib/modules.nix @@ -197,9 +197,9 @@ rec { recurseInto = name: moduleMerge (addName name) (modulesOf name); - recurseForOption = name: modules: + recurseForOption = name: modules: args: moduleMerge name ( - map unifyModuleSyntax modules + moduleClosure modules args ); errorSource = modules: diff --git a/pkgs/lib/options.nix b/pkgs/lib/options.nix index 3a8cc0006ef..d31a501cac9 100644 --- a/pkgs/lib/options.nix +++ b/pkgs/lib/options.nix @@ -82,16 +82,11 @@ rec { handleOptionSets = opt: if opt ? type && opt.type.hasOptions then let - - optionConfig = vals: args: - map (f: lib.applyIfFunction f args) - (opt.options ++ toList vals); - # Evaluate sub-modules. subModuleMerge = path: vals: lib.fix (args: let - result = recurseInto path (optionConfig vals args); + result = recurseInto path (opt.options ++ toList vals) args; name = lib.removePrefix (opt.name + ".") path; extraArgs = opt.extraArgs or {}; individualExtraArgs = opt.individualExtraArgs or {};