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