summaryrefslogtreecommitdiff
path: root/src/generate-names.cc
diff options
context:
space:
mode:
authorBen Smith <binjimin@gmail.com>2017-06-23 18:41:59 -0700
committerGitHub <noreply@github.com>2017-06-23 18:41:59 -0700
commit29e8e9ee0068b0f90f30c69c4f6c0c3fd30bf96e (patch)
tree07ac2e58343a65309726118ab2908a61a7144f05 /src/generate-names.cc
parent72edc598a20d79d5d19caf7b397be4254a7d5fb8 (diff)
downloadwabt-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.cc16
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;
}