diff dmd/StructInitializer.d @ 135:af1bebfd96a4 dmd2037

dmd 2.038
author Eldar Insafutdinov <e.insafutdinov@gmail.com>
date Mon, 13 Sep 2010 22:19:42 +0100
parents 60bb0fe4563e
children e3afd1303184
line wrap: on
line diff
--- a/dmd/StructInitializer.d	Sat Sep 11 13:03:39 2010 +0100
+++ b/dmd/StructInitializer.d	Mon Sep 13 22:19:42 2010 +0100
@@ -78,7 +78,6 @@
 	
     override Initializer semantic(Scope sc, Type t)
 	{
-		TypeStruct ts;
 		int errors = 0;
 
 		//printf("StructInitializer.semantic(t = %s) %s\n", t.toChars(), toChars());
@@ -86,12 +85,14 @@
 		t = t.toBasetype();
 		if (t.ty == Tstruct)
 		{	
-			uint i;
 			uint fieldi = 0;
 
-			ts = cast(TypeStruct)t;
+			auto ts = cast(TypeStruct)t;
 			ad = ts.sym;
-			for (i = 0; i < field.dim; i++)
+	        if (ad.ctor)
+	            error("%s %s has constructors, cannot use { initializers }, use %s( initializers ) instead",
+		        ad.kind(), ad.toChars(), ad.toChars());
+			for (size_t i = 0; i < field.dim; i++)
 			{
 				Identifier id = field[i];
 				Initializer val = value[i];