Nick
09/12/2023, 4:30 AMDetails: Internal error in body lowering: java.lang.IllegalStateException: No dispatch receiver parameter for FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit
at org.jetbrains.kotlin.backend.common.lower.LocalDeclarationsLowering$LocalClassMemberContext.irGet(LocalDeclarationsLowering.kt:246)
...
Caused by: java.lang.IllegalStateException: No dispatch receiver parameter for FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit
... 147 more
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
interface Context<T> {
fun completed(result: T)
}
interface Api {
suspend operator fun <T> invoke(contents: Context<T>.() -> Unit): T
}
open class Block
fun doSomething(lambda: () -> Unit) {}
class CompilerBug(api: Api, appScope: CoroutineScope) {
init {
// works when run not used
run {
appScope.launch {
api<Boolean> {
// works when apply bock used
Block().apply {
doSomething { completed(true) }
}
// fails with run and init
object: Block() {
init {
doSomething { completed(true) }
}
}
}
}
}
}
}
plugins {
kotlin("js") version "1.9.10"
}
repositories {
mavenCentral()
}
kotlin {
js(IR) {
browser {}
binaries.executable()
}
dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
}
}
dmitriy.novozhilov
09/12/2023, 8:02 AMNick
09/14/2023, 7:13 AMdmitriy.novozhilov
09/14/2023, 7:15 AM