4. The system as recited in claim 1 , wherein the expression whose type is context-dependent comprises a method reference.
1. A system, comprising: one or more computing devices comprising one or more hardware processors, wherein the one or more computing devices are configured to: determine, for an overloaded operation invocation identified in source code of a computer program, whether the source code includes, as an argument to the invocation, an expression whose type is context-dependent; and in response to a determination that the source code includes, as an argument to the invocation, an expression whose type is context-dependent, determine, at an overload resolver to which the expression is provided as input, (a) whether each argument of the invocation, including the expression, is compatible with a type of a corresponding parameter indicated in one or more invocable operation declarations identified from the source code, and (b) whether a particular invocable operation declaration of the one or more Invocable operation declarations is identifiable as the most specific invocable operation declaration for the invocation based at least in part on one or more specificity criteria; in response to a determination that (a) each argument of the invocation is compatible with a type of a corresponding parameter indicated in one or more invocable operation declarations in the source code, and (b) a particular invocable operation declaration of the one or more invocable operation declarations is identifiable as the most specific invocable operation declaration for the invocation, generate executable instructions for the invocation in accordance with the particular invocable operation declaration; and in response to a determination that none of the plurality of invocable operation declarations is identifiable as the most specific invocable operation declaration for the invocation, generate an error indication; wherein the error is generated even though each argument of the invocation is compatible with a type of a corresponding parameter indicated in a plurality of invocable operation declarations in the source code.