lib/options: Fix mergeEqualOption for singular functions

Previously it would error out for a single function definition
This commit is contained in:
Silvan Mosberger 2020-09-15 20:30:48 +02:00
parent b3810166c7
commit 6e7bc2c6c9
No known key found for this signature in database
GPG key ID: E8F1E9EAD284E17D

View file

@ -107,6 +107,10 @@ rec {
/* "Merge" option definitions by checking that they all have the same value. */
mergeEqualOption = loc: defs:
if defs == [] then abort "This case should never happen."
# Return early if we only have one element
# This also makes it work for functions, because the foldl' below would try
# to compare the first element with itself, which is false for functions
else if length defs == 1 then (elemAt defs 0).value
else foldl' (val: def:
if def.value != val then
throw "The option `${showOption loc}' has conflicting definitions, in ${showFiles (getFiles defs)}."