Fix float json to literal equality comparison by casting them both to float.

This commit is contained in:
Tom Alexander 2020-06-13 16:32:57 -04:00
parent de5932b4c6
commit 8ef3949a65
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE

View File

@ -340,15 +340,10 @@ impl CompareContextElement for serde_json::Value {
return self
.equals(&serde_json::Value::Number(other_json_num) as &dyn ContextElement);
}
Some(OwnedLiteral::LFloat(other_num)) => {
let other_json_num = serde_json::Number::from_f64(*other_num);
match other_json_num {
None => return false,
Some(ojn) => {
return self.equals(&serde_json::Value::Number(ojn) as &dyn ContextElement)
}
}
}
Some(OwnedLiteral::LFloat(other_num)) => match self.as_f64() {
None => return false,
Some(self_float) => return self_float == *other_num,
},
}
false
}