Index: src/Common/PassVisitor.h
===================================================================
--- src/Common/PassVisitor.h	(revision 4429b04ca946276c0b8ac84a2f2188572c29d66c)
+++ src/Common/PassVisitor.h	(revision 61255ad0ca09164c5b6b5904a6653569a4380074)
@@ -81,4 +81,5 @@
 	virtual void visit( FinallyStmt * finallyStmt ) override final;
 	virtual void visit( WaitForStmt * waitforStmt ) override final;
+	virtual void visit( WithStmt * withStmt ) override final;
 	virtual void visit( NullStmt * nullStmt ) override final;
 	virtual void visit( DeclStmt * declStmt ) override final;
@@ -172,4 +173,5 @@
 	virtual Statement * mutate( FinallyStmt * finallyStmt ) override final;
 	virtual Statement * mutate( WaitForStmt * waitforStmt ) override final;
+	virtual Statement * mutate( WithStmt * withStmt ) override final;
 	virtual NullStmt * mutate( NullStmt * nullStmt ) override final;
 	virtual Statement * mutate( DeclStmt * declStmt ) override final;
Index: src/Common/PassVisitor.impl.h
===================================================================
--- src/Common/PassVisitor.impl.h	(revision 4429b04ca946276c0b8ac84a2f2188572c29d66c)
+++ src/Common/PassVisitor.impl.h	(revision 61255ad0ca09164c5b6b5904a6653569a4380074)
@@ -988,4 +988,16 @@
 // NullStmt
 template< typename pass_type >
+void PassVisitor< pass_type >::visit( WithStmt * node ) {
+	VISIT_BODY( node );
+}
+
+template< typename pass_type >
+Statement * PassVisitor< pass_type >::mutate( WithStmt * node ) {
+	MUTATE_BODY( Statement, node );
+}
+
+//--------------------------------------------------------------------------
+// NullStmt
+template< typename pass_type >
 void PassVisitor< pass_type >::visit( NullStmt * node ) {
 	VISIT_BODY( node );
