On Friday, 18 August 2017 at 23:48:05 UTC, Nicholas Wilson wrote:

The only breaking changes are nothrow and pure get a leading '@'. They will go through a proper deprecation process and I will be very surprised if anything breaks. The new symbols added to core.attributes can use `@future` if need be to further reduce the likelihood of any breaking changes.

While the difference in attribute style(@, or no @) isn't that hard to deal with in practice, I am definitely in favor of a more consistent scheme. The current inconsistency looks bad, and IMO, that's a big deal. It makes D look tacky, and easy to dismiss.

How would you know what attributes were in effect before?

It wouldn't matter if your intention was to clobber them anyways with @default. And if you only wanted to clobber @nogc, you could use @nogc(false), and it still wouldn't matter what the inferred attribute set was.


I'm still concerned about having to read code that's laced full of custom attributes, the resolution of which may span several files, templates, etc.

I also think this type of thing could have a detrimental effect on modularity when you end up having to include "myAttribs.d" in every single file you want to work on. I would much rather have a flexible in-language solution, or a solution that didn't require me to define my own attributes.

Reply via email to