From 2e485f2581810ad51636cd6950bbc62eb4aaa16b Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Wed, 17 May 2023 12:51:09 +0200 Subject: lib.types.submoduleWith: Interoperate with older version of submoduleWith --- lib/types.nix | 8 +++++--- 1 file 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 = -- cgit 1.4.1