Relax typing for comparison operators (#12537)
* Relax typing for comparison operators Ports https://github.com/mapbox/mapbox-gl-js/pull/6961 * Review comments * Lint fixes
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
#include <mbgl/style/expression/literal.hpp>
|
||||
#include <mbgl/style/expression/assertion.hpp>
|
||||
#include <mbgl/style/expression/coercion.hpp>
|
||||
#include <mbgl/style/expression/equals.hpp>
|
||||
#include <mbgl/style/expression/comparison.hpp>
|
||||
#include <mbgl/style/expression/step.hpp>
|
||||
#include <mbgl/style/expression/interpolate.hpp>
|
||||
#include <mbgl/style/expression/compound_expression.hpp>
|
||||
@@ -53,16 +53,20 @@ std::unique_ptr<Expression> literal(std::initializer_list<const char *> value) {
|
||||
return literal(values);
|
||||
}
|
||||
|
||||
std::unique_ptr<Expression> assertion(type::Type type, std::unique_ptr<Expression> value) {
|
||||
return std::make_unique<Assertion>(type, vec(std::move(value)));
|
||||
}
|
||||
|
||||
std::unique_ptr<Expression> number(std::unique_ptr<Expression> value) {
|
||||
return std::make_unique<Assertion>(type::Number, vec(std::move(value)));
|
||||
return assertion(type::Number, std::move(value));
|
||||
}
|
||||
|
||||
std::unique_ptr<Expression> string(std::unique_ptr<Expression> value) {
|
||||
return std::make_unique<Assertion>(type::String, vec(std::move(value)));
|
||||
return assertion(type::String, std::move(value));
|
||||
}
|
||||
|
||||
std::unique_ptr<Expression> boolean(std::unique_ptr<Expression> value) {
|
||||
return std::make_unique<Assertion>(type::Boolean, vec(std::move(value)));
|
||||
return assertion(type::Boolean, std::move(value));
|
||||
}
|
||||
|
||||
std::unique_ptr<Expression> toColor(std::unique_ptr<Expression> value) {
|
||||
@@ -91,22 +95,22 @@ std::unique_ptr<Expression> zoom() {
|
||||
|
||||
std::unique_ptr<Expression> eq(std::unique_ptr<Expression> lhs,
|
||||
std::unique_ptr<Expression> rhs) {
|
||||
return std::make_unique<Equals>(std::move(lhs), std::move(rhs), nullopt, false);
|
||||
return std::make_unique<BasicComparison>("==", std::move(lhs), std::move(rhs));
|
||||
}
|
||||
|
||||
std::unique_ptr<Expression> ne(std::unique_ptr<Expression> lhs,
|
||||
std::unique_ptr<Expression> rhs) {
|
||||
return std::make_unique<Equals>(std::move(lhs), std::move(rhs), nullopt, true);
|
||||
return std::make_unique<BasicComparison>("!=", std::move(lhs), std::move(rhs));
|
||||
}
|
||||
|
||||
std::unique_ptr<Expression> gt(std::unique_ptr<Expression> lhs,
|
||||
std::unique_ptr<Expression> rhs) {
|
||||
return compound(">", std::move(lhs), std::move(rhs));
|
||||
return std::make_unique<BasicComparison>(">", std::move(lhs), std::move(rhs));
|
||||
}
|
||||
|
||||
std::unique_ptr<Expression> lt(std::unique_ptr<Expression> lhs,
|
||||
std::unique_ptr<Expression> rhs) {
|
||||
return compound("<", std::move(lhs), std::move(rhs));
|
||||
return std::make_unique<BasicComparison>("<", std::move(lhs), std::move(rhs));
|
||||
}
|
||||
|
||||
std::unique_ptr<Expression> step(std::unique_ptr<Expression> input,
|
||||
|
||||
Reference in New Issue
Block a user