Hi again
> On 1 Feb 2018, at 13.48, Jochen Theodorou <[email protected]> wrote:
>
> [...]
>> For static compilation, r1() and r2() should work IMHO, and r3() should be
>> rejected. This shouldn't surprise anyone, I think.
>
> you mean because the m has a return value and r3() is void? That is currently
> passing compilation and the result will be null. This covers with the dynamic
> version.
>
No, I mean because r3 (statically) is a java.lang.Object, and Object has no
call() method and is not a SAM:
> you surely did mean:
>
>>> def n(Runnable q1, Predicate<String> q2, Q q2, q3) {
>>> q1()
>>> q2()
>>> q3() >> q4()
>>> }
>>> m(new Q(), new Q(), new Q(), new Q())
>
> I expect this to work then too ;)
Yeah, the mail wasn't complete. I've fixed the example, re-sent the mail, and
suggested (IMHO) non-surprising semantics.
-Jesper