Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision d8e2a09543f35ee50941fc5ef2b7d98498ebe3b7)
+++ src/ResolvExpr/Resolver.cc	(revision 5bb1ac108d66b3bbf5b72ee26e4034dc1e0a9a18)
@@ -1478,23 +1478,29 @@
 
 			if (dynamic_cast< const ast::EnumInstType * >( objectDecl->get_type() )->base->base) { // const ast::PointerType &
+				// const ast::Type * enumBase =  (dynamic_cast< const ast::EnumInstType * >( objectDecl->get_type() )->base->base.get());
+				// const ast::PointerType * enumBaseAsPtr = dynamic_cast<const ast::PointerType *>(enumBase);
+
+				// if ( enumBaseAsPtr ) {
+				// 	const ast::Type * pointerBase = enumBaseAsPtr->base.get();
+				// 	if ( dynamic_cast<const ast::BasicType *>(pointerBase) ) {
+				// 		objectDecl = fixObjectType(objectDecl, context);
+				// 		if (dynamic_cast<const ast::BasicType *>(pointerBase)->kind == ast::BasicType::Char)
+				// 		currentObject = ast::CurrentObject{
+				// 	 		objectDecl->location,  new ast::PointerType{ 
+				// 			 	new ast::BasicType{ ast::BasicType::Char }
+				// 			} };
+				// 	} else {
+				// 		objectDecl = fixObjectType(objectDecl, context);
+				// 		currentObject = ast::CurrentObject{objectDecl->location, new ast::BasicType{ ast::BasicType::SignedInt } };
+				// 	}
+				// }
+				objectDecl = fixObjectType( objectDecl, context );
 				const ast::Type * enumBase =  (dynamic_cast< const ast::EnumInstType * >( objectDecl->get_type() )->base->base.get());
-				const ast::PointerType * enumBaseAsPtr = dynamic_cast<const ast::PointerType *>(enumBase);
-
-				if ( enumBaseAsPtr ) {
-					const ast::Type * pointerBase = enumBaseAsPtr->base.get();
-					if ( dynamic_cast<const ast::BasicType *>(pointerBase) ) {
-						objectDecl = fixObjectType(objectDecl, context);
-						if (dynamic_cast<const ast::BasicType *>(pointerBase)->kind == ast::BasicType::Char)
-						currentObject = ast::CurrentObject{
-					 		objectDecl->location,  new ast::PointerType{ 
-							 	new ast::BasicType{ ast::BasicType::Char }
-							} };
-					} else {
-						objectDecl = fixObjectType(objectDecl, context);
-						currentObject = ast::CurrentObject{objectDecl->location, new ast::BasicType{ ast::BasicType::SignedInt } };
-					}
-				}
+				currentObject = ast::CurrentObject{ 
+					objectDecl->location, 
+					enumBase
+				};
 			} else {
-				objectDecl = fixObjectType(objectDecl, context);
+				objectDecl = fixObjectType( objectDecl, context );
 				currentObject = ast::CurrentObject{
 					objectDecl->location, new ast::BasicType{ ast::BasicType::SignedInt } };
