On Wednesday, 9 October 2013 at 18:44:16 UTC, dennis luehring wrote:
Am 09.10.2013 16:11, schrieb Dicebot:
On Wednesday, 9 October 2013 at 13:57:03 UTC, Sean Kelly wrote:
They aren't opt-out for really any reasonable project though,
because code is reused and those people may want at least the
standard attributes to be set. Personally, the array of
attributes that can be applied to a D function is one of my
biggest pet peeves with the language. It gains me nothing
personally, and adds a lot of extra thought to the process of
writing a function.

This is exactly what I was speaking about. It would have been
much more easy if stuff was `pure @safe immutable nothrow` by
default and one added `dirty @system mutable throw` on per-need
basis after getting compiler error. But that is too late to
change and this attribute inference may be only reasonable option.


i wouldn't say that - lets talk about D3 or even D4 - with breaking changes or else the language development will come to a full stop in a few months/years, if something is totaly wrong it needs to be addressed and changed, developers will follow

Would it be possible to specify at the file level (or for a section of the file) a set of default attributes, and then override those for individual functions if need be? I am not sure what the syntax would look like, but say it would be:

attributes @safe pure nothrow

Then every function has these attributes, unless otherwise specified. You could even possibly use more than once to divide up you code into sections with common attributes.

attributes @safe pure nothrow

//Everything defined here is @safe pure nothrow

attributes @system

//Everything defined below this invocation is @system by default
//and so forth

Reply via email to