diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java index d83a7d9462a..166d215391b 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java @@ -15478,12 +15478,24 @@ public class LLFirBlackBoxCodegenBasedTestGenerated extends AbstractLLFirBlackBo runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstructorParameter.kt"); } + @Test + @TestMetadata("delegateToJavaFinalStaticField.kt") + public void testDelegateToJavaFinalStaticField() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt"); + } + @Test @TestMetadata("delegateWithPrivateSet.kt") public void testDelegateWithPrivateSet() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java index 086e9d541a6..91438479676 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java @@ -15478,12 +15478,24 @@ public class LLFirReversedBlackBoxCodegenBasedTestGenerated extends AbstractLLFi runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstructorParameter.kt"); } + @Test + @TestMetadata("delegateToJavaFinalStaticField.kt") + public void testDelegateToJavaFinalStaticField() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt"); + } + @Test @TestMetadata("delegateWithPrivateSet.kt") public void testDelegateWithPrivateSet() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java index c6fc7dbe9b3..883c7a4f08f 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java @@ -15419,12 +15419,24 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstructorParameter.kt"); } + @Test + @TestMetadata("delegateToJavaFinalStaticField.kt") + public void testDelegateToJavaFinalStaticField() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt"); + } + @Test @TestMetadata("delegateWithPrivateSet.kt") public void testDelegateWithPrivateSet() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java index 35a0d5ba960..2e6fc6b47a3 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java @@ -15419,12 +15419,24 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstructorParameter.kt"); } + @Test + @TestMetadata("delegateToJavaFinalStaticField.kt") + public void testDelegateToJavaFinalStaticField() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt"); + } + @Test @TestMetadata("delegateWithPrivateSet.kt") public void testDelegateWithPrivateSet() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java index ef9af5d08a6..66f7c1a2e53 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java @@ -15419,12 +15419,24 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstructorParameter.kt"); } + @Test + @TestMetadata("delegateToJavaFinalStaticField.kt") + public void testDelegateToJavaFinalStaticField() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt"); + } + @Test @TestMetadata("delegateWithPrivateSet.kt") public void testDelegateWithPrivateSet() throws Exception { diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmIrLowerUtils.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmIrLowerUtils.kt index 9bbb44cf1a1..801879b638e 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmIrLowerUtils.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/JvmIrLowerUtils.kt @@ -13,6 +13,7 @@ import org.jetbrains.kotlin.ir.declarations.IrProperty import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.util.getPackageFragment +import org.jetbrains.kotlin.ir.util.shallowCopyOrNull import org.jetbrains.kotlin.ir.util.statements internal val IrSimpleFunction.returnsResultOfStdlibCall: Boolean @@ -68,3 +69,14 @@ internal fun IrProperty.getSingletonOrConstantForOptimizableDelegatedProperty(): fun IrProperty.isJvmOptimizableDelegate(): Boolean = isDelegated && !isFakeOverride && backingField != null && // fast path (getPropertyReferenceForOptimizableDelegatedProperty() != null || getSingletonOrConstantForOptimizableDelegatedProperty() != null) + +internal val IrMemberAccessExpression<*>.constInitializer: IrExpression? + get() { + if (this !is IrPropertyReference) return null + val constPropertyField = if (field == null) { + symbol.owner.takeIf { it.isConst }?.backingField + } else { + field!!.owner.takeIf { it.isFinal && it.isStatic } + } + return constPropertyField?.initializer?.expression?.shallowCopyOrNull() + } \ No newline at end of file diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceDelegationLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceDelegationLowering.kt index 02efd24ff39..6bb525db944 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceDelegationLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceDelegationLowering.kt @@ -41,9 +41,14 @@ private class PropertyReferenceDelegationLowering(val context: JvmBackendContext } private class PropertyReferenceDelegationTransformer(val context: JvmBackendContext) : IrElementTransformerVoid() { - private fun IrSimpleFunction.accessorBody(delegate: IrPropertyReference, receiverFieldOrExpression: IrStatement?) = + private fun IrSimpleFunction.accessorBody(delegate: IrPropertyReference, receiverFieldOrExpression: IrStatement?): IrBody = context.createIrBuilder(symbol, startOffset, endOffset).run { val value = valueParameters.singleOrNull()?.let(::irGet) + val isGetter = value == null + if (isGetter) { + delegate.constInitializer?.let { return@run irExprBody(it) } + } + var boundReceiver = when (receiverFieldOrExpression) { null -> null is IrField -> irGetField(dispatchReceiverParameter?.let(::irGet), receiverFieldOrExpression) @@ -54,7 +59,7 @@ private class PropertyReferenceDelegationTransformer(val context: JvmBackendCont val unboundReceiver = extensionReceiverParameter ?: dispatchReceiverParameter val field = delegate.field?.owner val access = if (field == null) { - val accessor = if (value == null) delegate.getter!! else delegate.setter!! + val accessor = if (isGetter) delegate.getter!! else delegate.setter!! irCall(accessor).apply { // This has the same assumptions about receivers as `PropertyReferenceLowering.propertyReferenceKindFor`: // only one receiver can be bound, and if the property has both, the extension receiver cannot be bound. @@ -72,7 +77,7 @@ private class PropertyReferenceDelegationTransformer(val context: JvmBackendCont } } else { val receiver = if (field.isStatic) null else boundReceiver ?: irGet(unboundReceiver!!) - if (value == null) irGetField(receiver, field) else irSetField(receiver, field, value) + if (isGetter) irGetField(receiver, field) else irSetField(receiver, field, value!!) } irExprBody(access) } diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt index a2bd6b9e796..d919b8a1a79 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/lower/PropertyReferenceLowering.kt @@ -67,17 +67,6 @@ internal class PropertyReferenceLowering(val context: JvmBackendContext) : IrEle private val IrMemberAccessExpression<*>.field: IrFieldSymbol? get() = (this as? IrPropertyReference)?.field - private val IrMemberAccessExpression<*>.constInitializer: IrExpression? - get() { - if (this !is IrPropertyReference) return null - val constPropertyField = if (field == null) { - symbol.owner.takeIf { it.isConst }?.backingField - } else { - field!!.owner.takeIf { it.isFinal && it.isStatic } - } - return constPropertyField?.initializer?.expression?.shallowCopyOrNull() - } - private val arrayItemGetter = context.ir.symbols.array.owner.functions.single { it.name.asString() == "get" } diff --git a/compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt b/compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt new file mode 100644 index 00000000000..ac1e63c483b --- /dev/null +++ b/compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt @@ -0,0 +1,21 @@ +// WITH_STDLIB + +var sideEffect = "Fail" + +object Property { + init { + sideEffect = "OK" + } + + const val PROPERTY_VALUE: String = "O" +} + +const val TOP_LEVEL_PROPERTY_VALUE: String = "K" + +val value1: String by Property::PROPERTY_VALUE +val value2: String by ::TOP_LEVEL_PROPERTY_VALUE + +fun box(): String { + if (sideEffect != "OK") return "Side effect wasn't executed" + return value1 + value2 +} diff --git a/compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt b/compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt new file mode 100644 index 00000000000..f5d772ce58b --- /dev/null +++ b/compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt @@ -0,0 +1,14 @@ +// TARGET_BACKEND: JVM +// WITH_STDLIB + +// FILE: A.java +public class A { + public static final String OK = "OK"; +} + +// FILE: main.kt +val value: String by A::OK + +fun box(): String { + return value +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index 53eb9bfbb16..855b7056946 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -15053,12 +15053,24 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstructorParameter.kt"); } + @Test + @TestMetadata("delegateToJavaFinalStaticField.kt") + public void testDelegateToJavaFinalStaticField() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt"); + } + @Test @TestMetadata("delegateWithPrivateSet.kt") public void testDelegateWithPrivateSet() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index c1eafe72e3c..d01f368adb9 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -15419,12 +15419,24 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstructorParameter.kt"); } + @Test + @TestMetadata("delegateToJavaFinalStaticField.kt") + public void testDelegateToJavaFinalStaticField() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt"); + } + @Test @TestMetadata("delegateWithPrivateSet.kt") public void testDelegateWithPrivateSet() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java index caceb0a577d..44946765177 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java @@ -15419,12 +15419,24 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstructorParameter.kt"); } + @Test + @TestMetadata("delegateToJavaFinalStaticField.kt") + public void testDelegateToJavaFinalStaticField() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt"); + } + @Test @TestMetadata("delegateWithPrivateSet.kt") public void testDelegateWithPrivateSet() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 1dbfbb232e4..a52a11d6a5b 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -12669,11 +12669,21 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstructorParameter.kt"); } + @TestMetadata("delegateToJavaFinalStaticField.kt") + public void testDelegateToJavaFinalStaticField() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToJavaFinalStaticField.kt"); + } + @TestMetadata("delegateWithPrivateSet.kt") public void testDelegateWithPrivateSet() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/delegateWithPrivateSet.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java index adcfacf123a..f26828e072b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java @@ -11525,6 +11525,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest { runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java index 3673933f590..1b2abcaeee5 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java @@ -11525,6 +11525,12 @@ public class FirJsES6CodegenBoxTestGenerated extends AbstractFirJsES6CodegenBoxT runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java index af52fd8db4c..2aad5b18751 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java @@ -11525,6 +11525,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java index c13ceb43c82..ca5f9250329 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java @@ -11525,6 +11525,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java index 672b95e0c6b..f6d7ae6442d 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java @@ -12550,6 +12550,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java index 013b272605b..0752346e2d8 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java @@ -12844,6 +12844,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java index 38c029908a7..b1dbe708c29 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java @@ -12256,6 +12256,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java index a70f195861b..8294936f9b9 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java @@ -12551,6 +12551,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java index 21f570b0bf8..37616dcbf7f 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java @@ -11501,6 +11501,12 @@ public class FirWasmCodegenBoxTestGenerated extends AbstractFirWasmCodegenBoxTes runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception { diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java index 576e47680a3..212933c4798 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java @@ -11501,6 +11501,12 @@ public class K1WasmCodegenBoxTestGenerated extends AbstractK1WasmCodegenBoxTest runTest("compiler/testData/codegen/box/delegatedProperty/delegateForExtPropertyInClass.kt"); } + @Test + @TestMetadata("delegateToConstVal.kt") + public void testDelegateToConstVal() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/delegateToConstVal.kt"); + } + @Test @TestMetadata("delegateToConstructorParameter.kt") public void testDelegateToConstructorParameter() throws Exception {