diff options
author | sterni <sternenseemann@systemli.org> | 2023-05-29T10·45+0200 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2023-05-29T19·36+0000 |
commit | d09f333d0e06154290921ff4dcca3d9fe755d3b0 (patch) | |
tree | 00787608812a6338bf7db729886a9b0410512636 /tvix/eval/src | |
parent | 2aab01ac298c81c3f504c1ac2608ee9aaf88346b (diff) |
fix(tvix/eval): thunk lambda expressions r/6217
As cl/8658 and b/274 reveal, lambda expressions are also wrapped in thunks. Resolves b/274. Change-Id: I02fe5c8730ac76748d940e4f4427116587875275 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8662 Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
Diffstat (limited to 'tvix/eval/src')
-rw-r--r-- | tvix/eval/src/compiler/mod.rs | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/tvix/eval/src/compiler/mod.rs b/tvix/eval/src/compiler/mod.rs index 773fc0f053ab..478d132758e8 100644 --- a/tvix/eval/src/compiler/mod.rs +++ b/tvix/eval/src/compiler/mod.rs @@ -284,11 +284,9 @@ impl Compiler<'_> { ast::Expr::Ident(ident) => self.compile_ident(slot, ident), ast::Expr::With(with) => self.thunk(slot, with, |c, s| c.compile_with(s, with)), - ast::Expr::Lambda(lambda) => { - self.compile_lambda_or_thunk(false, slot, lambda, |c, s| { - c.compile_lambda(s, lambda) - }) - } + ast::Expr::Lambda(lambda) => self.thunk(slot, lambda, move |c, s| { + c.compile_lambda_or_thunk(false, s, lambda, |c, s| c.compile_lambda(s, lambda)) + }), ast::Expr::Apply(apply) => { self.thunk(slot, apply, move |c, s| c.compile_apply(s, apply)) } |