On Fri, 05 Jun 2015 16:42:25 +0000, Mafi wrote: > On Friday, 5 June 2015 at 16:26:34 UTC, ketmar wrote: >> On Fri, 05 Jun 2015 15:17:50 +0000, Mafi wrote: >> >>> auto int x = 10; >>> >>> should work. It's just consistent. >> >> then `auto auto` should work too. it's a "declaration mark" + >> "storage class". > > Well, no. Any storage class marks a declaration just by itself. You > don't use it as a "declaration mark" or "storage class", just use a > storage class which definitely declares something new. See also > http://dlang.org/declaration.html > > A declaration is either <StorageClasses(opt) BasicType Declarators> or > <AutoDeclaration>. An AutoDeclaration is the one with type inference. > And it is marked by any storage class, not just auto > (http://dlang.org/declaration.html#AutoDeclaration): <StorageClasses > AutoDeclarationX>. Well admittently > http://dlang.org/declaration.html#StorageClass does not feature 'auto' > as a storage class but this must be an error because the description of > AutoDeclaration uses 'auto' in the place of StorageClasses. > > It is just about grammar. A declaration needs a type, a storage class or > both to not be mistaken for a statement with an assign expression. You > use the 'auto' storage class so the statement cannot possibly be an > expression when leaving out the type and not using any meaningful > storage class.
`const int` works, so i can't see why `auto auto` is failing.
signature.asc
Description: PGP signature