From 789b28ac8aacd31e22dec5d0b1fc2ec4930367ca Mon Sep 17 00:00:00 2001 From: Mohammed Anas <32234660+mhmdanas@users.noreply.github.com> Date: Thu, 30 Apr 2020 00:59:50 +0000 Subject: [PATCH] Convert if expression to match (#1683) --- crates/nu-parser/src/parse.rs | 60 ++++++++++++++--------------------- 1 file changed, 23 insertions(+), 37 deletions(-) diff --git a/crates/nu-parser/src/parse.rs b/crates/nu-parser/src/parse.rs index 79dfb919fb..0d305864ec 100644 --- a/crates/nu-parser/src/parse.rs +++ b/crates/nu-parser/src/parse.rs @@ -221,43 +221,29 @@ fn parse_range(lite_arg: &Spanned) -> (SpannedExpression, Option) -> (SpannedExpression, Option) { - let operator = if lite_arg.item == "==" { - Operator::Equal - } else if lite_arg.item == "!=" { - Operator::NotEqual - } else if lite_arg.item == "<" { - Operator::LessThan - } else if lite_arg.item == "<=" { - Operator::LessThanOrEqual - } else if lite_arg.item == ">" { - Operator::GreaterThan - } else if lite_arg.item == ">=" { - Operator::GreaterThanOrEqual - } else if lite_arg.item == "=~" { - Operator::Contains - } else if lite_arg.item == "!~" { - Operator::NotContains - } else if lite_arg.item == "+" { - Operator::Plus - } else if lite_arg.item == "-" { - Operator::Minus - } else if lite_arg.item == "*" { - Operator::Multiply - } else if lite_arg.item == "/" { - Operator::Divide - } else if lite_arg.item == "in:" { - Operator::In - } else if lite_arg.item == "not-in:" { - Operator::NotIn - } else if lite_arg.item == "&&" { - Operator::And - } else if lite_arg.item == "||" { - Operator::Or - } else { - return ( - garbage(lite_arg.span), - Some(ParseError::mismatch("operator", lite_arg.clone())), - ); + let operator = match &lite_arg.item[..] { + "==" => Operator::Equal, + "!=" => Operator::NotEqual, + "<" => Operator::LessThan, + "<=" => Operator::LessThanOrEqual, + ">" => Operator::GreaterThan, + ">=" => Operator::GreaterThanOrEqual, + "=~" => Operator::Contains, + "!~" => Operator::NotContains, + "+" => Operator::Plus, + "-" => Operator::Minus, + "*" => Operator::Multiply, + "/" => Operator::Divide, + "in:" => Operator::In, + "not-in:" => Operator::NotIn, + "&&" => Operator::And, + "||" => Operator::Or, + _ => { + return ( + garbage(lite_arg.span), + Some(ParseError::mismatch("operator", lite_arg.clone())), + ); + } }; (