diff dmd/TemplateMixin.d @ 96:acd69f84627e

further work
author Trass3r
date Tue, 31 Aug 2010 02:12:15 +0200
parents 37b95c347975
children 3482c73a991b
line wrap: on
line diff
--- a/dmd/TemplateMixin.d	Mon Aug 30 23:08:44 2010 +0200
+++ b/dmd/TemplateMixin.d	Tue Aug 31 02:12:15 2010 +0200
@@ -70,15 +70,20 @@
 			printf("+TemplateMixin.semantic('%s', this=%p)\n", toChars(), this);
 			fflush(stdout);
 		}
-		if (semanticRun &&
-				// This for when a class/struct contains mixin members, and
-				// is done over because of forward references
-				(!parent || !toParent().isAggregateDeclaration()))
+		if (semanticRun)
 		{
-			version (LOG) {
-				printf("\tsemantic done\n");
+			// This for when a class/struct contains mixin members, and
+			// is done over because of forward references
+			if (parent && toParent().isAggregateDeclaration())
+				semanticRun = 1;		// do over
+			else
+			{
+version (LOG)
+{
+				writef("\tsemantic done\n");
+}
+				return;
 			}
-			return;
 		}
 		if (!semanticRun)
 			semanticRun = 1;