diff options
author | Anand Thakker <anandthakker@users.noreply.github.com> | 2018-08-02 13:48:47 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-02 13:48:47 -0400 |
commit | d25e1a1e7f313efd78aa76c76e4fed5f4d792d8a (patch) | |
tree | fb3e191cf79c09e14e3bf41e1d3212a74175f985 /src/mbgl/style/expression/dsl.cpp | |
parent | 952c4131e6a46fd0fab2208379dc340fb02924e3 (diff) | |
download | qtlocation-mapboxgl-d25e1a1e7f313efd78aa76c76e4fed5f4d792d8a.tar.gz |
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
Diffstat (limited to 'src/mbgl/style/expression/dsl.cpp')
-rw-r--r-- | src/mbgl/style/expression/dsl.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/mbgl/style/expression/dsl.cpp b/src/mbgl/style/expression/dsl.cpp index a851d82e16..cdada583a2 100644 --- a/src/mbgl/style/expression/dsl.cpp +++ b/src/mbgl/style/expression/dsl.cpp @@ -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, |