Mercurial > projects > ldc
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;