Bug 6328 – Functions using lazy argument cannot be inferred as @safe
Status
RESOLVED
Resolution
DUPLICATE
Severity
enhancement
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2011-07-15T14:08:00Z
Last change time
2011-12-21T19:31:25Z
Assigned to
nobody
Creator
kennytm
Comments
Comment #0 by kennytm — 2011-07-15T14:08:31Z
Test case:
------------------------------------
int f6328a()(lazy int x) {
return x;
}
@safe int f6328b()(lazy int x) { // <-- adding a '@safe' is OK
return x;
}
@safe int g6328() {
return f6328a(1+1); // <-- but it won't be inferred as '@safe'
}
------------------------------------
x.d(8): Error: safe function 'g6328' cannot call system function 'f6328a'
------------------------------------
I'm marking it as 'enhancement' because I don't know if this is intentional to avoid the lazy argument from calling unsafe code.
Comment #1 by k.hara.pg — 2011-12-21T19:31:25Z
*** This issue has been marked as a duplicate of issue 6690 ***