diff options
author | Vincent Ambo <mail@tazj.in> | 2022-08-23T19·54+0300 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2022-09-01T21·56+0000 |
commit | 6f31c895ffe2dc5dd8281d812252d5db0644ec77 (patch) | |
tree | 9e45e371bc7d066b8666a3df532c6d241ee1165b /tvix/eval/src/value | |
parent | 4715f9a3a0135e1b6bc1f24fbafc9b1ce1a9bc20 (diff) |
refactor(tvix/eval): return a lambda from the compiler r/4576
Changes the internal compiler plumbing to not just return a chunk of code, but the same chunk wrapped inside of a lambda value. This is one more step towards compiling runtime lambdas. Change-Id: If0035f8e65a2970c5ae123fc068a2396e1d8fd72 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6240 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
Diffstat (limited to 'tvix/eval/src/value')
-rw-r--r-- | tvix/eval/src/value/lambda.rs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/tvix/eval/src/value/lambda.rs b/tvix/eval/src/value/lambda.rs index 2cecb4f5373b..d8609f50f367 100644 --- a/tvix/eval/src/value/lambda.rs +++ b/tvix/eval/src/value/lambda.rs @@ -3,10 +3,21 @@ use std::rc::Rc; use crate::chunk::Chunk; -use super::NixString; - #[derive(Clone, Debug)] pub struct Lambda { - name: Option<NixString>, - chunk: Rc<Chunk>, + // name: Option<NixString>, + pub(crate) chunk: Rc<Chunk>, +} + +impl Lambda { + pub fn new_anonymous() -> Self { + Lambda { + // name: None, + chunk: Default::default(), + } + } + + pub fn chunk(&mut self) -> &mut Rc<Chunk> { + &mut self.chunk + } } |