summary refs log tree commit diff
path: root/pkgs/lib/options.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-08-13 14:19:31 -0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-08-13 15:15:16 -0400
commitc0a483632c3e0193678dd58c994528d88d42ea00 (patch)
tree794673d20c185d9c77c5222ec1f506417dfaa90a /pkgs/lib/options.nix
parent431c55cbf1f99748cb28566a33d15fb22bf76fe6 (diff)
downloadnixpkgs-c0a483632c3e0193678dd58c994528d88d42ea00.tar
nixpkgs-c0a483632c3e0193678dd58c994528d88d42ea00.tar.gz
nixpkgs-c0a483632c3e0193678dd58c994528d88d42ea00.tar.bz2
nixpkgs-c0a483632c3e0193678dd58c994528d88d42ea00.tar.lz
nixpkgs-c0a483632c3e0193678dd58c994528d88d42ea00.tar.xz
nixpkgs-c0a483632c3e0193678dd58c994528d88d42ea00.tar.zst
nixpkgs-c0a483632c3e0193678dd58c994528d88d42ea00.zip
Eliminate some calls to ‘tail’
Diffstat (limited to 'pkgs/lib/options.nix')
-rw-r--r--pkgs/lib/options.nix8
1 files changed, 4 insertions, 4 deletions
diff --git a/pkgs/lib/options.nix b/pkgs/lib/options.nix
index cd60b8f3b88..05c9c5f9c0f 100644
--- a/pkgs/lib/options.nix
+++ b/pkgs/lib/options.nix
@@ -2,7 +2,7 @@
 
 let lib = import ./default.nix; in
 
-with { inherit (builtins) head tail; };
+with { inherit (builtins) head length; };
 with import ./trivial.nix;
 with import ./lists.nix;
 with import ./misc.nix;
@@ -133,7 +133,7 @@ rec {
   # separate the merge & apply fields from the interface.
   mergeOptionDecls = opts:
     if opts == [] then {}
-    else if tail opts == [] then
+    else if length opts == 1 then
       let opt = head opts; in
       if opt ? options then
         opt // { options = toList opt.options; }
@@ -189,7 +189,7 @@ rec {
     ) (attrNames defs));
 
   mergeDefaultOption = list:
-    if list != [] && tail list == [] then head list
+    if length list == 1 then head list
     else if all builtins.isFunction list then x: mergeDefaultOption (map (f: f x) list)
     else if all isList list then concatLists list
     else if all isAttrs list then fold lib.mergeAttrs {} list
@@ -214,7 +214,7 @@ rec {
 
   mergeOneOption = list:
     if list == [] then abort "This case should never happen."
-    else if tail list != [] then throw "Multiple definitions. Only one is allowed for this option."
+    else if length list != 1 then throw "Multiple definitions. Only one is allowed for this option."
     else head list;