On 9/27/14, 7:42 PM, Manu via Digitalmars-d wrote:
void f() pure nothrow @nogc
{
    void localFunc()
    {
    }

    localFunc();
}

Complains because localFunc is not @nogc or nothrow.
Doesn't complain about pure though.

Is it reasonable to say that the scope of the outer function is
nothrow+@nogc, and therefore everything declared within should also be
so?

Interesting. I'd guess probably not, e.g. a function may define a static local function and return its address (without either throwing or creating garbage), whereas that local function itself may do whatever it pleases.

However, local functions have their body available by definition so they should have all deducible attributes deducted. That should take care of the problem.


Andrei

P.S. I also notice that my latest attempt at establishing communication has remained ignored.

Reply via email to