diff --git a/src/mapping/eval.rs b/src/mapping/eval.rs index 47f2039..22d916b 100644 --- a/src/mapping/eval.rs +++ b/src/mapping/eval.rs @@ -222,11 +222,8 @@ fn eval_binary_op(left: &Value, op: BinOp, right: &Value) -> error::Result { - match right { - Value::Int(0) => { - return Err(error::MorphError::mapping("modulo by zero")); - } - _ => {} + if let Value::Int(0) = right { + return Err(error::MorphError::mapping("modulo by zero")); } eval_arithmetic(left, right, |a, b| a % b, |a, b| a % b) } diff --git a/src/mapping/functions.rs b/src/mapping/functions.rs index 1f0fb2c..a447a8a 100644 --- a/src/mapping/functions.rs +++ b/src/mapping/functions.rs @@ -207,7 +207,7 @@ fn fn_join(args: &[Value]) -> error::Result { } }; let sep = to_str(&args[1]); - let parts: Vec = arr.iter().map(|v| to_str(v)).collect(); + let parts: Vec = arr.iter().map(to_str).collect(); Ok(Value::String(parts.join(&sep))) } @@ -634,8 +634,8 @@ mod tests { #[test] fn test_to_float() { assert_eq!( - call_function("to_float", &[Value::String("3.14".into())]).unwrap(), - Value::Float(3.14) + call_function("to_float", &[Value::String("2.72".into())]).unwrap(), + Value::Float(2.72) ); assert_eq!( call_function("to_float", &[Value::Int(42)]).unwrap(), @@ -694,8 +694,8 @@ mod tests { Value::Int(5) ); assert_eq!( - call_function("abs", &[Value::Float(-3.14)]).unwrap(), - Value::Float(3.14) + call_function("abs", &[Value::Float(-2.72)]).unwrap(), + Value::Float(2.72) ); }