transparent lambda

Neal Gafter neal at
Wed Dec 30 13:08:45 PST 2009

On Wed, Dec 30, 2009 at 1:00 PM, Peter Levart <peter.levart at> wrote:
> How is 'invocation of a method' defined? What would happen if method
> four was invoked multiple times from a loop:

for (int i=0; i<2; i++)
> four();

Would it this also throw unmatched transfer?

Regards, Peter

The "invocation of a method" is the execution of a Method Invocation
Expression (JLS 15.12).  Technically, we should include constructor
invocations as well (JLS 15.9), since you can return from those as

The second and all subsequent invocations of method two() throw the
unmatched transfer exception.  Since method four() calls it twice,
method four() would always throw that exception.

Remember, this is only in a hypothetical closures specification in
which statement closures are transparent.


More information about the closures-dev mailing list