mirror of
https://github.com/NixOS/nix.git
synced 2025-11-12 13:36:02 +01:00
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).
409 B
409 B
| synopsis | prs |
|---|---|
| `inherit (x) ...` evaluates `x` only once | 9847 |
inherit (x) a b ... now evaluates the expression x only once for all inherited attributes rather than once for each inherited attribute.
This does not usually have a measurable impact, but side-effects (such as builtins.trace) would be duplicated and expensive expressions (such as derivations) could cause a measurable slowdown.