On 01/30/2013 12:10 PM, bearophile wrote:
Currently you are allowed to write a lambda literal as in line 3, but
you can't omit "ref" as in line 4:
void foo(int delegate(ref int[1]) spam) {}
void main() {
foo((ref x) => 0); // line3, OK
foo(x => 0); // line4, Error
}
Do you think "ref" annotation should be required at the call site?
This is the Bugzilla thread. Hara has already implemented the "ref"
inference, but he's not sure if it's a good idea:
http://d.puremagic.com/issues/show_bug.cgi?id=9423
Bye,
bearophile
I think the current behaviour is ok, but I do not really care.
BTW, the pull does not contain a test for the case
void foo(int delegate(int) dg){ ... } // 1
void foo(int delegate(ref int) dg){ ... } // 2
void main(){ foo(x=>0); } // call 1