diff --git a/build.gradle.kts b/build.gradle.kts index e8beb0206d6..3fdbb3d8983 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -708,6 +708,7 @@ tasks { dependsOn(":kotlin-scripting-jsr223-test:embeddableTest") dependsOn(":kotlin-scripting-ide-services-test:test") dependsOn(":kotlin-scripting-ide-services-test:embeddableTest") + dependsOn(":kotlin-main-kts-test:test") } register("scriptingK2Test") { diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBasedDescriptors.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBasedDescriptors.kt index 6adc86f9dca..563c5ae7346 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBasedDescriptors.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/descriptors/IrBasedDescriptors.kt @@ -132,6 +132,7 @@ fun IrDeclaration.toIrBasedDescriptor(): DeclarationDescriptor = when (this) { is IrField -> toIrBasedDescriptor() is IrTypeAlias -> toIrBasedDescriptor() is IrErrorDeclaration -> toIrBasedDescriptor() + is IrScript -> toIrBasedDescriptor() else -> error("Unknown declaration kind") } @@ -1260,7 +1261,11 @@ private fun IrSimpleFunctionSymbol.toIrBasedDescriptorIfPossible(): FunctionDesc private fun IrPropertySymbol.toIrBasedDescriptorIfPossible(): PropertyDescriptor = if (isBound) owner.toIrBasedDescriptor() else descriptor -// this is a temporary solution for scripts - seems that introducing full-blown emulation of descriptors for the single degenerate case -// doesn't make any sense. +// this is a temporary solution for scripts +// TODO: implement IR-based descriptors for scripts, see KT-60631 @OptIn(ObsoleteDescriptorBasedAPI::class) private fun IrScriptSymbol.toIrBasedDescriptorIfPossible(): ScriptDescriptor = descriptor + +// see comment above to IrScriptSymbol.toIrBasedDescriptorIfPossible() +@OptIn(ObsoleteDescriptorBasedAPI::class) +private fun IrScript.toIrBasedDescriptor() = descriptor