Why do some attributes start with '@' while others done't?

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Thu Jan 21 18:20:52 PST 2016


On Friday, 22 January 2016 at 00:11:02 UTC, Brian Schott wrote:
> I wrote up the details of this idea as a DIP many months ago:
>
> http://wiki.dlang.org/DIP64
>
> It's already implemented in dfix. You can run "dfix --dip64 
> file.d" and the changes will be made automatically.

The problem with DIP64 isn't that it breaks the code but that it 
doesn't propose any meaningful system as a replacement. "Keywords 
that are only attributes (i.e. they are not also storage classes 
or type constructors)" doesn't sound as straightforward to me 
considering https://dlang.org/spec/declaration.html#StorageClass 
lists @-properties as storage classes and there isn't any other 
list in spec I could find. There isn't even any strict definition 
of "storage class" and "type qualifier / type constructor" in 
language spec that could explain existing classification. For 
example, I'd definitely place something like `@safe` in type 
constructors but it seems to be considered a storage class.

That was the reason why I was insisting on reverting last attempt 
to change @ requirements in dmd - breaking the code can be ok, 
but not having a clear explanation of new design (and still 
breaking the code) is not ok at all.


More information about the Digitalmars-d mailing list