chore: cargo fmt
This commit is contained in:
@@ -26,22 +26,29 @@ enum Env<'jit, 'vm> {
|
||||
pub enum Type {
|
||||
Arg,
|
||||
Let,
|
||||
With
|
||||
With,
|
||||
}
|
||||
|
||||
impl<'jit, 'vm> LetEnv<'jit, 'vm> {
|
||||
pub fn new(map: Rc<AttrSet<'jit, 'vm>>) -> Self {
|
||||
Self { map: Env::Let(map), last: None }
|
||||
Self {
|
||||
map: Env::Let(map),
|
||||
last: None,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn lookup(&self, symbol: usize) -> Option<Value<'jit, 'vm>> {
|
||||
use Env::*;
|
||||
match &self.map {
|
||||
Let(map) | MultiArg(map) => if let Some(val) = map.select(symbol) {
|
||||
return Some(val)
|
||||
Let(map) | MultiArg(map) => {
|
||||
if let Some(val) = map.select(symbol) {
|
||||
return Some(val);
|
||||
}
|
||||
}
|
||||
SingleArg(sym, val) => if *sym == symbol {
|
||||
return Some(val.clone())
|
||||
SingleArg(sym, val) => {
|
||||
if *sym == symbol {
|
||||
return Some(val.clone());
|
||||
}
|
||||
}
|
||||
}
|
||||
self.last.as_ref().map(|env| env.lookup(symbol)).flatten()
|
||||
|
||||
Reference in New Issue
Block a user