On Tue, 15 Apr 2014 15:47:58 -0400, Walter Bright <newshou...@digitalmars.com> wrote:

On 4/15/2014 12:14 PM, Steven Schveighoffer wrote:
What specifically is prevented? GC.malloc, GC.free, clearly. What about
GC.getAttr? GC.query? These will not invoke collection cycles (the point of @nogc).

All functions not marked as @nogc cannot be called from a @nogc function. GC.malloc(), etc., are functions.

It works very much analogously to nothrow.


right, but at the end of the day, nothrow doesn't allow throw statements. @nogc, so far, just doesn't allow you to call other functions that aren't marked @nogc. There is no primitive that is not allowed (I assume new isn't allowed, but you can access the GC other ways).

These requirements, or assumptions, need to be documented.

-Steve

Reply via email to