From dfa34d93769703cd099a0f2f86cb39c67a4d0f41 Mon Sep 17 00:00:00 2001 From: Eman Resu <78693624+quatquatt@users.noreply.github.com> Date: Fri, 1 May 2026 16:13:59 -0400 Subject: [PATCH] stdenv.mkDerivation: move attrNames out of happy path --- pkgs/stdenv/generic/make-derivation.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix index ca9dc2a29a7a..a3bef62d4d71 100644 --- a/pkgs/stdenv/generic/make-derivation.nix +++ b/pkgs/stdenv/generic/make-derivation.nix @@ -26,6 +26,7 @@ let getDev head foldl' + intersectAttrs isAttrs isBool isDerivation @@ -909,13 +910,13 @@ let checkedEnv = let - overlappingNames = attrNames (builtins.intersectAttrs env' derivationArg); + overlappingArgs = intersectAttrs env' derivationArg; in assert (isAttrs env && !isDerivation env) || throw "`env` must be an attribute set of environment variables. Set `env.env` or pick a more specific name."; assert - (overlappingNames == [ ]) + (overlappingArgs == { }) || throw ( let errors = lib.concatMapStringsSep "\n" ( @@ -923,7 +924,7 @@ let " - ${name}: in `env`: ${lib.generators.toPretty { } env'.${name}}; in derivation arguments: ${ lib.generators.toPretty { } derivationArg.${name} }" - ) overlappingNames; + ) (attrNames overlappingArgs); in "The `env` attribute set cannot contain any attributes passed to derivation. The following attributes are overlapping:\n${errors}"