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

This commit is contained in:
Robert Hensing 2023-04-27 19:50:20 +02:00
parent 4c7aa7d831
commit 89491bef8d
3 changed files with 10 additions and 11 deletions

View File

@ -95,3 +95,11 @@ If you do reference multiple `config` (or `options`) from before and after `exte
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).

View File

@ -220,16 +220,6 @@ let
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 = {
@ -237,7 +227,6 @@ let
inherit extendModules;
moduleType = type;
};
_module.class = class;
_module.specialArgs = specialArgs;
};
};
@ -337,6 +326,7 @@ let
config = checked (removeAttrs config [ "_module" ]);
_module = checked (config._module);
inherit extendModules type;
configurationClass = class;
};
in result;

View File

@ -364,6 +364,7 @@ checkConfigOutput '^1$' config.sub.specialisation.value ./extendModules-168767-i
# 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