summaryrefslogtreecommitdiff
path: root/include/mbgl/style/expression/let.hpp
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2018-07-20 15:40:47 +0300
committerBruno de Oliveira Abinader <bruno@mapbox.com>2018-07-24 10:06:18 +0300
commitcb714d57c5c5ad181aaf5e1690221da8d965682b (patch)
tree21fa8cc6caf1e66de40f9715fa98426e86cfd964 /include/mbgl/style/expression/let.hpp
parent1683da3225d0cbed3bb6238fd292fa288f6a32d6 (diff)
downloadqtlocation-mapboxgl-cb714d57c5c5ad181aaf5e1690221da8d965682b.tar.gz
[core] Replace expressions RTTI with enums + static cast
Diffstat (limited to 'include/mbgl/style/expression/let.hpp')
-rw-r--r--include/mbgl/style/expression/let.hpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/include/mbgl/style/expression/let.hpp b/include/mbgl/style/expression/let.hpp
index d0210d8bba..d11ba1b976 100644
--- a/include/mbgl/style/expression/let.hpp
+++ b/include/mbgl/style/expression/let.hpp
@@ -16,7 +16,7 @@ public:
using Bindings = std::map<std::string, std::shared_ptr<Expression>>;
Let(Bindings bindings_, std::unique_ptr<Expression> result_) :
- Expression(result_->getType()),
+ Expression(Kind::Let, result_->getType()),
bindings(std::move(bindings_)),
result(std::move(result_))
{}
@@ -27,7 +27,8 @@ public:
void eachChild(const std::function<void(const Expression&)>&) const override;
bool operator==(const Expression& e) const override {
- if (auto rhs = dynamic_cast<const Let*>(&e)) {
+ if (e.getKind() == Kind::Let) {
+ auto rhs = static_cast<const Let*>(&e);
return *result == *(rhs->result);
}
return false;
@@ -49,7 +50,7 @@ private:
class Var : public Expression {
public:
Var(std::string name_, std::shared_ptr<Expression> value_) :
- Expression(value_->getType()),
+ Expression(Kind::Var, value_->getType()),
name(std::move(name_)),
value(value_)
{}
@@ -60,7 +61,8 @@ public:
void eachChild(const std::function<void(const Expression&)>&) const override;
bool operator==(const Expression& e) const override {
- if (auto rhs = dynamic_cast<const Var*>(&e)) {
+ if (e.getKind() == Kind::Var) {
+ auto rhs = static_cast<const Var*>(&e);
return *value == *(rhs->value);
}
return false;