lib.modules: in evalModules return move _module.class -> configurationClass

Changed files
+10 -11
doc
module-system
lib
+8
doc/module-system/module-system.chapter.md
···
A portion of the configuration tree which is elided from `config`.
<!-- TODO: when markdown migration is complete, make _module docs visible again and reference _module docs. Maybe move those docs into this chapter? -->
+
+
#### `_type` {#module-system-lib-evalModules-return-value-_type}
+
+
A nominal type marker, always `"configuration"`.
+
+
#### `configurationClass` {#module-system-lib-evalModules-return-value-_configurationClass}
+
+
Equal to the [`class` parameter](#module-system-lib-evalModules-param-class).
+1 -11
lib/modules.nix
···
within a configuration, but can be used in module imports.
'';
};
-
-
_module.class = mkOption {
-
readOnly = true;
-
internal = true;
-
description = lib.mdDoc ''
-
If the `class` attribute is set and non-`null`, the module system will reject `imports` with a different `class`.
-
-
This option contains the expected `class` attribute of the current module evaluation.
-
'';
-
};
};
config = {
···
inherit extendModules;
moduleType = type;
};
-
_module.class = class;
_module.specialArgs = specialArgs;
};
};
···
config = checked (removeAttrs config [ "_module" ]);
_module = checked (config._module);
inherit extendModules type;
+
configurationClass = class;
};
in result;
+1
lib/tests/modules.sh
···
# Class checks, evalModules
checkConfigOutput '^{ }$' config.ok.config ./class-check.nix
+
checkConfigOutput '"nixos"' config.ok.configurationClass ./class-check.nix
checkConfigError 'The module .*/module-class-is-darwin.nix was imported into nixos instead of darwin.' config.fail.config ./class-check.nix
checkConfigError 'The module foo.nix#darwinModules.default was imported into nixos instead of darwin.' config.fail-anon.config ./class-check.nix