diff --git a/src/evaluator.rs b/src/evaluator.rs index 097a9dd..ce4f94d 100644 --- a/src/evaluator.rs +++ b/src/evaluator.rs @@ -93,7 +93,7 @@ fn evaluate_node(ast_node: &AstNode) -> Result { let children = &ast_node.children; match token { Token::Number(number) => { - Ok(Number::new(number.clone(), Unit::NoUnit)) + Ok(Number::new(*number, Unit::NoUnit)) }, Token::Constant(constant) => { match constant { @@ -192,7 +192,7 @@ fn evaluate_node(ast_node: &AstNode) -> Result { Token::Unit(unit) => { let child_node = children.get(0).ok_or("Unit has no child[0]")?; let child_answer = evaluate_node(child_node)?; - Ok(Number::new(child_answer.value, unit.clone())) + Ok(Number::new(child_answer.value, *unit)) }, Token::Negative => { let child_node = children.get(0).ok_or("Negative has no child[0]")?; diff --git a/src/lexer.rs b/src/lexer.rs index ec93fe8..9e60666 100644 --- a/src/lexer.rs +++ b/src/lexer.rs @@ -642,7 +642,7 @@ pub fn lex(input: &str, remove_trailing_operator: bool, default_degree: Unit) -> } if tokens.is_empty() { - Err("Input was empty".to_string()) + return Err("Input was empty".to_string()); } let mut token_index = 0; diff --git a/src/parser.rs b/src/parser.rs index 99e2dbe..1aa215f 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -17,7 +17,7 @@ impl AstNode { pub fn new(token: Token) -> AstNode { AstNode { children: Vec::new(), - token: token, + token, } } } diff --git a/src/units.rs b/src/units.rs index 82a76e2..2592f40 100644 --- a/src/units.rs +++ b/src/units.rs @@ -494,7 +494,7 @@ pub fn to_ideal_joule_unit(number: Number) -> Number { /// - If you multiply [`ElectricCurrent`] with [`Resistance`], the result has a unit of [`Voltage`] /// - If you multiply [`Power`] with [`Time`], the result has a unit of [`Energy`] pub fn multiply(left: Number, right: Number) -> Result { - Ok(actual_multiply(left, right, false)?) + actual_multiply(left, right, false) } fn actual_multiply(left: Number, right: Number, swapped: bool) -> Result {