diff options
Diffstat (limited to 'tvix/eval')
-rw-r--r-- | tvix/eval/src/compiler/bindings.rs | 4 | ||||
-rw-r--r-- | tvix/eval/src/compiler/mod.rs | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/tvix/eval/src/compiler/bindings.rs b/tvix/eval/src/compiler/bindings.rs index 2e703aadc876..a3d7c6fbfb33 100644 --- a/tvix/eval/src/compiler/bindings.rs +++ b/tvix/eval/src/compiler/bindings.rs @@ -658,6 +658,10 @@ impl Compiler<'_> { if kind.is_attrs() { self.push_op(OpCode::OpAttrs(Count(count)), node); } + + if count == 0 { + self.unthunk(); + } } /// Compile a standard `let ...; in ...` expression. diff --git a/tvix/eval/src/compiler/mod.rs b/tvix/eval/src/compiler/mod.rs index bfb823b673c5..c7061c77a02a 100644 --- a/tvix/eval/src/compiler/mod.rs +++ b/tvix/eval/src/compiler/mod.rs @@ -592,6 +592,10 @@ impl Compiler<'_> { self.scope_mut().mark_initialised(item_slot); } + if count == 0 { + self.unthunk(); + } + self.push_op(OpCode::OpList(Count(count)), node); self.scope_mut().end_scope(); } |