@@ -72,6 +72,7 @@ class TypeFunctor<R(const Type& n, Args...)> {
7272 virtual R VisitType_ (const GlobalTypeVarNode* op, Args... args) TYPE_FUNCTOR_DEFAULT;
7373 virtual R VisitType_ (const TypeCallNode* op, Args... args) TYPE_FUNCTOR_DEFAULT;
7474 virtual R VisitType_ (const TypeDataNode* op, Args... args) TYPE_FUNCTOR_DEFAULT;
75+ virtual R VisitType_ (const TypeOfNode* op, Args... args) TYPE_FUNCTOR_DEFAULT;
7576
7677 virtual R VisitTypeDefault_ (const Node* op, Args...) {
7778 LOG (FATAL) << " Do not have a default for " << op->type_key ();
@@ -93,6 +94,7 @@ class TypeFunctor<R(const Type& n, Args...)> {
9394 RELAY_TYPE_FUNCTOR_DISPATCH (GlobalTypeVarNode);
9495 RELAY_TYPE_FUNCTOR_DISPATCH (TypeCallNode);
9596 RELAY_TYPE_FUNCTOR_DISPATCH (TypeDataNode);
97+ RELAY_TYPE_FUNCTOR_DISPATCH (TypeOfNode);
9698 return vtable;
9799 }
98100};
@@ -111,6 +113,7 @@ class TypeVisitor : public TypeFunctor<void(const Type& n)> {
111113 void VisitType_ (const GlobalTypeVarNode* op) override ;
112114 void VisitType_ (const TypeCallNode* op) override ;
113115 void VisitType_ (const TypeDataNode* op) override ;
116+ void VisitType_ (const TypeOfNode* op) override ;
114117};
115118
116119// Mutator that transform a type to another one.
@@ -125,6 +128,7 @@ class TypeMutator : public TypeFunctor<Type(const Type& n)> {
125128 Type VisitType_ (const GlobalTypeVarNode* op) override ;
126129 Type VisitType_ (const TypeCallNode* op) override ;
127130 Type VisitType_ (const TypeDataNode* op) override ;
131+ Type VisitType_ (const TypeOfNode* op) override ;
128132
129133 private:
130134 Array<Type> MutateArray (Array<Type> arr);
0 commit comments