From 8014460c4dbf26d6f962c01920b2c25fc00e0d03 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Tue, 11 Jul 2023 12:48:16 +0200 Subject: lib.mergeModules: Add context to error message --- lib/modules.nix | 5 ++++- lib/tests/modules.sh | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/modules.nix b/lib/modules.nix index de0fcce6ef4..f16df20425e 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -565,8 +565,11 @@ let assert lib.all (c: + # TODO: I have my doubts that this error would occur when option definitions are not matched. + # The implementation of this check used to be tied to a superficially similar check for + # options, so maybe that's why this is here. isAttrs c.config || throw '' - You're trying to define a value of type `${builtins.typeOf c.config}' + In module `${c.file}', you're trying to define a value of type `${builtins.typeOf c.config}' rather than an attribute set for the option `${builtins.concatStringsSep "." prefix}'! diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh index f5f0701c63a..50f24c09ca4 100755 --- a/lib/tests/modules.sh +++ b/lib/tests/modules.sh @@ -207,7 +207,7 @@ checkConfigOutput '^"foo"$' config.submodule.foo ./declare-submoduleWith-special ## shorthandOnlyDefines config behaves as expected checkConfigOutput '^true$' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix checkConfigError 'is not of type `boolean' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-noshorthand.nix -checkConfigError "You're trying to define a value of type \`bool'\n\s*rather than an attribute set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix +checkConfigError "In module ..*define-submoduleWith-shorthand.nix., you're trying to define a value of type \`bool'\n\s*rather than an attribute set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix checkConfigOutput '^true$' config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix ## submoduleWith should merge all modules in one swoop -- cgit 1.4.1