From 7f14388567233012d0111df2e3b19d8d6822cfbc Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Thu, 24 Oct 2024 11:38:30 +0200 Subject: [PATCH] lib/types: defaultTypeMerge move wrapped into payload --- lib/types.nix | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/types.nix b/lib/types.nix index 6c4a66c4e3c0b5..ad9f5746f069c7 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -93,12 +93,12 @@ rec { else if (f.wrapped == null && f'.wrapped == null) && (f.payload == null && f'.payload == null) then f.type - # composed types - else if (f.wrapped != null && f'.wrapped != null) && (wrapped != null) - then f.type wrapped # value types - else if (f.payload != null && f'.payload != null) && (payload != null) + else if (f.payload != null && f'.payload != null) then f.type payload + # composed types + else if (f.wrapped != null && f'.wrapped != null) + then f.type wrapped else null; # Default type functor @@ -583,7 +583,11 @@ rec { getSubOptions = prefix: elemType.getSubOptions (prefix ++ [""]); getSubModules = elemType.getSubModules; substSubModules = m: attrsOf (elemType.substSubModules m); - functor = (defaultFunctor name) // { wrapped = elemType; }; + functor = (defaultFunctor name) // { + payload.wrapped = elemType; + type = payload: attrsOf payload.wrapped; + binOp = lhs: rhs: { wrapped = lhs.wrapped.typeMerge rhs.wrapped.functor; }; + }; nestedTypes.elemType = elemType; };