lib/types: Fix emptyValue of listOf and nonEmptyListOf

An empty list is [], not {}!

Also, non-empty lists shouldn't have a default of an empty list!
This commit is contained in:
Silvan Mosberger 2021-08-02 21:18:40 +02:00
parent 97d3b5e1dd
commit 382289027f

View file

@ -390,7 +390,7 @@ rec {
).optionalValue ).optionalValue
) def.value ) def.value
) defs))); ) defs)));
emptyValue = { value = {}; }; emptyValue = { value = []; };
getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]); getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]);
getSubModules = elemType.getSubModules; getSubModules = elemType.getSubModules;
substSubModules = m: listOf (elemType.substSubModules m); substSubModules = m: listOf (elemType.substSubModules m);
@ -402,7 +402,7 @@ rec {
let list = addCheck (types.listOf elemType) (l: l != []); let list = addCheck (types.listOf elemType) (l: l != []);
in list // { in list // {
description = "non-empty " + list.description; description = "non-empty " + list.description;
# Note: emptyValue is left as is, because another module may define an element. emptyValue = { }; # no .value attr, meaning unset
}; };
attrsOf = elemType: mkOptionType rec { attrsOf = elemType: mkOptionType rec {