fix: thunk & function

This commit is contained in:
2025-05-15 11:11:11 +08:00
parent bcb6c48cfa
commit 2293b9e2de
10 changed files with 76 additions and 112 deletions

View File

@@ -26,11 +26,6 @@ impl Clone for Env<'_> {
}
}
#[derive(Debug, Clone)]
pub struct CapturedEnv<'vm> {
env: Rc<Env<'vm>>,
}
impl<'vm> Env<'vm> {
pub fn empty() -> Self {
Env::default()
@@ -78,18 +73,4 @@ impl<'vm> Env<'vm> {
let map = last.map.borrow().clone();
*self.map.borrow_mut() = map;
}
pub fn captured(self: Rc<Self>) -> CapturedEnv<'vm> {
CapturedEnv { env: self }
}
}
impl<'vm> CapturedEnv<'vm> {
pub fn lookup(&self, symbol: &Symbol) -> Option<Value<'vm>> {
self.env.lookup(symbol)
}
pub fn released(self) -> Rc<Env<'vm>> {
Rc::new(self.env.as_ref().clone())
}
}