diff dmd/class.c @ 1530:05c235309d6f

Make the auto storage class never have the same meaning as scope. This changes the meaning of auto class MyClass {} and auto MyClass ident; Both have been made an error to prevent accidents.
author Christian Kamm <kamm incasoftware de>
date Sun, 12 Jul 2009 16:15:21 +0200
parents 8026319762be
children def7a1d494fd
line wrap: on
line diff
--- a/dmd/class.c	Fri Jul 10 21:30:02 2009 +0200
+++ b/dmd/class.c	Sun Jul 12 16:15:21 2009 +0200
@@ -184,7 +184,7 @@
     }
 
     com = 0;
-    isauto = 0;
+    isscope = 0;
     isabstract = 0;
     isnested = 0;
     vthis = NULL;
@@ -447,7 +447,7 @@
 
 	// Inherit properties from base class
 	com = baseClass->isCOMclass();
-	isauto = baseClass->isauto;
+	isscope = baseClass->isscope;
 	vthis = baseClass->vthis;
     }
     else
@@ -529,8 +529,10 @@
 	}
     }
 
-    if (storage_class & (STCauto | STCscope))
-	isauto = 1;
+    if (storage_class & STCauto)
+	error("storage class has no effect: auto");
+    if (storage_class & STCscope)
+	isscope = 1;
     if (storage_class & STCabstract)
 	isabstract = 1;