fix(tvix/eval): thunk lambda expressions
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>
This commit is contained in:
parent
2aab01ac29
commit
d09f333d0e
1 changed files with 3 additions and 5 deletions
|
@ -284,11 +284,9 @@ impl Compiler<'_> {
|
||||||
|
|
||||||
ast::Expr::Ident(ident) => self.compile_ident(slot, ident),
|
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::With(with) => self.thunk(slot, with, |c, s| c.compile_with(s, with)),
|
||||||
ast::Expr::Lambda(lambda) => {
|
ast::Expr::Lambda(lambda) => self.thunk(slot, lambda, move |c, s| {
|
||||||
self.compile_lambda_or_thunk(false, slot, lambda, |c, s| {
|
c.compile_lambda_or_thunk(false, s, lambda, |c, s| c.compile_lambda(s, lambda))
|
||||||
c.compile_lambda(s, lambda)
|
}),
|
||||||
})
|
|
||||||
}
|
|
||||||
ast::Expr::Apply(apply) => {
|
ast::Expr::Apply(apply) => {
|
||||||
self.thunk(slot, apply, move |c, s| c.compile_apply(s, apply))
|
self.thunk(slot, apply, move |c, s| c.compile_apply(s, apply))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue