summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas Wojciechowski <lucas@mapbox.com>2018-04-10 18:25:37 -0700
committerAsheem Mamoowala <asheem.mamoowala@mapbox.com>2018-05-09 16:06:10 -0700
commitaca5a8ff696030924a0b35bd415433a9b3bb3f3e (patch)
treef400cf5df674d368d2d0f6f30842d95b3ccfee1f
parent2652219801fac3b4ba54083332bb66af67984301 (diff)
downloadqtlocation-mapboxgl-aca5a8ff696030924a0b35bd415433a9b3bb3f3e.tar.gz
Fix render tests
-rw-r--r--src/mbgl/style/conversion/filter.cpp8
-rw-r--r--src/mbgl/style/expression/compound_expression.cpp10
2 files changed, 10 insertions, 8 deletions
diff --git a/src/mbgl/style/conversion/filter.cpp b/src/mbgl/style/conversion/filter.cpp
index c3af1f914d..3000b4fe3b 100644
--- a/src/mbgl/style/conversion/filter.cpp
+++ b/src/mbgl/style/conversion/filter.cpp
@@ -122,8 +122,8 @@ optional<Filter> Converter<Filter>::operator()(const Convertible& value, Error&
return { ExpressionFilter { std::move(*expression) } };
}
-std::unique_ptr<Expression> convertComparisonOp(const Convertible& values, Error& error) {
- optional<std::string> op = toString(arrayMember(values, 0));
+ std::unique_ptr<Expression> convertComparisonOp(const Convertible& values, Error& error, optional<std::string> opOverride = {}) {
+ optional<std::string> op = opOverride ? opOverride : toString(arrayMember(values, 0));
optional<std::string> property = toString(arrayMember(values, 1));
if (!property) {
@@ -188,12 +188,12 @@ std::unique_ptr<Expression> convertLegacyFilter(const Convertible& values, Error
return std::make_unique<Literal>(*op != "any");
} else {
return (
- *op == "==" ? convertComparisonOp(values, error) :
- *op == "!=" ? convertNegation(convertComparisonOp(values, error), error) :
+ *op == "==" ||
*op == "<" ||
*op == ">" ||
*op == "<=" ||
*op == ">=" ? convertComparisonOp(values, error) :
+ *op == "!=" ? convertNegation(convertComparisonOp(values, error, {"=="}), error) :
*op == "any" ? createExpression("any", createLegacyFilter2Array(values, error, 1), error) :
*op == "all" ? createExpression("all", createLegacyFilter2Array(values, error, 1), error) :
*op == "none" ? convertNegation(createExpression("any", createLegacyFilter2Array(values, error, 1), error), error) :
diff --git a/src/mbgl/style/expression/compound_expression.cpp b/src/mbgl/style/expression/compound_expression.cpp
index 72d1643a39..cb7cd8ebbf 100644
--- a/src/mbgl/style/expression/compound_expression.cpp
+++ b/src/mbgl/style/expression/compound_expression.cpp
@@ -252,6 +252,8 @@ optional<double> featurePropertyAsDouble(EvaluationContext params, const std::st
if (!property) return optional<double>();
return property->match(
[](double value) { return value; },
+ [](uint64_t value) { return optional<double>(value); },
+ [](int64_t value) { return optional<double>(value); },
[](auto) { return optional<double>(); }
);
};
@@ -261,10 +263,10 @@ optional<double> featureIdAsDouble(EvaluationContext params) {
auto id = params.feature->getID();
if (!id) return optional<double>();
return id->match(
- [](std::string) { return optional<double>(); },
- [](uint64_t value) { return optional<double>(static_cast<double>(value)); },
- [](int64_t value) { return optional<double>(static_cast<double>(value)); },
- [](double value) { return optional<double>(value); }
+ [](double value) { return value; },
+ [](uint64_t value) { return optional<double>(static_cast<double>(value)); },
+ [](int64_t value) { return optional<double>(static_cast<double>(value)); },
+ [](auto) { return optional<double>(); }
);
};