Index: src/Common/PassVisitor.h
===================================================================
--- src/Common/PassVisitor.h	(revision 07c178f0653a2553f5c511a5a286acc54ad243e2)
+++ src/Common/PassVisitor.h	(revision 13deae882b49c1c60e1d33ad6958f7f9a92fb9ee)
@@ -119,4 +119,6 @@
 	virtual void visit( StmtExpr *  stmtExpr ) override final;
 	virtual void visit( UniqueExpr *  uniqueExpr ) override final;
+	virtual void visit( UntypedInitExpr *  initExpr ) override final;
+	virtual void visit( InitExpr *  initExpr ) override final;
 
 	virtual void visit( VoidType * basicType ) override final;
@@ -211,4 +213,6 @@
 	virtual Expression * mutate( StmtExpr *  stmtExpr ) override final;
 	virtual Expression * mutate( UniqueExpr *  uniqueExpr ) override final;
+	virtual Expression * mutate( UntypedInitExpr *  initExpr ) override final;
+	virtual Expression * mutate( InitExpr *  initExpr ) override final;
 
 	virtual Type * mutate( VoidType * basicType ) override final;
Index: src/Common/PassVisitor.impl.h
===================================================================
--- src/Common/PassVisitor.impl.h	(revision 07c178f0653a2553f5c511a5a286acc54ad243e2)
+++ src/Common/PassVisitor.impl.h	(revision 13deae882b49c1c60e1d33ad6958f7f9a92fb9ee)
@@ -1853,4 +1853,54 @@
 }
 
+//--------------------------------------------------------------------------
+// UntypedInitExpr
+template< typename pass_type >
+void PassVisitor< pass_type >::visit( UntypedInitExpr * node ) {
+	VISIT_START( node );
+
+	indexerScopedAccept( node->result, *this );
+	maybeAccept_impl   ( node->expr  , *this );
+	// not currently visiting initAlts, but this doesn't matter since this node is only used in the resolver.
+
+	VISIT_END( node );
+}
+
+template< typename pass_type >
+Expression * PassVisitor< pass_type >::mutate( UntypedInitExpr * node ) {
+	MUTATE_START( node );
+
+	indexerScopedMutate( node->env   , *this );
+	indexerScopedMutate( node->result, *this );
+	maybeMutate_impl   ( node->expr  , *this );
+	// not currently visiting initAlts, but this doesn't matter since this node is only used in the resolver.
+
+	MUTATE_END( Expression, node );
+}
+
+//--------------------------------------------------------------------------
+// InitExpr
+template< typename pass_type >
+void PassVisitor< pass_type >::visit( InitExpr * node ) {
+	VISIT_START( node );
+
+	indexerScopedAccept( node->result, *this );
+	maybeAccept_impl   ( node->expr  , *this );
+	maybeAccept_impl   ( node->designation, *this );
+
+	VISIT_END( node );
+}
+
+template< typename pass_type >
+Expression * PassVisitor< pass_type >::mutate( InitExpr * node ) {
+	MUTATE_START( node );
+
+	indexerScopedMutate( node->env   , *this );
+	indexerScopedMutate( node->result, *this );
+	maybeMutate_impl   ( node->expr  , *this );
+	maybeMutate_impl   ( node->designation, *this );
+
+	MUTATE_END( Expression, node );
+}
+
 template< typename pass_type >
 void PassVisitor< pass_type >::visit( VoidType * node ) {
