Index: src/Parser/TypeData.cpp
===================================================================
--- src/Parser/TypeData.cpp	(revision 0f612d22e304288d5575379f38cb245443b974b8)
+++ src/Parser/TypeData.cpp	(revision 85855b0f02c6f17de398969fbe7ab4810d76737a)
@@ -1465,11 +1465,11 @@
 	ret->hide = td->aggregate.hiding == EnumHiding::Hide ? ast::EnumDecl::EnumHiding::Hide : ast::EnumDecl::EnumHiding::Visible;
 	for ( const DeclarationNode * cur = td->aggregate.fields ; cur != nullptr ; cur = cur->next, ++members ) {
-		if ( cur->enumInLine ) {
-			// Do Nothing
-		} else if ( ret->isTyped && !ret->base && cur->has_enumeratorValue() ) {
+		if (cur->enumInLine) continue;
+		ast::Decl * member = members->get_and_mutate();
+		ast::ObjectDecl * object = strict_dynamic_cast<ast::ObjectDecl *>( member );
+		object->isHidden = ast::EnumDecl::EnumHiding::Hide == ret->hide;
+		if ( ret->isTyped && !ret->base && cur->has_enumeratorValue() ) {
 			SemanticError( td->location, "Enumerator of enum(void) cannot have an explicit initializer value." );
 		} else if ( cur->has_enumeratorValue() ) {
-			ast::Decl * member = members->get_and_mutate();
-			ast::ObjectDecl * object = strict_dynamic_cast<ast::ObjectDecl *>( member );
 			object->init = new ast::SingleInit(
 				td->location,
@@ -1477,9 +1477,5 @@
 				ast::NoConstruct
 			);
-		} else if ( !cur->initializer ) {
-			if ( baseType && (!dynamic_cast<ast::BasicType *>(baseType) || !dynamic_cast<ast::BasicType *>(baseType)->isInteger())) {
-				SemanticError( td->location, "Enumerators of an non-integer typed enum must be explicitly initialized." );
-			}
-		}
+		} 
 		// else cur is a List Initializer and has been set as init in buildList()
 		// if
Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 0f612d22e304288d5575379f38cb245443b974b8)
+++ src/Parser/parser.yy	(revision 85855b0f02c6f17de398969fbe7ab4810d76737a)
@@ -2827,6 +2827,6 @@
 	| enumerator_list ',' visible_hide_opt identifier_or_type_name enumerator_value_opt
 		{ $$ = $1->set_last( DeclarationNode::newEnumValueGeneric( $4, $5 ) ); }
-	| enumerator_list ',' INLINE type_name enumerator_value_opt
-		{ $$ = $1->set_last( DeclarationNode::newEnumValueGeneric( new string("inline"), nullptr ) ); }
+	| enumerator_list ',' INLINE type_name
+		{ $$ = $1->set_last( DeclarationNode::newEnumInLine( $4->symbolic.name )  ); }
 	;
 
