From db9c713393c738cc89f4b3c71bb18937504d0571 Mon Sep 17 00:00:00 2001 From: Eman Resu <78693624+quatquatt@users.noreply.github.com> Date: Thu, 7 May 2026 18:48:48 -0400 Subject: [PATCH] lib.types: move variable to its usage, don't check condition twice The only place `merged` is used already checks if `coercedType.merge ? v2`, so we don't need to check it again. We can also avoid creating the variable if coercedTypes.merge doesn't have a v2 attribute. --- lib/types.nix | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/lib/types.nix b/lib/types.nix index d40b044792ff..deee0135e6c4 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -1617,19 +1617,15 @@ rec { def // { value = - let - merged = - if coercedType.merge ? v2 then - checkV2MergeCoherence loc coercedType ( - coercedType.merge.v2 { - inherit loc; - defs = [ def ]; - } - ) - else - null; - in if coercedType.merge ? v2 then + let + merged = checkV2MergeCoherence loc coercedType ( + coercedType.merge.v2 { + inherit loc; + defs = [ def ]; + } + ); + in if merged.headError == null then coerceFunc def.value else def.value else if coercedType.check def.value then coerceFunc def.value