diff options
author | Vincent Ambo <mail@tazj.in> | 2022-08-10T14·30+0300 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2022-08-24T18·19+0000 |
commit | 08b4d65fbd0ab1f5809aa2f6eb5da819d61299c4 (patch) | |
tree | 4c42398579cd6077d777cb02246d9ddc003e86cc /tvix/eval/src/compiler.rs | |
parent | 293fb0ef5371a9341f3149bebcc32ca142383add (diff) |
feat(tvix/value): implement nested attribute set literals r/4455
With this change, nested attribute sets can now be created from literals. This required some logic for dealing with cases where at a deeper nesting point a literal attribute set was constructed from an optimised representation. For example, this is valid Nix code: ```nix { a = {}; # creates optimised empty representation a.b = 1; # wants to add a `b = 1` to it b = { name = "foo"; value = "bar"; }; # creates optimised K/V repr b.foo = 42; # wants to add an additional `foo = 42` } ``` In these cases, the attribute set must be coerced to a map representation first which is achieved by the new internal NixAttr::map_mut helper. Change-Id: Ia61d3d9d14c4e0f5e207c00f6a2f4daa3265afb2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6109 Reviewed-by: eta <tvl@eta.st> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/eval/src/compiler.rs')
0 files changed, 0 insertions, 0 deletions