Index: src/AST/Expr.cpp
===================================================================
--- src/AST/Expr.cpp	(revision 16afb2a5a8827bbc0bd62b1f576b21ab9e335880)
+++ src/AST/Expr.cpp	(revision 2810700a9b044557e84a36b6419e2a7cf30534df)
@@ -307,18 +307,4 @@
 }
 
-// 
-
-// --- EnumPosExpr
-EnumPosExpr::EnumPosExpr( const CodeLocation & loc, const EnumInstType * ty)
-: Expr( loc, new BasicType{ BasicType::UnsignedInt }), type( ty ) {
-	assert( ty );
-}
-
-EnumPosExpr::EnumPosExpr( const CodeLocation & loc, const Expr * expr )
-: Expr( loc, new BasicType{ BasicType::UnsignedInt }), expr(expr) {
-	assert( expr );
-}
-
-
 // --- LogicalExpr
 
Index: src/AST/Expr.hpp
===================================================================
--- src/AST/Expr.hpp	(revision 16afb2a5a8827bbc0bd62b1f576b21ab9e335880)
+++ src/AST/Expr.hpp	(revision 2810700a9b044557e84a36b6419e2a7cf30534df)
@@ -548,17 +548,4 @@
 };
 
-class EnumPosExpr final : public Expr {
-public:
-	ptr<EnumInstType> type;
-	ptr<Expr> expr;
-	
-	EnumPosExpr( const CodeLocation & loc, const EnumInstType * ty );
-	EnumPosExpr( const CodeLocation & loc, const Expr * expr );
-	const Expr * accept( Visitor & v ) const override { return v.visit( this ); }
-private:
-	EnumPosExpr * clone() const override { return new EnumPosExpr{ *this }; }
-	MUTATE_FRIEND
-};
-
 /// Variants of short-circuiting logical expression
 enum LogicalFlag { OrExpr, AndExpr };
Index: src/AST/Fwd.hpp
===================================================================
--- src/AST/Fwd.hpp	(revision 16afb2a5a8827bbc0bd62b1f576b21ab9e335880)
+++ src/AST/Fwd.hpp	(revision 2810700a9b044557e84a36b6419e2a7cf30534df)
@@ -89,5 +89,4 @@
 class OffsetofExpr;
 class OffsetPackExpr;
-class EnumPosExpr;
 class LogicalExpr;
 class ConditionalExpr;
Index: src/AST/Node.cpp
===================================================================
--- src/AST/Node.cpp	(revision 16afb2a5a8827bbc0bd62b1f576b21ab9e335880)
+++ src/AST/Node.cpp	(revision 2810700a9b044557e84a36b6419e2a7cf30534df)
@@ -232,6 +232,4 @@
 template class ast::ptr_base< ast::OffsetPackExpr, ast::Node::ref_type::weak >;
 template class ast::ptr_base< ast::OffsetPackExpr, ast::Node::ref_type::strong >;
-template class ast::ptr_base< ast::EnumPosExpr, ast::Node::ref_type::weak >;
-template class ast::ptr_base< ast::EnumPosExpr, ast::Node::ref_type::strong >;
 template class ast::ptr_base< ast::LogicalExpr, ast::Node::ref_type::weak >;
 template class ast::ptr_base< ast::LogicalExpr, ast::Node::ref_type::strong >;
Index: src/AST/Pass.hpp
===================================================================
--- src/AST/Pass.hpp	(revision 16afb2a5a8827bbc0bd62b1f576b21ab9e335880)
+++ src/AST/Pass.hpp	(revision 2810700a9b044557e84a36b6419e2a7cf30534df)
@@ -191,5 +191,4 @@
 	const ast::Expr *             visit( const ast::OffsetofExpr         * ) override final;
 	const ast::Expr *             visit( const ast::OffsetPackExpr       * ) override final;
-	const ast::Expr *             visit( const ast::EnumPosExpr          * ) override final;
 	const ast::Expr *             visit( const ast::LogicalExpr          * ) override final;
 	const ast::Expr *             visit( const ast::ConditionalExpr      * ) override final;
Index: src/AST/Pass.impl.hpp
===================================================================
--- src/AST/Pass.impl.hpp	(revision 16afb2a5a8827bbc0bd62b1f576b21ab9e335880)
+++ src/AST/Pass.impl.hpp	(revision 2810700a9b044557e84a36b6419e2a7cf30534df)
@@ -1452,19 +1452,4 @@
 
 //--------------------------------------------------------------------------
-// EnumPosExpr
-template< typename core_t>
-const ast::Expr * ast::Pass< core_t >::visit( const ast::EnumPosExpr * node ) {
-	VISIT_START( node );
-
-	if ( __visit_children() ) {
-		guard_symtab guard { *this };
-		maybe_accept( node, &EnumPosExpr::type );
-		maybe_accept( node, &EnumPosExpr::expr );
-	}
-
-	VISIT_END( Expr, node );
-}
-
-//--------------------------------------------------------------------------
 // LogicalExpr
 template< typename core_t >
Index: src/AST/Print.cpp
===================================================================
--- src/AST/Print.cpp	(revision 16afb2a5a8827bbc0bd62b1f576b21ab9e335880)
+++ src/AST/Print.cpp	(revision 2810700a9b044557e84a36b6419e2a7cf30534df)
@@ -1186,13 +1186,4 @@
 	}
 
-	virtual const ast::Expr * visit( const ast::EnumPosExpr * node ) override final {
-		os << "Enum Position Expression on: ";
-		++indent;
-		safe_print( node->type );
-		--indent;
-		postprint( node );
-		return node;
-	}
-
 	virtual const ast::Expr * visit( const ast::LogicalExpr * node ) override final {
 		os << "Short-circuited operation (" << (node->isAnd ? "and" : "or") << ") on: ";
Index: src/AST/Visitor.hpp
===================================================================
--- src/AST/Visitor.hpp	(revision 16afb2a5a8827bbc0bd62b1f576b21ab9e335880)
+++ src/AST/Visitor.hpp	(revision 2810700a9b044557e84a36b6419e2a7cf30534df)
@@ -79,5 +79,4 @@
     virtual const ast::Expr *             visit( const ast::OffsetofExpr         * ) = 0;
     virtual const ast::Expr *             visit( const ast::OffsetPackExpr       * ) = 0;
-    virtual const ast::Expr *             visit( const ast::EnumPosExpr          * ) = 0;
     virtual const ast::Expr *             visit( const ast::LogicalExpr          * ) = 0;
     virtual const ast::Expr *             visit( const ast::ConditionalExpr      * ) = 0;
