diff options
-rw-r--r-- | tvix/eval/src/tests/tvix_tests/eval-okay-rec-nested-access.exp | 1 | ||||
-rw-r--r-- | tvix/eval/src/tests/tvix_tests/eval-okay-rec-nested-access.nix | 4 | ||||
-rw-r--r-- | tvix/eval/src/vm.rs | 3 |
3 files changed, 7 insertions, 1 deletions
diff --git a/tvix/eval/src/tests/tvix_tests/eval-okay-rec-nested-access.exp b/tvix/eval/src/tests/tvix_tests/eval-okay-rec-nested-access.exp new file mode 100644 index 000000000000..a1dca9bb6860 --- /dev/null +++ b/tvix/eval/src/tests/tvix_tests/eval-okay-rec-nested-access.exp @@ -0,0 +1 @@ +{ a = { b = 1; c = 2; }; } diff --git a/tvix/eval/src/tests/tvix_tests/eval-okay-rec-nested-access.nix b/tvix/eval/src/tests/tvix_tests/eval-okay-rec-nested-access.nix new file mode 100644 index 000000000000..7d037c6b37bc --- /dev/null +++ b/tvix/eval/src/tests/tvix_tests/eval-okay-rec-nested-access.nix @@ -0,0 +1,4 @@ +rec { + a.b = 1; + a.c = a.b * 2; +} diff --git a/tvix/eval/src/vm.rs b/tvix/eval/src/vm.rs index a71ab14c412c..c5b892d78d6f 100644 --- a/tvix/eval/src/vm.rs +++ b/tvix/eval/src/vm.rs @@ -712,7 +712,8 @@ impl<'o> VM<'o> { Value::Thunk(thunk) => { fallible!(self, thunk.force(self)); - self.force_for_output(&thunk.value()) + let value = thunk.value().clone(); + self.force_for_output(&value) } // If any of these internal values are encountered here a |