From 2ce7acedff164f82eaf6518aff45a35bd38d255b Mon Sep 17 00:00:00 2001 From: Amadeusz Juskowiak Date: Thu, 22 Dec 2016 08:15:21 +0100 Subject: [PATCH] moved to ? operator instead of try! --- src/calculator.rs | 4 ++-- src/evaluator.rs | 6 +++--- src/polynomial_calculator.rs | 6 +++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/calculator.rs b/src/calculator.rs index 60623d6..684348b 100644 --- a/src/calculator.rs +++ b/src/calculator.rs @@ -49,8 +49,8 @@ pub trait Calculator let evaluator = E::default(); let tokens = tokenizer.process(line); - let parsed_tokens = try!(parser.process(tokens)); - let evaluated = try!(evaluator.process(parsed_tokens)); + let parsed_tokens = parser.process(tokens)?; + let evaluated = evaluator.process(parsed_tokens)?; Ok(evaluated) } diff --git a/src/evaluator.rs b/src/evaluator.rs index e6695c4..d9037c8 100644 --- a/src/evaluator.rs +++ b/src/evaluator.rs @@ -247,7 +247,7 @@ impl TokensReducer for Evaluator { match *token { Token::Number(x) => stack.push(Polynomial::constant(x)), Token::Operator(x) => { - let result = try!(self.call_function(&x.to_string(), position, &mut stack)); + let result = self.call_function(&x.to_string(), position, &mut stack)?; stack.push(result); }, Token::Identifier(idx) => { @@ -258,7 +258,7 @@ impl TokensReducer for Evaluator { continue; } - let result = try!(self.call_function(&x, position, &mut stack)); + let result = self.call_function(&x, position, &mut stack)?; stack.push(result); }, _ => unreachable!() @@ -556,7 +556,7 @@ mod tests { evaluator.register_function("*", Function::new(2, Box::new(multiplication))); evaluator.register_function("mod", Function::new(2, Box::new(|args|{ - Ok(Polynomial::constant(try!(args[0].clone().as_f64()) % try!(args[1].clone().as_f64()))) + Ok(Polynomial::constant(args[0].clone().as_f64()? % args[1].clone().as_f64()?)) }))); assert_eq!(evaluator.process(parser.process(tokenize_ref!("mod(17, 4)")).unwrap()), Ok(Polynomial::constant(1.0))); diff --git a/src/polynomial_calculator.rs b/src/polynomial_calculator.rs index 21751d0..9b2c7e2 100644 --- a/src/polynomial_calculator.rs +++ b/src/polynomial_calculator.rs @@ -258,7 +258,7 @@ pub mod functions { /// It will return a wrapped `PolynomialError::NonConstantError` when any of the /// arguments is not a constant polynomial (a polynomial of degree zero). pub fn log(args: Vec) -> Result { - Ok(Polynomial::constant(try!(args[0].as_f64()).log(try!(args[1].as_f64())))) + Ok(Polynomial::constant(args[0].as_f64()?.log(args[1].as_f64()?))) } /// Computes a decimal logarithm (requires a single constant argument). @@ -277,7 +277,7 @@ pub mod functions { /// It will return a wrapped `PolynomialError::NonConstantError` when the argument /// is not a constant polynomial (a polynomial of degree zero). pub fn log10(args: Vec) -> Result { - Ok(Polynomial::constant(try!(args[0].as_f64()).log10())) + Ok(Polynomial::constant(args[0].as_f64()?.log10())) } /// Binds a polynomial with a value (requires two arguments). @@ -299,7 +299,7 @@ pub mod functions { /// It will return a wrapped `PolynomialError::NonConstantError` when the second /// argument is not a constant polynomial (a polynomial of degree zero). pub fn bind(args: Vec) -> Result { - Ok(args[0].bind(try!(args[1].as_f64()))) + Ok(args[0].bind(args[1].as_f64()?)) } /// Performs exponentiation of polynomial (requires two arguments).