DIP64: Attribute Cleanup

Anonymous5 via Digitalmars-d digitalmars-d at puremagic.com
Sun Apr 17 05:05:03 PDT 2016


On Friday, 20 June 2014 at 19:22:04 UTC, Brian Schott wrote:
> http://wiki.dlang.org/DIP64
>
> Attributes in D have two problems:
> 1. There are too many of them and declarations are getting too 
> verbose
> 2. New attributes use @ and the old ones do not.
>
> I've created a DIP to address these issues.

@exhumation

So, two years after ?
If attributes are well split into sub categories, we could 
justify that a sub category will have @ and another not (e.g 
protection attributes: not @, functions attributes: @).

The list of attributes that's not classified is:

+ static
  extern
+ abstract
+ final
+ override
+ synchronized
+ auto
  scope
+ const
+ immutable
  inout
+ shared
  __gshared
+ nothrow
+ pure
  ref

possible categories:
- function attributes: nothrow, pure
- function member attributes: function attributes + abstract, 
final, override, static, synchronized , const , shared
- type modifier attributes (+ return type attributes)

function attributes and function member attributes can be 
replaced by a @ version.
function attributes that are also type attributes will also have 
a new @version but obsiously the not-@ version will always remain 
for <attribute>(T).

type modifier attributes won't have a @version because otherwise 
the goal of DIP is not reach (fix inconsistence for const for 
example which can have up to 3 different meaning now).

This would reduce "the hell" a bit.

---
rb.cssp at nowhere.fi


More information about the Digitalmars-d mailing list