diff options
author | Ben Smith <binjimin@gmail.com> | 2017-06-23 18:41:59 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-23 18:41:59 -0700 |
commit | 29e8e9ee0068b0f90f30c69c4f6c0c3fd30bf96e (patch) | |
tree | 07ac2e58343a65309726118ab2908a61a7144f05 /src/generate-names.cc | |
parent | 72edc598a20d79d5d19caf7b397be4254a7d5fb8 (diff) | |
download | wabt-29e8e9ee0068b0f90f30c69c4f6c0c3fd30bf96e.tar.gz wabt-29e8e9ee0068b0f90f30c69c4f6c0c3fd30bf96e.tar.bz2 wabt-29e8e9ee0068b0f90f30c69c4f6c0c3fd30bf96e.zip |
Refactor Expr as class hierarchy instead of union (#524)
This has the benefit of making things much more type-safe, as well as
simplifying destroying member variables.
For now, many of the members are still raw pointers, but they probably
should become unique_ptrs or ordinary values.
Diffstat (limited to 'src/generate-names.cc')
-rw-r--r-- | src/generate-names.cc | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/generate-names.cc b/src/generate-names.cc index f3332d5c..c2c602e7 100644 --- a/src/generate-names.cc +++ b/src/generate-names.cc @@ -41,9 +41,9 @@ class NameGenerator : public ExprVisitor::DelegateNop { Result VisitModule(Module* module); // Implementation of ExprVisitor::DelegateNop. - Result BeginBlockExpr(Expr* expr) override; - Result BeginLoopExpr(Expr* expr) override; - Result BeginIfExpr(Expr* expr) override; + Result BeginBlockExpr(BlockExpr* expr) override; + Result BeginLoopExpr(LoopExpr* expr) override; + Result BeginIfExpr(IfExpr* expr) override; private: static bool HasName(StringSlice* str); @@ -135,18 +135,18 @@ void NameGenerator::GenerateAndBindLocalNames(BindingHash* bindings, } } -Result NameGenerator::BeginBlockExpr(Expr* expr) { +Result NameGenerator::BeginBlockExpr(BlockExpr* expr) { MaybeGenerateName("$B", label_count_++, &expr->block->label); return Result::Ok; } -Result NameGenerator::BeginLoopExpr(Expr* expr) { - MaybeGenerateName("$L", label_count_++, &expr->loop->label); +Result NameGenerator::BeginLoopExpr(LoopExpr* expr) { + MaybeGenerateName("$L", label_count_++, &expr->block->label); return Result::Ok; } -Result NameGenerator::BeginIfExpr(Expr* expr) { - MaybeGenerateName("$I", label_count_++, &expr->if_.true_->label); +Result NameGenerator::BeginIfExpr(IfExpr* expr) { + MaybeGenerateName("$I", label_count_++, &expr->true_->label); return Result::Ok; } |