diff options
Diffstat (limited to 'tvix/eval/src/tests/tvix_tests/eval-okay-listtoattrs.nix')
-rw-r--r-- | tvix/eval/src/tests/tvix_tests/eval-okay-listtoattrs.nix | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/tvix/eval/src/tests/tvix_tests/eval-okay-listtoattrs.nix b/tvix/eval/src/tests/tvix_tests/eval-okay-listtoattrs.nix new file mode 100644 index 0000000000..551db72cb0 --- /dev/null +++ b/tvix/eval/src/tests/tvix_tests/eval-okay-listtoattrs.nix @@ -0,0 +1,16 @@ +with builtins; +let + fold = op: nul: list: + if list == [ ] + then nul + else op (head list) (fold op nul (tail list)); + concat = + fold (x: y: x + y) ""; + asi = name: value: { inherit name value; }; + list = [ (asi "a" "A") (asi "b" "B") ]; + a = builtins.listToAttrs list; + b = builtins.listToAttrs (list ++ list); + r = builtins.listToAttrs [ (asi "result" [ a b ]) (asi "throw" (throw "this should not be thrown")) ]; + x = builtins.listToAttrs [ (asi "foo" "bar") (asi "foo" "bla") ]; +in +concat (map (x: x.a) r.result) + x.foo |