summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/types.nix8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/types.nix b/lib/types.nix
index 373d0ce7876..9360d42f585 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -775,9 +775,11 @@ rec {
           };
           binOp = lhs: rhs: {
             class =
-              if lhs.class == null then rhs.class
-              else if rhs.class == null then lhs.class
-              else if lhs.class == rhs.class then lhs.class
+              # `or null` was added for backwards compatibility only. `class` is
+              # always set in the current version of the module system.
+              if lhs.class or null == null then rhs.class or null
+              else if rhs.class or null == null then lhs.class or null
+              else if lhs.class or null == rhs.class then lhs.class or null
               else throw "A submoduleWith option is declared multiple times with conflicting class values \"${toString lhs.class}\" and \"${toString rhs.class}\".";
             modules = lhs.modules ++ rhs.modules;
             specialArgs =