[Issue 17486] lazy parameters cannot be used in nothrow/@nogc functions

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Fri Jun 9 12:44:40 PDT 2017


https://issues.dlang.org/show_bug.cgi?id=17486

--- Comment #2 from Eyal <eyal at weka.io> ---
Better bug reproduction:

@safe:

void f(ref int counter, lazy int x) pure {
    x();
    counter++;
    x();
}

void main() {
    int counter;
    int g() {
        import std.stdio:writeln;
        writeln("counter: ", counter);
        return 5;
    }
    f(counter, g);
}

// prints:
counter: 0
counter: 1

Making it clearer that we're being allowed to pass an impure delegate into a
pure function that then calls it.

--


More information about the Digitalmars-d-bugs mailing list