b667b4cded
desugaring inherit-from to syntactic duplication of the source expr also duplicates side effects of the source expr (such as trace calls) and expensive computations (such as derivationStrict). (cherry picked from commit cefd0302b55b3360dbca59cfcb4bf6a750d6cdcf) Change-Id: Iff519f991adef2e51683ba2c552d37a3df7a179e
16 lines
277 B
Nix
16 lines
277 B
Nix
let
|
|
inherit (builtins.trace "used" { a = 1; b = 2; }) a b;
|
|
x.c = 3;
|
|
y.d = 4;
|
|
|
|
merged = {
|
|
inner = {
|
|
inherit (y) d;
|
|
};
|
|
|
|
inner = {
|
|
inherit (x) c;
|
|
};
|
|
};
|
|
in
|
|
[ a b rec { x.c = []; inherit (x) c; inherit (y) d; __overrides.y.d = []; } merged ]
|