Index: src/ResolvExpr/ConversionCost.cc
===================================================================
--- src/ResolvExpr/ConversionCost.cc	(revision 15806ed4125985b4bd7172dc59af8da70529cd89)
+++ src/ResolvExpr/ConversionCost.cc	(revision 1d179399a54c3ddcecf129adeec6303b1492ddac)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 07:06:19 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Mon Aug 12 10:21:00 2019
-// Update Count     : 27
+// Last Modified On : Wed Jul 29 16:11:00 2020
+// Update Count     : 28
 //
 
@@ -392,20 +392,4 @@
 	void ConversionCost::postvisit( const FunctionType * ) {}
 
-	void ConversionCost::postvisit( const StructInstType * inst ) {
-		if ( const StructInstType * destAsInst = dynamic_cast< const StructInstType * >( dest ) ) {
-			if ( inst->name == destAsInst->name ) {
-				cost = Cost::zero;
-			} // if
-		} // if
-	}
-
-	void ConversionCost::postvisit( const UnionInstType * inst ) {
-		if ( const UnionInstType * destAsInst = dynamic_cast< const UnionInstType * >( dest ) ) {
-			if ( inst->name == destAsInst->name ) {
-				cost = Cost::zero;
-			} // if
-		} // if
-	}
-
 	void ConversionCost::postvisit( const EnumInstType * ) {
 		static Type::Qualifiers q;
@@ -681,22 +665,4 @@
 }
 
-void ConversionCost_new::postvisit( const ast::StructInstType * structInstType ) {
-	if ( const ast::StructInstType * dstAsInst =
-			dynamic_cast< const ast::StructInstType * >( dst ) ) {
-		if ( structInstType->name == dstAsInst->name ) {
-			cost = Cost::zero;
-		}
-	}
-}
-
-void ConversionCost_new::postvisit( const ast::UnionInstType * unionInstType ) {
-	if ( const ast::UnionInstType * dstAsInst =
-			dynamic_cast< const ast::UnionInstType * >( dst ) ) {
-		if ( unionInstType->name == dstAsInst->name ) {
-			cost = Cost::zero;
-		}
-	}
-}
-
 void ConversionCost_new::postvisit( const ast::EnumInstType * enumInstType ) {
 	(void)enumInstType;
Index: src/ResolvExpr/ConversionCost.h
===================================================================
--- src/ResolvExpr/ConversionCost.h	(revision 15806ed4125985b4bd7172dc59af8da70529cd89)
+++ src/ResolvExpr/ConversionCost.h	(revision 1d179399a54c3ddcecf129adeec6303b1492ddac)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 09:37:28 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Thu Aug  8 16:13:00 2019
-// Update Count     : 6
+// Last Modified On : Wed Jul 29 16:12:00 2020
+// Update Count     : 7
 //
 
@@ -51,6 +51,4 @@
 		void postvisit( const ReferenceType * refType );
 		void postvisit( const FunctionType * functionType );
-		void postvisit( const StructInstType * aggregateUseType );
-		void postvisit( const UnionInstType * aggregateUseType );
 		void postvisit( const EnumInstType * aggregateUseType );
 		void postvisit( const TraitInstType * aggregateUseType );
@@ -102,6 +100,4 @@
 	void postvisit( const ast::ReferenceType * refType );
 	void postvisit( const ast::FunctionType * functionType );
-	void postvisit( const ast::StructInstType * structInstType );
-	void postvisit( const ast::UnionInstType * unionInstType );
 	void postvisit( const ast::EnumInstType * enumInstType );
 	void postvisit( const ast::TraitInstType * traitInstType );
Index: tests/.expect/castError.txt
===================================================================
--- tests/.expect/castError.txt	(revision 15806ed4125985b4bd7172dc59af8da70529cd89)
+++ tests/.expect/castError.txt	(revision 1d179399a54c3ddcecf129adeec6303b1492ddac)
@@ -1,3 +1,3 @@
-castError.cfa:21:1 error: Cannot choose between 3 alternatives for expression
+castError.cfa:23:1 error: Cannot choose between 3 alternatives for expression
 Explicit Cast of:
   Name: f
@@ -35,5 +35,5 @@
 
 
-castError.cfa:26:1 error: Cannot choose between 2 alternatives for expression
+castError.cfa:28:1 error: Cannot choose between 2 alternatives for expression
 Generated Cast of:
   Comma Expression:
@@ -62,2 +62,9 @@
 
 
+castError.cfa:30:1 error: No reasonable alternatives for expression Explicit Cast of:
+  Name: sint
+... to:
+  instance of struct S with body 1
+  ... with parameters
+    char
+
Index: tests/castError.cfa
===================================================================
--- tests/castError.cfa	(revision 15806ed4125985b4bd7172dc59af8da70529cd89)
+++ tests/castError.cfa	(revision 1d179399a54c3ddcecf129adeec6303b1492ddac)
@@ -14,5 +14,7 @@
 // 
 
+forall(otype T) struct S { T p; };
 int f;
+S(int) sint;
 
 void f() {
@@ -25,4 +27,6 @@
 	short int v;
 	3, v;		// implicit void cast
+
+	(S(char)) sint;
 }
 
