On Wednesday, 16 July 2014 at 15:12:58 UTC, Pavel wrote:
Hi! I've been experimenting with D functions, and found this
piece of code:
//
int abc(int delegate(long i));
int def(int function(long s));
void test() {
int b = 3;
abc( (long c) { return 6 + b; } ); // inferred to delegate
def( (long c) { return c * 2; } ); // inferred to function
}
//
On linux machine with [DMD64 D Compiler v2.065] it doesn't
compile, giving me this error:
test.d(10): Error: function test.def (int function(long s)) is
not callable using argument types (long function(long c) pure
nothrow @safe)
Here DMD infers (long c) { return c * 2; } as long
function(long c).
And "def" definition doesn't match.
Is that an error in the docs, or mayber I'm doing something
wrong?
Link to the doc is: http://dlang.org/expression#FunctionLiteral