git.delta.rocks / jrsonnet / refs/commits / 8725bbe95d48

difftreelog

fix(evaluator) forbid negative shift

Лач2020-07-01parent: #44b3195.patch.diff
in: master

1 file changed

modifiedcrates/jrsonnet-evaluator/src/evaluate.rsdiffbeforeafterboth
160 Val::Num(((*v1 as i32) ^ (*v2 as i32)) as f64)160 Val::Num(((*v1 as i32) ^ (*v2 as i32)) as f64)
161 }161 }
162 (Val::Num(v1), BinaryOpType::Lhs, Val::Num(v2)) => {162 (Val::Num(v1), BinaryOpType::Lhs, Val::Num(v2)) => {
163 if *v2 < 0.0 {
164 create_error_result(Error::RuntimeError("shift by negative exponent".into()))?
165 }
163 Val::Num(((*v1 as i32) << (*v2 as i32)) as f64)166 Val::Num(((*v1 as i32) << (*v2 as i32)) as f64)
164 }167 }
165 (Val::Num(v1), BinaryOpType::Rhs, Val::Num(v2)) => {168 (Val::Num(v1), BinaryOpType::Rhs, Val::Num(v2)) => {
169 if *v2 < 0.0 {
170 create_error_result(Error::RuntimeError("shift by negative exponent".into()))?
171 }
166 Val::Num(((*v1 as i32) >> (*v2 as i32)) as f64)172 Val::Num(((*v1 as i32) >> (*v2 as i32)) as f64)
167 }173 }
168174