Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision 946bcca6a3c077ba095be8710e19a6c1c7d5f7a4)
+++ src/ResolvExpr/Resolver.cc	(revision 6013bd75b2059dd159f97c81e5c0ca86a9110fdf)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 12:17:01 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Tue Jul 12 17:45:42 2016
-// Update Count     : 204
+// Last Modified On : Thu Mar 23 17:23:14 2017
+// Update Count     : 211
 //
 
@@ -371,22 +371,33 @@
 	void Resolver::visit( SingleInit *singleInit ) {
 		if ( singleInit->get_value() ) {
-#if 0
-			if (NameExpr * ne = dynamic_cast<NameExpr*>(singleInit->get_value())) {
-				string n = ne->get_name();
-				if (n == "0") {
-					initContext = new BasicType(Type::Qualifiers(),
-												BasicType::SignedInt);
-				} else {
-					DeclarationWithType * decl = lookupId( n );
-					initContext = decl->get_type();
-				}
-			} else if (ConstantExpr * e =
-					   dynamic_cast<ConstantExpr*>(singleInit->get_value())) {
-				Constant *c = e->get_constant();
-				initContext = c->get_type();
-			} else {
-				assert(0);
-			}
-#endif
+			// // find all the d's
+			// std::list<Expression *> &designators = singleInit->get_designators();
+			// std::list<Type *> types1{ initContext }, types2;
+			// for ( Expression * expr: designators ) {
+			// 	cerr << expr << endl;
+			// 	if ( NameExpr * nexpr = dynamic_cast<NameExpr *>( expr ) ) {
+			// 		for ( Type * type: types1 ) {
+			// 			cerr << type << endl;
+			// 			ReferenceToType * fred = dynamic_cast<ReferenceToType *>(type);
+			// 			std::list<Declaration *> members;
+			// 			if ( fred ) {
+			// 				fred->lookup( nexpr->get_name(), members ); // concatenate identical field name
+			// 				for ( Declaration * mem: members ) {
+			// 					if ( DeclarationWithType * dwt = dynamic_cast<DeclarationWithType *>(mem) ) {
+			// 						types2.push_back( dwt->get_type() );
+			// 					} // if
+			// 				} // for
+			// 			} // if
+			// 		} // for
+			// 		types1 = types2;
+			// 		types2.clear();
+			// 	} // if
+			// } // for
+			// // for ( Type * type: types1 ) {
+			// // 	cerr << type << endl;
+			// // } // for
+			
+			// // O(N^2) checks of d-types with f-types
+			// // find the minimum cost
 			CastExpr *castExpr = new CastExpr( singleInit->get_value(), initContext->clone() );
 			Expression *newExpr = findSingleExpression( castExpr, *this );
@@ -410,5 +421,4 @@
 			}
 		} // if
-//	singleInit->get_value()->accept( *this );
 	}
 
