6437a4bdc6
Resolve callable references taking into account expected callable types. This affects call resolution procedure (resolve 'foo' in for 'foo(::bar)') similar to the approach used for function literals: * During "shape arguments" phase of call resolution, callable references are resolved in independent context without expected type. If the callable reference is ambiguous, its shape type is a function placeholder type without parameter types and return type information. Otherwise, it is a reflection type for the resolved function or property. Upper-level call is resolved without taking into account ambiguous callable references. * During "complete call" phase of call resolution, resolve callable reference arguments to actual descriptors (if possible), and update constraint system for the given call accordingly. #KT-6982 Fixed #KT-5780 Fixed
9 lines
285 B
Plaintext
Vendored
9 lines
285 B
Plaintext
Vendored
package
|
|
|
|
internal val x1: () -> kotlin.Unit
|
|
internal val x2: kotlin.Int
|
|
internal fun bar(/*0*/ f: () -> kotlin.Unit): kotlin.Int
|
|
internal fun bar(/*0*/ f: (kotlin.String) -> kotlin.Unit): kotlin.Int
|
|
internal fun foo(): kotlin.Unit
|
|
internal fun foo(/*0*/ s: kotlin.String): kotlin.Unit
|