Index: src/ResolvExpr/CastCost.cpp
===================================================================
--- src/ResolvExpr/CastCost.cpp	(revision 2a5345b5c63144cf77ec580fd39acf0ec350f3c3)
+++ src/ResolvExpr/CastCost.cpp	(revision 90e683bd043dbecee5fc34eec99bc3d53f59d082)
@@ -53,13 +53,13 @@
 		void postvisit( const ast::EnumInstType * enumInst ) {
 			cost = conversionCost( enumInst, dst, srcIsLvalue, symtab, env );
-			if ( enumInst->base->isTyped() ) {
-				auto baseConversionCost = 
+			if ( enumInst->base->is_typed_enum() ) {
+				auto baseConversionCost =
 					castCost( enumInst->base->base, dst, srcIsLvalue, symtab, env );
-				cost = baseConversionCost < cost? baseConversionCost: cost;
+				cost = baseConversionCost < cost ? baseConversionCost : cost;
 			}
 			static ast::ptr<ast::BasicType> integer = { new ast::BasicType( ast::BasicKind::SignedInt ) };
 			Cost intCost = costCalc( integer, dst, srcIsLvalue, symtab, env );
 			intCost.incSafe();
-			cost = intCost < cost? intCost: cost;
+			cost = intCost < cost ? intCost : cost;
 		}
 
Index: src/ResolvExpr/CommonType.cpp
===================================================================
--- src/ResolvExpr/CommonType.cpp	(revision 2a5345b5c63144cf77ec580fd39acf0ec350f3c3)
+++ src/ResolvExpr/CommonType.cpp	(revision 90e683bd043dbecee5fc34eec99bc3d53f59d082)
@@ -386,5 +386,5 @@
 		} else if ( const ast::EnumInstType * enumInst = dynamic_cast< const ast::EnumInstType * >( type2 ) ) {
 			const ast::EnumDecl* enumDecl = enumInst->base;
-			if ( !enumDecl->isCfa  ) {
+			if ( enumDecl->is_c_enum() ) {
 				ast::BasicKind kind = commonTypes[ basic->kind ][ ast::BasicKind::SignedInt ];
 				if (
@@ -654,5 +654,5 @@
 				result = param;
 			}
-		} else if ( param->base && !param->base->isCfa ) {
+		} else if ( param->base && param->base->is_c_enum() ) {
 			auto basicType = new ast::BasicType( ast::BasicKind::UnsignedInt );
 			result = commonType( basicType, type2, tenv, need, have, open, widen);
Index: src/ResolvExpr/ConversionCost.cpp
===================================================================
--- src/ResolvExpr/ConversionCost.cpp	(revision 2a5345b5c63144cf77ec580fd39acf0ec350f3c3)
+++ src/ResolvExpr/ConversionCost.cpp	(revision 90e683bd043dbecee5fc34eec99bc3d53f59d082)
@@ -246,5 +246,5 @@
 		}
 		if (const ast::EnumInstType * srcAsInst = dynamic_cast< const ast::EnumInstType * >( src )) {
-			if (srcAsInst->base && !srcAsInst->base->isCfa) {
+			if ( srcAsInst->base && srcAsInst->base->is_c_enum() ) {
 				static const ast::BasicType* integer = new ast::BasicType( ast::BasicKind::UnsignedInt );
 				return ast::Pass<ConversionCost>::read( integer, dst, srcIsLvalue, symtab, env, conversionCost );
@@ -324,5 +324,5 @@
 		conversionCostFromBasicToBasic( basicType, dstAsBasic );
 	} else if ( auto dstAsEnumInst = dynamic_cast< const ast::EnumInstType * >( dst ) ) {
-		if ( dstAsEnumInst->base && !dstAsEnumInst->base->isCfa ) {
+		if ( dstAsEnumInst->base && dstAsEnumInst->base->is_c_enum() ) {
 			cost = Cost::safe;
 		}
@@ -405,5 +405,5 @@
 	if ( auto dstInst = dynamic_cast<const ast::EnumInstType *>( dst ) ) {
 		cost = enumCastCost(inst, dstInst, symtab, env);
-	} else if ( !inst->base->isCfa ) {
+	} else if ( inst->base->is_c_enum() ) {
 		static ast::ptr<ast::BasicType> integer = { new ast::BasicType( ast::BasicKind::SignedInt ) };
 		cost = costCalc( integer, dst, srcIsLvalue, symtab, env );
@@ -455,6 +455,5 @@
 }
 
-void ConversionCost::postvisit( const ast::VarArgsType * varArgsType ) {
-	(void)varArgsType;
+void ConversionCost::postvisit( const ast::VarArgsType * ) {
 	if ( dynamic_cast< const ast::VarArgsType * >( dst ) ) {
 		cost = Cost::zero;
@@ -462,6 +461,5 @@
 }
 
-void ConversionCost::postvisit( const ast::ZeroType * zeroType ) {
-	(void)zeroType;
+void ConversionCost::postvisit( const ast::ZeroType * ) {
 	if ( dynamic_cast< const ast::ZeroType * >( dst ) ) {
 		cost = Cost::zero;
@@ -487,5 +485,5 @@
 		// assuming 0p is supposed to be used for pointers?
 	} else if ( auto dstAsEnumInst = dynamic_cast< const ast::EnumInstType * >( dst ) ) {
-		if ( dstAsEnumInst->base && !dstAsEnumInst->base->isCfa ) {
+		if ( dstAsEnumInst->base && dstAsEnumInst->base->is_c_enum() ) {
 			cost = Cost::safe;
 		}
@@ -493,6 +491,5 @@
 }
 
-void ConversionCost::postvisit( const ast::OneType * oneType ) {
-	(void)oneType;
+void ConversionCost::postvisit( const ast::OneType * ) {
 	if ( dynamic_cast< const ast::OneType * >( dst ) ) {
 		cost = Cost::zero;
@@ -508,5 +505,5 @@
 		}
 	} else if ( auto dstAsEnumInst = dynamic_cast< const ast::EnumInstType * >( dst ) ) {
-		if ( dstAsEnumInst->base && !dstAsEnumInst->base->isCfa ) {
+		if ( dstAsEnumInst->base && dstAsEnumInst->base->is_c_enum() ) {
 			cost = Cost::safe;
 		}
Index: src/ResolvExpr/ResolveTypeof.cpp
===================================================================
--- src/ResolvExpr/ResolveTypeof.cpp	(revision 2a5345b5c63144cf77ec580fd39acf0ec350f3c3)
+++ src/ResolvExpr/ResolveTypeof.cpp	(revision 90e683bd043dbecee5fc34eec99bc3d53f59d082)
@@ -62,5 +62,5 @@
 			// replace basetypeof(<enum>) by int
 			auto enumInst = newType.as< ast::EnumInstType >();
-			if ( enumInst && (!enumInst->base || !enumInst->base->isCfa) ) {
+			if ( enumInst && (!enumInst->base || enumInst->base->is_c_enum() ) ) {
 				newType = new ast::BasicType(
 					ast::BasicKind::SignedInt, newType->qualifiers, copy(newType->attributes) );
@@ -144,9 +144,9 @@
 
 	auto enumInst = decl->type.as<ast::EnumInstType>();
-	if ( enumInst && enumInst->base->isCfa ) {
+	if ( enumInst && !enumInst->base->is_c_enum() ) {
 		if ( auto init = decl->init.as<ast::SingleInit>() ) {
 			if ( auto initExpr = init->value.as<ast::ConstantExpr>() ) {
 				if ( initExpr->result.as<ast::ZeroType>() ) {
-					auto newInit = new ast::SingleInit( init->location, 
+					auto newInit = new ast::SingleInit( init->location,
 						ast::UntypedExpr::createCall( init->location, "lowerBound", {} )
 					);
