Index: src/Parser/DeclarationNode.cpp
===================================================================
--- src/Parser/DeclarationNode.cpp	(revision f8f298c573e67eab13017b76801450a46e597d21)
+++ src/Parser/DeclarationNode.cpp	(revision 99f7f37f62c6c32f096c69e3cbfc27235c62ad4a)
@@ -185,10 +185,10 @@
 } // DeclarationNode::newAggregate
 
-DeclarationNode * DeclarationNode::newEnum( const string * name, DeclarationNode * constants, bool body, bool typed, DeclarationNode * base, EnumHiding hiding ) {
+DeclarationNode * DeclarationNode::newEnum( const string * name, DeclarationNode * constants, bool body, bool isCfa, DeclarationNode * base, EnumHiding hiding ) {
 	DeclarationNode * newnode = newAggregate( ast::AggregateDecl::Enum, name, nullptr, constants, body );
-	newnode->type->aggregate.typed = typed;
+	newnode->type->aggregate.isCfa = isCfa;
 	newnode->type->aggregate.hiding = hiding;
 	if ( base ) {
-		assert( typed );
+		assert( isCfa );
 		assert( base->type );
 		newnode->type->base = base->type;
@@ -541,5 +541,5 @@
 	newaggr->aggregate.body = false;
 	newaggr->aggregate.anon = oldaggr->aggregate.anon;
-	newaggr->aggregate.typed = oldaggr->aggregate.typed;
+	newaggr->aggregate.isCfa = oldaggr->aggregate.isCfa;
 	newaggr->aggregate.hiding = oldaggr->aggregate.hiding;
 	swap( newaggr, oldaggr );
Index: src/Parser/TypeData.cpp
===================================================================
--- src/Parser/TypeData.cpp	(revision f8f298c573e67eab13017b76801450a46e597d21)
+++ src/Parser/TypeData.cpp	(revision 99f7f37f62c6c32f096c69e3cbfc27235c62ad4a)
@@ -84,5 +84,5 @@
 		aggregate.body = false;
 		aggregate.anon = false;
-		aggregate.typed = false;
+		aggregate.isCfa = false;
 		aggregate.hiding = EnumHiding::Visible;
 		break;
@@ -218,4 +218,6 @@
 		newtype->aggregate.body = aggregate.body;
 		newtype->aggregate.anon = aggregate.anon;
+		newtype->aggregate.isCfa = aggregate.isCfa;
+		newtype->aggregate.hiding = aggregate.hiding;
 		break;
 	case AggregateInst:
@@ -1456,5 +1458,5 @@
 		td->location,
 		*td->aggregate.name,
-		td->aggregate.typed,
+		td->aggregate.isCfa,
 		std::move( attributes ),
 		linkage,
Index: src/Parser/TypeData.hpp
===================================================================
--- src/Parser/TypeData.hpp	(revision f8f298c573e67eab13017b76801450a46e597d21)
+++ src/Parser/TypeData.hpp	(revision 99f7f37f62c6c32f096c69e3cbfc27235c62ad4a)
@@ -60,6 +60,6 @@
 		// Is this type anonymous? (Name can still be set to generated name.)
 		bool anon;
-		// Is this a typed enumeration? Type may be stored in base.
-		bool typed;
+		// Is this a cfa enumeration? Type stored in base.
+		bool isCfa;
 		EnumHiding hiding;
 	};
