From c36bc3377e3b7110faab173b216c20ea97208c00 Mon Sep 17 00:00:00 2001 From: greg Date: Sun, 24 Jan 2016 15:52:18 -0800 Subject: [PATCH] Fix lookup_binding in function call case --- src/eval.rs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/eval.rs b/src/eval.rs index bb88165..f81a1df 100644 --- a/src/eval.rs +++ b/src/eval.rs @@ -52,17 +52,14 @@ impl Evaluator { } fn lookup_binding(&mut self, var: String) -> Option { - self.varmap.map.get(&var).map(|expr| expr.clone()) - .or_else(|| { - for frame in self.frames.iter() { - match frame.map.get(&var) { - None => (), - Some(expr) => return Some(expr.clone()), - } - } + for frame in self.frames.iter() { + match frame.map.get(&var) { + None => (), + Some(expr) => return Some(expr.clone()), + } + } - None - }) + self.varmap.map.get(&var).map(|expr| expr.clone()) } fn add_function(&mut self, name: String, function: Function) {