lib/modules: Fix freeform modules when there's no definitions

This commit is contained in:
Silvan Mosberger 2020-08-04 00:08:43 +02:00
parent 446d80d28d
commit e0ded8f4ba
No known key found for this signature in database
GPG key ID: E8F1E9EAD284E17D
2 changed files with 4 additions and 1 deletions

View file

@ -104,7 +104,8 @@ rec {
file = def.file;
value = setAttrByPath def.prefix def.value;
}) merged.unmatchedDefns;
in declaredConfig._module.freeformType.merge prefix defs;
in if defs == [] then {}
else declaredConfig._module.freeformType.merge prefix defs;
in if declaredConfig._module.freeformType == null then declaredConfig
# Because all definitions that had an associated option ended in

View file

@ -213,6 +213,8 @@ checkConfigError 'The option value .* in .* is not of type .*' \
## Freeform modules
# Assigning without a declared option should work
checkConfigOutput 24 config.value ./freeform-attrsOf.nix ./define-value-string.nix
# No freeform assigments shouldn't make it error
checkConfigOutput '{ }' config ./freeform-attrsOf.nix
# but only if the type matches
checkConfigError 'The option value .* in .* is not of type .*' config.value ./freeform-attrsOf.nix ./define-value-list.nix
# and properties should be applied