about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2023-04-27 19:50:20 +0200
committerRobert Hensing <robert@roberthensing.nl>2023-05-06 18:32:59 +0200
commit89491bef8dc72496812d94c32b5fdd962cbbe1f6 (patch)
treeeb71bfe16289bb5982f98e64e3b70b52603a2902
parent4c7aa7d831aa691a7331967a4a839b1088a48493 (diff)
downloadnixlib-89491bef8dc72496812d94c32b5fdd962cbbe1f6.tar
nixlib-89491bef8dc72496812d94c32b5fdd962cbbe1f6.tar.gz
nixlib-89491bef8dc72496812d94c32b5fdd962cbbe1f6.tar.bz2
nixlib-89491bef8dc72496812d94c32b5fdd962cbbe1f6.tar.lz
nixlib-89491bef8dc72496812d94c32b5fdd962cbbe1f6.tar.xz
nixlib-89491bef8dc72496812d94c32b5fdd962cbbe1f6.tar.zst
nixlib-89491bef8dc72496812d94c32b5fdd962cbbe1f6.zip
lib.modules: in evalModules return move _module.class -> configurationClass
-rw-r--r--doc/module-system/module-system.chapter.md8
-rw-r--r--lib/modules.nix12
-rwxr-xr-xlib/tests/modules.sh1
3 files changed, 10 insertions, 11 deletions
diff --git a/doc/module-system/module-system.chapter.md b/doc/module-system/module-system.chapter.md
index 9df7a1672a63..b82a546e4aa6 100644
--- a/doc/module-system/module-system.chapter.md
+++ b/doc/module-system/module-system.chapter.md
@@ -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).
diff --git a/lib/modules.nix b/lib/modules.nix
index c6d178e7ff9a..5e7f5d7a86d4 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -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;
 
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 8f4553464ad0..0aac5b946a3b 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -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