git.delta.rocks / jrsonnet / refs/commits / e284e94b4e0c

difftreelog

fix(evaluator) string arithmetics

Лач2020-06-04parent: #d37d57f.patch.diff
in: master

1 file changed

modifiedcrates/jsonnet-evaluator/src/evaluate.rsdiffbeforeafterboth
80
80 (Val::Str(v1), Val::Num(v2)) => Val::Str(format!("{}{}", v1, v2)),81 (Val::Str(v1), Val::Num(v2)) => Val::Str(format!("{}{}", v1, v2)),
81 (Val::Num(v1), Val::Str(v2)) => Val::Str(format!("{}{}", v1, v2)),82 (Val::Num(v1), Val::Str(v2)) => Val::Str(format!("{}{}", v1, v2)),
82 (Val::Str(v1), v2) => Val::Str(format!("{}{:?}", v1, v2)),83 (Val::Str(v1), Val::Bool(v2)) => Val::Str(format!("{}{}", v1, v2)),
84 (Val::Bool(v1), Val::Str(v2)) => Val::Str(format!("{}{}", v1, v2)),
85 (Val::Str(v1), Val::Null) => Val::Str(format!("{}null", v1)),
86 (Val::Null, Val::Str(v2)) => Val::Str(format!("null{}", v2)),
87
83 (Val::Obj(v1), Val::Obj(v2)) => Val::Obj(v2.with_super(v1.clone())),88 (Val::Obj(v1), Val::Obj(v2)) => Val::Obj(v2.with_super(v1.clone())),
84 (Val::Arr(a), Val::Arr(b)) => Val::Arr([&a[..], &b[..]].concat()),89 (Val::Arr(a), Val::Arr(b)) => Val::Arr([&a[..], &b[..]].concat()),
157 Val::Num(((*v1 as i32) >> (*v2 as i32)) as f64)162 Val::Num(((*v1 as i32) >> (*v2 as i32)) as f64)
158 }163 }
164
165 (Val::Str(v1), BinaryOpType::Lt, Val::Str(v2)) => Val::Bool(v1 < v2),
166 (Val::Str(v1), BinaryOpType::Gt, Val::Str(v2)) => Val::Bool(v1 > v2),
167 (Val::Str(v1), BinaryOpType::Lte, Val::Str(v2)) => Val::Bool(v1 <= v2),
168 (Val::Str(v1), BinaryOpType::Gte, Val::Str(v2)) => Val::Bool(v1 >= v2),
159169
160 (Val::Num(v1), BinaryOpType::Lt, Val::Num(v2)) => Val::Bool(v1 < v2),170 (Val::Num(v1), BinaryOpType::Lt, Val::Num(v2)) => Val::Bool(v1 < v2),
161 (Val::Num(v1), BinaryOpType::Gt, Val::Num(v2)) => Val::Bool(v1 > v2),171 (Val::Num(v1), BinaryOpType::Gt, Val::Num(v2)) => Val::Bool(v1 > v2),