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.c...@nowhere.fi