summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/wasm-traversal.h18
1 files changed, 1 insertions, 17 deletions
diff --git a/src/wasm-traversal.h b/src/wasm-traversal.h
index 1f3cb9ca4..b70c17154 100644
--- a/src/wasm-traversal.h
+++ b/src/wasm-traversal.h
@@ -74,7 +74,7 @@ template<typename SubType, typename ReturnType = void> struct Visitor {
// A visitor which must be overridden for each visitor that is reached.
template<typename SubType, typename ReturnType = void>
-struct OverriddenVisitor {
+struct OverriddenVisitor : public Visitor<SubType, ReturnType> {
// Expression visitors, which must be overridden
#define DELEGATE(CLASS_TO_VISIT) \
ReturnType visit##CLASS_TO_VISIT(CLASS_TO_VISIT* curr) { \
@@ -86,22 +86,6 @@ struct OverriddenVisitor {
}
#include "wasm-delegations.def"
-
- ReturnType visit(Expression* curr) {
- assert(curr);
-
- switch (curr->_id) {
-#define DELEGATE(CLASS_TO_VISIT) \
- case Expression::Id::CLASS_TO_VISIT##Id: \
- return static_cast<SubType*>(this)->visit##CLASS_TO_VISIT( \
- static_cast<CLASS_TO_VISIT*>(curr))
-
-#include "wasm-delegations.def"
-
- default:
- WASM_UNREACHABLE("unexpected expression type");
- }
- }
};
// Visit with a single unified visitor, called on every node, instead of