On Thursday, 17 April 2014 at 10:38:54 UTC, Artur Skawina via
Digitalmars-d wrote:
On 04/17/14 11:33, Rikki Cattermole via Digitalmars-d wrote:
On Thursday, 17 April 2014 at 09:22:55 UTC, Dejan Lekic wrote:
On Tuesday, 15 April 2014 at 17:01:38 UTC, Walter Bright wrote:
http://wiki.dlang.org/DIP60

Start on implementation:

https://github.com/D-Programming-Language/dmd/pull/3455

This is a good start, but I am sure I am not the only person who thought "maybe we should have this on a module level". This would allow people to nicely group pieces of the application that should not use GC.

Sure it does.

module mymodule;
@nogc:

     void myfunc(){}

     class MyClass {
         void mymethod() {}
     }


Everything in above code has @nogc applied to it.
Nothing special about it, can do it for most attributes like
static, final and UDA's.

It does not work like that. User defined attributes only apply to the current scope, ie your MyClass.mymethod() would *not* have the attribute. With built-in attributes it becomes more "interesting" - for example '@safe' will include child scopes, but 'nothrow" won't.

Yes, the current attribute situation in D is a mess. No, attribute
inference isn't the answer.

artur

Good point yes, in the case of a class/struct its methods won't
have it applied to them.
No idea post manually adding it to start of those declarations
can be done. Either that or we need language changes.

@nogc
module mymodule;

@("something")
module mymodule;

Well it is a possible option for improvement. Either way, I'm not gonna advocate this.

Reply via email to