Add modulo operator and simplify in/not-in (#2505)

This commit is contained in:
Jonathan Turner
2020-09-07 12:12:55 +12:00
committed by GitHub
parent c973850571
commit 986b427038
7 changed files with 35 additions and 6 deletions

View File

@ -33,6 +33,14 @@ pub fn apply_operator(
)),
_ => res,
}),
Operator::Modulo => value::compute_values(op, left, right).map(|res| match res {
UntaggedValue::Error(_) => UntaggedValue::Error(ShellError::labeled_error(
"Evaluation error",
"division by zero",
&right.tag.span,
)),
_ => res,
}),
Operator::In => table_contains(left, right).map(UntaggedValue::boolean),
Operator::NotIn => table_contains(left, right).map(|x| UntaggedValue::boolean(!x)),
Operator::And => match (left.as_bool(), right.as_bool()) {