mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-13 05:05:29 +03:00
Merge pull request #269546 from adisbladis/stdenv-meta-no-intermediate-alloc
stdenv: Avoid allocating intermediate attrset when checking meta validity
This commit is contained in:
commit
1e66093cca
1 changed files with 12 additions and 7 deletions
|
@ -492,16 +492,21 @@ let
|
||||||
|
|
||||||
assertValidity = { meta, attrs }: let
|
assertValidity = { meta, attrs }: let
|
||||||
validity = checkValidity attrs;
|
validity = checkValidity attrs;
|
||||||
in validity // {
|
inherit (validity) valid;
|
||||||
|
in validity // {
|
||||||
# Throw an error if trying to evaluate a non-valid derivation
|
# Throw an error if trying to evaluate a non-valid derivation
|
||||||
# or, alternatively, just output a warning message.
|
# or, alternatively, just output a warning message.
|
||||||
handled =
|
handled =
|
||||||
{
|
(
|
||||||
no = handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg; };
|
if valid == "yes" then true
|
||||||
warn = handleEvalWarning { inherit meta attrs; } { inherit (validity) reason errormsg; };
|
else if valid == "no" then (
|
||||||
yes = true;
|
handleEvalIssue { inherit meta attrs; } { inherit (validity) reason errormsg; }
|
||||||
}.${validity.valid};
|
)
|
||||||
|
else if valid == "warn" then (
|
||||||
|
handleEvalWarning { inherit meta attrs; } { inherit (validity) reason errormsg; }
|
||||||
|
)
|
||||||
|
else throw "Unknown validitiy: '${valid}'"
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
in { inherit assertValidity commonMeta; }
|
in { inherit assertValidity commonMeta; }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue