about summary refs log tree commit diff
path: root/tvix/eval/src/value/attrs/tests.rs
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2022-08-10T14·30+0300
committertazjin <tazjin@tvl.su>2022-08-24T18·19+0000
commit08b4d65fbd0ab1f5809aa2f6eb5da819d61299c4 (patch)
tree4c42398579cd6077d777cb02246d9ddc003e86cc /tvix/eval/src/value/attrs/tests.rs
parent293fb0ef5371a9341f3149bebcc32ca142383add (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/value/attrs/tests.rs')
0 files changed, 0 insertions, 0 deletions