On Wednesday, 21 July 2021 at 20:46:01 UTC, Paul Backus wrote:
>Here's my take.
D's attributes can be divided, conceptually, into a few different "groups" of related attributes. Some examples are:
(...)
- The Function Attribute Group:
pure
,nothrow
,@nogc
,@safe
,@system
,@trusted
,@property
, and@live
.
...and so on.
The rule I propose is that within a single group, use of @
should be consistent--either all of the attributes should use it, or none of them should.
Of course this invites some debate as to where exactly one ought to draw the group boundaries (e.g., should @property
be counted as part of the function attribute group, or is it a separate thing?). But it is at least a step forward from the current discussion, which does not even acknowledge that these groups exist in the first place.
I like this approach.
Consider the idea internally consistent groups acknowledged.
For the current DIP to go anywhere, we'd probably need to agree/converge on how to divide all attributes into a reasonable set of groups?
Once we have that, we can then discuss inter-group consistency and propose the relevant changes.
What other group distinctions would make sense (if any)?