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/DIP60Start on implementation: https://github.com/D-Programming-Language/dmd/pull/3455This 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, attributeinference 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.
