-
Type:
Sub-task
-
Resolution: Fixed
-
Priority:
P2
-
Affects Version/s: 8
-
Component/s: tools
-
b30
-
unknown
-
generic
-
Verified
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.
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.