A lambda expression can cause overload resolution to run recursively - consider the following case where we havea lambda in method context: m(x->x.size()) Here we have an 'outer' call context, for 'm' - when a suitable overload candidate is found, the lambda needs to be attributed using that candidate's formal as target type - this means that we effectively recursively step into overload resolution (this time for x.size()). Resolve.java should be able to handle nested resolution context.
|