summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorRobert Hensing <roberth@users.noreply.github.com>2022-03-11 17:36:16 +0100
committerGitHub <noreply@github.com>2022-03-11 17:36:16 +0100
commit679ec68d574427606697be14bfc6a69db7bc28b9 (patch)
treea2a214611b1592544bdebb8a730698416ac5772c /lib
parentf5331b444b8e26f89077fdfb577643a5688a7ba4 (diff)
parent02de37ca072841559df7063d66a25b91d82f9538 (diff)
downloadnixpkgs-679ec68d574427606697be14bfc6a69db7bc28b9.tar
nixpkgs-679ec68d574427606697be14bfc6a69db7bc28b9.tar.gz
nixpkgs-679ec68d574427606697be14bfc6a69db7bc28b9.tar.bz2
nixpkgs-679ec68d574427606697be14bfc6a69db7bc28b9.tar.lz
nixpkgs-679ec68d574427606697be14bfc6a69db7bc28b9.tar.xz
nixpkgs-679ec68d574427606697be14bfc6a69db7bc28b9.tar.zst
nixpkgs-679ec68d574427606697be14bfc6a69db7bc28b9.zip
Merge pull request #163127 from hercules-ci/optimize-optionSet-compat
lib/modules.nix: Optimize optionSet legacy compat code
Diffstat (limited to 'lib')
-rw-r--r--lib/modules.nix10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/modules.nix b/lib/modules.nix
index 79d54e4a538..4c4d9f994da 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -761,13 +761,13 @@ rec {
       options = opt.options or
         (throw "Option `${showOption loc}' has type optionSet but has no option attribute, in ${showFiles opt.declarations}.");
       f = tp:
-        let optionSetIn = type: (tp.name == type) && (tp.functor.wrapped.name == "optionSet");
-        in
         if tp.name == "option set" || tp.name == "submodule" then
           throw "The option ${showOption loc} uses submodules without a wrapping type, in ${showFiles opt.declarations}."
-        else if optionSetIn "attrsOf" then types.attrsOf (types.submodule options)
-        else if optionSetIn "listOf"  then types.listOf  (types.submodule options)
-        else if optionSetIn "nullOr"  then types.nullOr  (types.submodule options)
+        else if (tp.functor.wrapped.name or null) == "optionSet" then
+          if tp.name == "attrsOf" then types.attrsOf (types.submodule options)
+          else if tp.name == "listOf" then types.listOf  (types.submodule options)
+          else if tp.name == "nullOr" then types.nullOr  (types.submodule options)
+          else tp
         else tp;
     in
       if opt.type.getSubModules or null == null