Index: src/AST/Fwd.hpp
===================================================================
--- src/AST/Fwd.hpp	(revision b2386184d4e03c2f6d3e5292c567610b3b2d6da4)
+++ src/AST/Fwd.hpp	(revision 3945abe88b7b9b2808b8106d9c47bb28a32ac879)
@@ -117,4 +117,5 @@
 class TupleType;
 class TypeofType;
+class VTableType;
 class VarArgsType;
 class ZeroType;
Index: src/AST/Pass.hpp
===================================================================
--- src/AST/Pass.hpp	(revision b2386184d4e03c2f6d3e5292c567610b3b2d6da4)
+++ src/AST/Pass.hpp	(revision 3945abe88b7b9b2808b8106d9c47bb28a32ac879)
@@ -213,4 +213,5 @@
 	const ast::Type *             visit( const ast::TupleType            * ) override final;
 	const ast::Type *             visit( const ast::TypeofType           * ) override final;
+	const ast::Type *             visit( const ast::VTableType           * ) override final;
 	const ast::Type *             visit( const ast::VarArgsType          * ) override final;
 	const ast::Type *             visit( const ast::ZeroType             * ) override final;
Index: src/AST/Pass.impl.hpp
===================================================================
--- src/AST/Pass.impl.hpp	(revision b2386184d4e03c2f6d3e5292c567610b3b2d6da4)
+++ src/AST/Pass.impl.hpp	(revision 3945abe88b7b9b2808b8106d9c47bb28a32ac879)
@@ -1873,4 +1873,17 @@
 
 //--------------------------------------------------------------------------
+// VTableType
+template< typename core_t >
+const ast::Type * ast::Pass< core_t >::visit( const ast::VTableType * node ) {
+	VISIT_START( node );
+
+	VISIT(
+		maybe_accept( node, &VTableType::base );
+	)
+
+	VISIT_END( Type, node );
+}
+
+//--------------------------------------------------------------------------
 // VarArgsType
 template< typename core_t >
Index: src/AST/Print.cpp
===================================================================
--- src/AST/Print.cpp	(revision b2386184d4e03c2f6d3e5292c567610b3b2d6da4)
+++ src/AST/Print.cpp	(revision 3945abe88b7b9b2808b8106d9c47bb28a32ac879)
@@ -1416,4 +1416,12 @@
 	}
 
+	virtual const ast::Type * visit( const ast::VTableType * node ) override final {
+		preprint( node );
+		os << "vtable for ";
+		safe_print( node->base );
+
+		return node;
+	}
+
 	virtual const ast::Type * visit( const ast::VarArgsType * node ) override final {
 		preprint( node );
Index: src/AST/Visitor.hpp
===================================================================
--- src/AST/Visitor.hpp	(revision b2386184d4e03c2f6d3e5292c567610b3b2d6da4)
+++ src/AST/Visitor.hpp	(revision 3945abe88b7b9b2808b8106d9c47bb28a32ac879)
@@ -105,4 +105,5 @@
     virtual const ast::Type *             visit( const ast::TupleType            * ) = 0;
     virtual const ast::Type *             visit( const ast::TypeofType           * ) = 0;
+    virtual const ast::Type *             visit( const ast::VTableType           * ) = 0;
     virtual const ast::Type *             visit( const ast::VarArgsType          * ) = 0;
     virtual const ast::Type *             visit( const ast::ZeroType             * ) = 0;
