Index: src/Common/PassVisitor.h
===================================================================
--- src/Common/PassVisitor.h	(revision 6e50a6bc841ea438631989230a869a5ede7467e8)
+++ src/Common/PassVisitor.h	(revision b2386184d4e03c2f6d3e5292c567610b3b2d6da4)
@@ -230,4 +230,6 @@
 	virtual void visit( TypeofType * typeofType ) override final;
 	virtual void visit( const TypeofType * typeofType ) override final;
+	virtual void visit( VTableType * vtableType ) override final;
+	virtual void visit( const VTableType * vtableType ) override final;
 	virtual void visit( AttrType * attrType ) override final;
 	virtual void visit( const AttrType * attrType ) override final;
@@ -343,4 +345,5 @@
 	virtual Type * mutate( TupleType * tupleType ) override final;
 	virtual Type * mutate( TypeofType * typeofType ) override final;
+	virtual Type * mutate( VTableType * vtableType ) override final;
 	virtual Type * mutate( AttrType * attrType ) override final;
 	virtual Type * mutate( VarArgsType * varArgsType ) override final;
Index: src/Common/PassVisitor.impl.h
===================================================================
--- src/Common/PassVisitor.impl.h	(revision 6e50a6bc841ea438631989230a869a5ede7467e8)
+++ src/Common/PassVisitor.impl.h	(revision b2386184d4e03c2f6d3e5292c567610b3b2d6da4)
@@ -3610,4 +3610,39 @@
 
 //--------------------------------------------------------------------------
+// VTableType
+template< typename pass_type >
+void PassVisitor< pass_type >::visit( VTableType * node ) {
+	VISIT_START( node );
+
+	// Forall qualifiers should be on base type, not here
+	// maybeAccept_impl( node->forall, *this );
+	maybeAccept_impl( node->base, *this );
+
+	VISIT_END( node );
+}
+
+template< typename pass_type >
+void PassVisitor< pass_type >::visit( const VTableType * node ) {
+	VISIT_START( node );
+
+	// Forall qualifiers should be on base type, not here
+	// maybeAccept_impl( node->forall, *this );
+	maybeAccept_impl( node->base, *this );
+
+	VISIT_END( node );
+}
+
+template< typename pass_type >
+Type * PassVisitor< pass_type >::mutate( VTableType * node ) {
+	MUTATE_START( node );
+
+	// Forall qualifiers should be on base type, not here
+	// maybeMutate_impl( node->forall, *this );
+	maybeMutate_impl( node->base, *this );
+
+	MUTATE_END( Type, node );
+}
+
+//--------------------------------------------------------------------------
 // AttrType
 template< typename pass_type >
