From f68c76d07daf9794797b1056ce39e8e1bdeca8e4 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 6 Sep 2022 17:44:32 +0300 Subject: fix(tvix/eval): account for attrset temporaries during construction The temporaries left on the stack as operands to `OpAttrs` must be accounted for in the locals array in order for operations within them to receive correct slots. Some test cases that were previously broken have been added. Change-Id: Ib52b629bbdf7931f63fd45a45af1073022da923c Reviewed-on: https://cl.tvl.fyi/c/depot/+/6468 Tested-by: BuildkiteCI Reviewed-by: sterni --- tvix/eval/src/tests/tvix_tests/eval-okay-thunked-with.nix | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 tvix/eval/src/tests/tvix_tests/eval-okay-thunked-with.nix (limited to 'tvix/eval/src/tests/tvix_tests/eval-okay-thunked-with.nix') diff --git a/tvix/eval/src/tests/tvix_tests/eval-okay-thunked-with.nix b/tvix/eval/src/tests/tvix_tests/eval-okay-thunked-with.nix new file mode 100644 index 000000000000..6f32660c4c33 --- /dev/null +++ b/tvix/eval/src/tests/tvix_tests/eval-okay-thunked-with.nix @@ -0,0 +1,7 @@ +# Creates a `with` across multiple thunk boundaries. + +let + set = { + a = with { b = 42; }; b; + }; +in set.a -- cgit 1.4.1