From 43ef3a8d003fd64477b2eabb41e617e23e10a05f Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Mon, 30 Dec 2019 16:08:03 +0100 Subject: lib/modules: clarify error message of 'assigning to top-level attribute' If I understand correctly, the problem isn't so much that you're assigning to that top-level attribute, but that the assignment to the attribute (or any child of the attribute) introduces the 'config' object and prevents 'lifting' all settings to a generated 'config' object. --- lib/modules.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/modules.nix') diff --git a/lib/modules.nix b/lib/modules.nix index 44db77b5d1c..d2489947d86 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -123,7 +123,7 @@ rec { if m ? config || m ? options then let badAttrs = removeAttrs m ["_file" "key" "disabledModules" "imports" "options" "config" "meta"]; in if badAttrs != {} then - throw "Module `${key}' has an unsupported attribute `${head (attrNames badAttrs)}'. This is caused by assignments to the top-level attributes `config' or `options'." + throw "Module `${key}' has an unsupported attribute `${head (attrNames badAttrs)}'. This is caused by introducing a top-level `config' or `options' attribute. Add configuration attributes immediately on the top level instead, or move all of them (namely: ${toString (attrNames badAttrs)}) into the explicit `config' attribute." else { file = m._file or file; key = toString m.key or key; -- cgit 1.4.1