#2172 made the members of every type a project function type takes as a
receiver reachable from any bare call, since it could not tell which
lambda a call is in. With several such types in reach, proximity chose:
koin's `single { C51(get(), get()) }` and `Scope.new(...)`'s `get()` went to
`Koin.get` (koin also has `Koin.() -> ...` lambdas), 2,190 times.
- A lambda's receiver is read from the function it is passed to: the type
before `.(` in its last parameter's function type, directly or through a
typealias (`definition: Definition<T>`, `typealias Definition<T> =
Scope.(ParametersHolder) -> T`), when every project function of that name
agrees. The brace frames put it in the lambda's hierarchy.
- Of the members a bare call can reach, those its lexical hierarchy reaches -
its class, an extension's receiver, the lambda it is in - come before those
only the project-wide receiver set reaches.
koin: `get()` -> Scope (2,184), `viewModel` in `scope { }` -> ScopeDSL,
`modules(...)` in `startKoin { }` -> KoinApplication. Exposed: `varchar(...)`,
`integer`, `reference`, `datetime` in a table object -> Table's (were a
test table's same-named property). kotlinx.coroutines: `launch { }` ->
CoroutineScope.launch (was a test DSL's). Edge counts ~unchanged (targets
move): koin, Exposed, okhttp, coroutines, okio; nowinandroid, moshi
unchanged.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>