Index: src/ResolvExpr/CurrentObject.cc
===================================================================
--- src/ResolvExpr/CurrentObject.cc	(revision 2d373440faae9908ed04cd99e5f056ec1bf18937)
+++ src/ResolvExpr/CurrentObject.cc	(revision da5ac2ef4386a3403a0fd7fa1e80a09952f63688)
@@ -498,9 +498,11 @@
 		PRINT( std::cerr << "____untyped: " << expr << std::endl; )
 		auto dit = desigAlts.begin();
+		auto nexpr = dynamic_cast< const NameExpr * >( expr );
 
 		for ( const Type * t : curTypes ) {
 			assert( dit != desigAlts.end() );
 			DesignatorChain & d = *dit;
-			if ( auto nexpr = dynamic_cast< const NameExpr *>( expr ) ) {
+			// Name Designation:
+			if ( nexpr ) {
 				PRINT( std::cerr << "____actual: " << t << std::endl; )
 				if ( auto refType = dynamic_cast< const BaseInstType * >( t ) ) {
@@ -515,17 +517,8 @@
 						}
 					}
-				} else if ( auto at = dynamic_cast< const ArrayType * >( t ) ) {
-					auto nexpr = dynamic_cast< const NameExpr *>( expr );
-					for ( const Decl * mem : refType->lookup( nexpr->name ) ) {
-						if ( auto field = dynamic_cast< const ObjectDecl * >( mem ) ) {
-							DesignatorChain d2 = d;
-							d2.emplace_back( new VariableExpr{ expr->location, field } );
-							newDesigAlts.emplace_back( std::move( d2 ) );
-							newTypes.emplace_back( at->base );
-						}
-					}
 				}
 
 				++dit;
+			// Index Designation:
 			} else {
 				if ( auto at = dynamic_cast< const ArrayType * >( t ) ) {
