I don't know if this is a bug, an enhancement request, or just a mistake of mine. I don't understand why currently @nogc refuses this code:

import std.algorithm: filter;
struct Foo {
    bool bar(in int) @nogc {
        return true;
    }
    auto spam() @nogc {
        immutable static data = [1, 2];
        //return data.filter!bar;         // Not allowed?
        return data.filter!(i => bar(i)); // Error
    }
}
void main() {}


dmd 2.066alpha gives:

test.d(6,10): Error: function test1.Foo.spam @nogc function allocates a closure with the GC

Is this a bug/ER worth reporting?

Bye,
bearophile

Reply via email to