diff options
-rw-r--r-- | lib/modules.nix | 6 | ||||
-rwxr-xr-x | lib/tests/modules.sh | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/lib/modules.nix b/lib/modules.nix index 9371ba4b27a..5c2fb48868c 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -633,7 +633,7 @@ let optionDecls = filter (m: m.options?_type && (m.options._type == "option" - || throwDeclarationTypeError loc m.options._type + || throwDeclarationTypeError loc m.options._type m._file ) ) decls; @@ -698,14 +698,14 @@ let ) unmatchedDefnsByName); }; - throwDeclarationTypeError = loc: actualTag: + throwDeclarationTypeError = loc: actualTag: file: let name = lib.strings.escapeNixIdentifier (lib.lists.last loc); path = showOption loc; depth = length loc; paragraphs = [ - "Expected an option declaration at option path `${path}` but got an attribute set with type ${actualTag}" + "In module ${file}: expected an option declaration at option path `${path}` but got an attribute set with type ${actualTag}" ] ++ optional (actualTag == "option-type") '' When declaring an option, you must wrap the type in a `mkOption` call. It should look somewhat like: ${comment} diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh index 5f2e3f2a311..2c5e4cdbcec 100755 --- a/lib/tests/modules.sh +++ b/lib/tests/modules.sh @@ -394,9 +394,9 @@ checkConfigError \ ./declare-set.nix ./declare-enable-nested.nix # Options: accidental use of an option-type instead of option (or other tagged type; unlikely) -checkConfigError 'Expected an option declaration at option path .result. but got an attribute set with type option-type' config.result ./options-type-error-typical.nix -checkConfigError 'Expected an option declaration at option path .result.here. but got an attribute set with type option-type' config.result.here ./options-type-error-typical-nested.nix -checkConfigError 'Expected an option declaration at option path .result. but got an attribute set with type configuration' config.result ./options-type-error-configuration.nix +checkConfigError 'In module .*/options-type-error-typical.nix: expected an option declaration at option path .result. but got an attribute set with type option-type' config.result ./options-type-error-typical.nix +checkConfigError 'In module .*/options-type-error-typical-nested.nix: expected an option declaration at option path .result.here. but got an attribute set with type option-type' config.result.here ./options-type-error-typical-nested.nix +checkConfigError 'In module .*/options-type-error-configuration.nix: expected an option declaration at option path .result. but got an attribute set with type configuration' config.result ./options-type-error-configuration.nix # Check that that merging of option collisions doesn't depend on type being set checkConfigError 'The option .group..*would be a parent of the following options, but its type .<no description>. does not support nested options.\n\s*- option.s. with prefix .group.enable..*' config.group.enable ./merge-typeless-option.nix |