REFACTOR: normalize eval method naming for values.

This commit is contained in:
Jeremy Wall 2018-12-31 10:12:39 -06:00
parent 05aa57ae7f
commit 2c9abddb61

View File

@ -233,7 +233,7 @@ impl<'a> FileBuilder<'a> {
self.import_stack = new_stack; self.import_stack = new_stack;
} }
fn tuple_to_val(&mut self, fields: &Vec<(Token, Expression)>) -> Result<Rc<Val>, Box<Error>> { fn eval_tuple(&mut self, fields: &Vec<(Token, Expression)>) -> Result<Rc<Val>, Box<Error>> {
let mut new_fields = Vec::<(PositionedItem<String>, Rc<Val>)>::new(); let mut new_fields = Vec::<(PositionedItem<String>, Rc<Val>)>::new();
for &(ref name, ref expr) in fields.iter() { for &(ref name, ref expr) in fields.iter() {
let val = self.eval_expr(expr)?; let val = self.eval_expr(expr)?;
@ -242,7 +242,7 @@ impl<'a> FileBuilder<'a> {
Ok(Rc::new(Val::Tuple(new_fields))) Ok(Rc::new(Val::Tuple(new_fields)))
} }
fn list_to_val(&mut self, def: &ListDef) -> Result<Rc<Val>, Box<Error>> { fn eval_list(&mut self, def: &ListDef) -> Result<Rc<Val>, Box<Error>> {
let mut vals = Vec::new(); let mut vals = Vec::new();
for expr in def.elems.iter() { for expr in def.elems.iter() {
vals.push(self.eval_expr(expr)?); vals.push(self.eval_expr(expr)?);
@ -250,7 +250,7 @@ impl<'a> FileBuilder<'a> {
Ok(Rc::new(Val::List(vals))) Ok(Rc::new(Val::List(vals)))
} }
fn value_to_val(&mut self, v: &Value) -> Result<Rc<Val>, Box<Error>> { fn eval_value(&mut self, v: &Value) -> Result<Rc<Val>, Box<Error>> {
match v { match v {
&Value::Empty(_) => Ok(Rc::new(Val::Empty)), &Value::Empty(_) => Ok(Rc::new(Val::Empty)),
&Value::Boolean(ref b) => Ok(Rc::new(Val::Boolean(b.val))), &Value::Boolean(ref b) => Ok(Rc::new(Val::Boolean(b.val))),
@ -265,8 +265,8 @@ impl<'a> FileBuilder<'a> {
v.pos().clone(), v.pos().clone(),
))) )))
} }
&Value::List(ref def) => self.list_to_val(def), &Value::List(ref def) => self.eval_list(def),
&Value::Tuple(ref tuple) => self.tuple_to_val(&tuple.val), &Value::Tuple(ref tuple) => self.eval_tuple(&tuple.val),
&Value::Selector(ref selector_list_node) => { &Value::Selector(ref selector_list_node) => {
self.lookup_selector(&selector_list_node.sel) self.lookup_selector(&selector_list_node.sel)
} }
@ -1155,7 +1155,7 @@ impl<'a> FileBuilder<'a> {
// First we rewrite the imports to be absolute paths. // First we rewrite the imports to be absolute paths.
def.imports_to_absolute(root); def.imports_to_absolute(root);
// Then we create our tuple default. // Then we create our tuple default.
def.arg_tuple = Some(self.tuple_to_val(&def.arg_set)?); def.arg_tuple = Some(self.eval_tuple(&def.arg_set)?);
// Then we construct a new Val::Module // Then we construct a new Val::Module
Ok(Rc::new(Val::Module(def))) Ok(Rc::new(Val::Module(def)))
} }
@ -1305,7 +1305,7 @@ impl<'a> FileBuilder<'a> {
// It does not mutate the builders collected state at all. // It does not mutate the builders collected state at all.
pub fn eval_expr(&mut self, expr: &Expression) -> Result<Rc<Val>, Box<Error>> { pub fn eval_expr(&mut self, expr: &Expression) -> Result<Rc<Val>, Box<Error>> {
match expr { match expr {
&Expression::Simple(ref val) => self.value_to_val(val), &Expression::Simple(ref val) => self.eval_value(val),
&Expression::Binary(ref def) => self.eval_binary(def), &Expression::Binary(ref def) => self.eval_binary(def),
&Expression::Compare(ref def) => self.eval_compare(def), &Expression::Compare(ref def) => self.eval_compare(def),
&Expression::Copy(ref def) => self.eval_copy(def), &Expression::Copy(ref def) => self.eval_copy(def),