mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-06 17:13:24 -05:00
lib/modules: optimize performance by inlining bindings
This commit is contained in:
parent
5d72133a22
commit
ebafc3eb74
2 changed files with 48 additions and 41 deletions
|
|
@ -1503,23 +1503,27 @@ let
|
|||
v2 =
|
||||
{ loc, defs }:
|
||||
let
|
||||
isMergeV2 = coercedType.merge ? v2;
|
||||
coerceDef =
|
||||
def:
|
||||
let
|
||||
merged = coercedType.merge.v2 {
|
||||
inherit loc;
|
||||
defs = [ def ];
|
||||
};
|
||||
in
|
||||
if isMergeV2 then
|
||||
if merged.headError == null then coerceFunc def.value else def.value
|
||||
else if coercedType.check def.value then
|
||||
coerceFunc def.value
|
||||
else
|
||||
def.value;
|
||||
|
||||
finalDefs = (map (def: def // { value = coerceDef def; }) defs);
|
||||
finalDefs = (
|
||||
map (
|
||||
def:
|
||||
def
|
||||
// {
|
||||
value =
|
||||
let
|
||||
merged = coercedType.merge.v2 {
|
||||
inherit loc;
|
||||
defs = [ def ];
|
||||
};
|
||||
in
|
||||
if coercedType.merge ? v2 then
|
||||
if merged.headError == null then coerceFunc def.value else def.value
|
||||
else if coercedType.check def.value then
|
||||
coerceFunc def.value
|
||||
else
|
||||
def.value;
|
||||
}
|
||||
) defs
|
||||
);
|
||||
in
|
||||
if finalType.merge ? v2 then
|
||||
finalType.merge.v2 {
|
||||
|
|
@ -1530,7 +1534,7 @@ let
|
|||
{
|
||||
value = finalType.merge loc finalDefs;
|
||||
valueMeta = { };
|
||||
headError = checkDefsForError check loc finalDefs;
|
||||
headError = checkDefsForError check loc defs;
|
||||
};
|
||||
};
|
||||
emptyValue = finalType.emptyValue;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue