Index: src/Common/PassVisitor.h
===================================================================
--- src/Common/PassVisitor.h	(revision 77d24328ac45a6a1b577a385f5aa9b046e17a1ee)
+++ src/Common/PassVisitor.h	(revision c6f1f3ebf65fd583f3f052ae0aed817e4ce7f4fc)
@@ -155,6 +155,4 @@
 	virtual void visit( OffsetPackExpr * offsetPackExpr ) override final;
 	virtual void visit( const OffsetPackExpr * offsetPackExpr ) override final;
-	virtual void visit( AttrExpr * attrExpr ) override final;
-	virtual void visit( const AttrExpr * attrExpr ) override final;
 	virtual void visit( LogicalExpr * logicalExpr ) override final;
 	virtual void visit( const LogicalExpr * logicalExpr ) override final;
@@ -301,5 +299,4 @@
 	virtual Expression * mutate( OffsetofExpr * offsetofExpr ) override final;
 	virtual Expression * mutate( OffsetPackExpr * offsetPackExpr ) override final;
-	virtual Expression * mutate( AttrExpr * attrExpr ) override final;
 	virtual Expression * mutate( LogicalExpr * logicalExpr ) override final;
 	virtual Expression * mutate( ConditionalExpr * conditionalExpr ) override final;
Index: src/Common/PassVisitor.impl.h
===================================================================
--- src/Common/PassVisitor.impl.h	(revision 77d24328ac45a6a1b577a385f5aa9b046e17a1ee)
+++ src/Common/PassVisitor.impl.h	(revision c6f1f3ebf65fd583f3f052ae0aed817e4ce7f4fc)
@@ -2302,49 +2302,4 @@
 
 //--------------------------------------------------------------------------
-// AttrExpr
-template< typename pass_type >
-void PassVisitor< pass_type >::visit( AttrExpr * node ) {
-	VISIT_START( node );
-
-	indexerScopedAccept( node->result, *this );
-	if ( node->get_isType() ) {
-		maybeAccept_impl( node->type, *this );
-	} else {
-		maybeAccept_impl( node->expr, *this );
-	}
-
-	VISIT_END( node );
-}
-
-template< typename pass_type >
-void PassVisitor< pass_type >::visit( const AttrExpr * node ) {
-	VISIT_START( node );
-
-	indexerScopedAccept( node->result, *this );
-	if ( node->get_isType() ) {
-		maybeAccept_impl( node->type, *this );
-	} else {
-		maybeAccept_impl( node->expr, *this );
-	}
-
-	VISIT_END( node );
-}
-
-template< typename pass_type >
-Expression * PassVisitor< pass_type >::mutate( AttrExpr * node ) {
-	MUTATE_START( node );
-
-	indexerScopedMutate( node->env   , *this );
-	indexerScopedMutate( node->result, *this );
-	if ( node->get_isType() ) {
-		maybeMutate_impl( node->type, *this );
-	} else {
-		maybeMutate_impl( node->expr, *this );
-	}
-
-	MUTATE_END( Expression, node );
-}
-
-//--------------------------------------------------------------------------
 // LogicalExpr
 template< typename pass_type >
