fun <T> foo(f: (T) -> String) {}

fun test() {
    <caret>foo { x -> "$x"}
}


Resolved call:

Candidate descriptor: fun <T> foo(f: (T) -> String): Unit defined in root package
Resulting descriptor: fun <T> foo(f: (???) -> String): Unit defined in root package

Explicit receiver kind = NO_EXPLICIT_RECEIVER
Dispatch receiver = NO_RECEIVER
Extension receiver = NO_RECEIVER

Value arguments mapping:

MATCH_MODULO_UNINFERRED_TYPES  f : (???) -> String = { x -> "$x"}
