diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index 3c42afe85b9..c3ecd508ed8 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -21468,6 +21468,31 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/properties/kt9603.kt"); } + @TestMetadata("lazyInitialization.kt") + public void testLazyInitialization() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitialization.kt"); + } + + @TestMetadata("lazyInitializationCyclicImports.kt") + public void testLazyInitializationCyclicImports() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationCyclicImports.kt"); + } + + @TestMetadata("lazyInitializationMultiModule.kt") + public void testLazyInitializationMultiModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationMultiModule.kt"); + } + + @TestMetadata("lazyInitializationOrder.kt") + public void testLazyInitializationOrder() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationOrder.kt"); + } + + @TestMetadata("lazyInitializationSplitPerModule.kt") + public void testLazyInitializationSplitPerModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationSplitPerModule.kt"); + } + @TestMetadata("primitiveOverrideDefaultAccessor.kt") public void testPrimitiveOverrideDefaultAccessor() throws Exception { runTest("compiler/testData/codegen/box/properties/primitiveOverrideDefaultAccessor.kt"); diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/PropertyLazyInitLowering.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/PropertyLazyInitLowering.kt index 55a9253af4e..3b186528117 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/PropertyLazyInitLowering.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/PropertyLazyInitLowering.kt @@ -47,9 +47,11 @@ class PropertyLazyInitLowering( return } - if (container !is IrSimpleFunction && container !is IrField && container !is IrProperty) + if (container !is IrField && container !is IrSimpleFunction && container !is IrProperty) return + if (container.origin !in compatibleOrigins) return + val file = container.parent as? IrFile ?: return @@ -224,6 +226,8 @@ class RemoveInitializersForLazyProperties( if (declaration !is IrField) return null + if (!declaration.isCompatibleDeclaration()) return null + val file = declaration.parent as? IrFile ?: return null if (fileToInitializerPureness[file] == true) return null @@ -257,6 +261,7 @@ class RemoveInitializersForLazyProperties( private fun calculateFieldToExpression(declarations: Collection): Map = declarations .asSequence() + .filter { it.isCompatibleDeclaration() } .map { it.correspondingProperty } .filterNotNull() .filter { it.isForLazyInit() } @@ -288,4 +293,14 @@ private val IrDeclaration.correspondingProperty: IrProperty? private fun IrDeclaration.propertyWithPersistentSafe(transform: IrDeclaration.() -> IrProperty?): IrProperty? = if (((this as? PersistentIrElementBase<*>)?.createdOn ?: 0) <= stageController.currentStage) { transform() - } else null \ No newline at end of file + } else null + +private fun IrDeclaration.isCompatibleDeclaration() = + origin in compatibleOrigins + +private val compatibleOrigins = listOf( + IrDeclarationOrigin.DEFINED, + IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR, + IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR, + IrDeclarationOrigin.PROPERTY_BACKING_FIELD, +) \ No newline at end of file diff --git a/js/js.translator/testData/box/propertyAccess/lazyInitialization.kt b/compiler/testData/codegen/box/properties/lazyInitialization.kt similarity index 100% rename from js/js.translator/testData/box/propertyAccess/lazyInitialization.kt rename to compiler/testData/codegen/box/properties/lazyInitialization.kt diff --git a/compiler/testData/codegen/box/properties/lazyInitializationCyclicImports.kt b/compiler/testData/codegen/box/properties/lazyInitializationCyclicImports.kt new file mode 100644 index 00000000000..6658d2a68b2 --- /dev/null +++ b/compiler/testData/codegen/box/properties/lazyInitializationCyclicImports.kt @@ -0,0 +1,39 @@ +// IGNORE_BACKEND: JS +// DONT_TARGET_EXACT_BACKEND: WASM +// PROPERTY_LAZY_INITIALIZATION + +// FILE: A.kt +var log = "" + +val a1 = "a".also { + log += "a1" +} +val b1 = a2.also { + log += "b1" +} +val c1 = a3.also { + log += "c1" +} + +// FILE: B.kt +val a2 = a1.also { + log += "a2" +} +val b2 = "b".also { + log += "b2" +} + +// FILE: C.kt +val a3 = b1.also { + log += "a3" +} +val b3 = b2.also { + log += "b3" +} +val c3 = "c".also { + log += "c3" +} + +// FILE: main.kt + +fun box(): String = if (log == "a1a2b2b1a3b3c3c1") "OK" else "fail: $log" \ No newline at end of file diff --git a/compiler/testData/codegen/box/properties/lazyInitializationMultiModule.kt b/compiler/testData/codegen/box/properties/lazyInitializationMultiModule.kt new file mode 100644 index 00000000000..760168d7f46 --- /dev/null +++ b/compiler/testData/codegen/box/properties/lazyInitializationMultiModule.kt @@ -0,0 +1,10 @@ +// DONT_TARGET_EXACT_BACKEND: WASM +// PROPERTY_LAZY_INITIALIZATION + +// MODULE: lib1 +var log = "" +val a = 1.also { log += "a" } +val b = 2.also { log += "b" } + +// MODULE: main(lib1) +fun box(): String = if (log + a == "ab1") "OK" else "fail" \ No newline at end of file diff --git a/js/js.translator/testData/box/propertyAccess/lazyInitializationOrder.kt b/compiler/testData/codegen/box/properties/lazyInitializationOrder.kt similarity index 100% rename from js/js.translator/testData/box/propertyAccess/lazyInitializationOrder.kt rename to compiler/testData/codegen/box/properties/lazyInitializationOrder.kt diff --git a/js/js.translator/testData/box/propertyAccess/lazyInitializationPure.kt b/compiler/testData/codegen/box/properties/lazyInitializationPure.kt similarity index 76% rename from js/js.translator/testData/box/propertyAccess/lazyInitializationPure.kt rename to compiler/testData/codegen/box/properties/lazyInitializationPure.kt index c0f377a5c91..2600f4e6483 100644 --- a/js/js.translator/testData/box/propertyAccess/lazyInitializationPure.kt +++ b/compiler/testData/codegen/box/properties/lazyInitializationPure.kt @@ -1,4 +1,4 @@ -// IGNORE_BACKEND: JS +// TARGET_BACKEND: JS_IR // PROPERTY_LAZY_INITIALIZATION // FILE: A.kt @@ -6,12 +6,16 @@ val a = "A" // FILE: B.kt -val b = "B".apply {} +val b = "B".let { + it + "B" +} val c = b // FILE: C.kt -val d = "D".apply {} +val d = "D".let { + it + "D" +} val e = d @@ -24,8 +28,8 @@ fun box(): String { js("a") === "A" && js("typeof b") == "undefined" && js("typeof c") == "undefined" && - js("d") === "D" && - js("e") === "D" + js("d") === "DD" && + js("e") === "DD" ) "OK" else "a = ${js("a")}; typeof b = ${js("typeof b")}; typeof c = ${js("typeof c")}; d = ${js("d")}; e = ${js("e")}" diff --git a/js/js.translator/testData/box/propertyAccess/lazyInitializationSplitPerModule.kt b/compiler/testData/codegen/box/properties/lazyInitializationSplitPerModule.kt similarity index 100% rename from js/js.translator/testData/box/propertyAccess/lazyInitializationSplitPerModule.kt rename to compiler/testData/codegen/box/properties/lazyInitializationSplitPerModule.kt diff --git a/compiler/testData/codegen/box/properties/lazyInitializationThroughTopFun.kt b/compiler/testData/codegen/box/properties/lazyInitializationThroughTopFun.kt new file mode 100644 index 00000000000..e3bf52a3cf9 --- /dev/null +++ b/compiler/testData/codegen/box/properties/lazyInitializationThroughTopFun.kt @@ -0,0 +1,17 @@ +// TARGET_BACKEND: JS_IR +// DONT_TARGET_EXACT_BACKEND: WASM +// PROPERTY_LAZY_INITIALIZATION + +// FILE: A.kt +val a = "a".let { + it + "a" +} + +fun foo() = + 2 + 2 + +// FILE: main.kt +fun box(): String { + val foo = foo() + return if (js("typeof a") == "string" && js("a") == "aa") "OK" else "fail" +} \ No newline at end of file diff --git a/compiler/testData/codegen/box/properties/noInitializationLazilyOnNonPropertiesCall.kt b/compiler/testData/codegen/box/properties/noInitializationLazilyOnNonPropertiesCall.kt new file mode 100644 index 00000000000..d0aceeec2e5 --- /dev/null +++ b/compiler/testData/codegen/box/properties/noInitializationLazilyOnNonPropertiesCall.kt @@ -0,0 +1,38 @@ +// TARGET_BACKEND: JS_IR +// DONT_TARGET_EXACT_BACKEND: WASM +// PROPERTY_LAZY_INITIALIZATION + +// FILE: A.kt +val a1 = "a".let { + it + "a" +} + +object A { + private val foo = "foo" + val foo2 = foo + val ok = "OK" +} + +class B(private val foo: String) { + val ok = foo + + constructor(arg: Int) : this(arg.toString()) +} + +enum class C { + OK +} + +const val b = "b" + +// FILE: main.kt +fun box(): String { + val foo = A.ok + val bar = B("foo").ok + val bay = B(1).ok + C.OK + C.values() + C.valueOf("OK") + val baz = b + return if (js("typeof a1") == "undefined") "OK" else "fail" +} \ No newline at end of file diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 42fc63227c8..621a623ddbe 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -23239,6 +23239,31 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/properties/kt9603.kt"); } + @TestMetadata("lazyInitialization.kt") + public void testLazyInitialization() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitialization.kt"); + } + + @TestMetadata("lazyInitializationCyclicImports.kt") + public void testLazyInitializationCyclicImports() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationCyclicImports.kt"); + } + + @TestMetadata("lazyInitializationMultiModule.kt") + public void testLazyInitializationMultiModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationMultiModule.kt"); + } + + @TestMetadata("lazyInitializationOrder.kt") + public void testLazyInitializationOrder() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationOrder.kt"); + } + + @TestMetadata("lazyInitializationSplitPerModule.kt") + public void testLazyInitializationSplitPerModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationSplitPerModule.kt"); + } + @TestMetadata("primitiveOverrideDefaultAccessor.kt") public void testPrimitiveOverrideDefaultAccessor() throws Exception { runTest("compiler/testData/codegen/box/properties/primitiveOverrideDefaultAccessor.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 9ae4d250d51..6f4a70523f5 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -23244,6 +23244,31 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/properties/kt9603.kt"); } + @TestMetadata("lazyInitialization.kt") + public void testLazyInitialization() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitialization.kt"); + } + + @TestMetadata("lazyInitializationCyclicImports.kt") + public void testLazyInitializationCyclicImports() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationCyclicImports.kt"); + } + + @TestMetadata("lazyInitializationMultiModule.kt") + public void testLazyInitializationMultiModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationMultiModule.kt"); + } + + @TestMetadata("lazyInitializationOrder.kt") + public void testLazyInitializationOrder() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationOrder.kt"); + } + + @TestMetadata("lazyInitializationSplitPerModule.kt") + public void testLazyInitializationSplitPerModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationSplitPerModule.kt"); + } + @TestMetadata("primitiveOverrideDefaultAccessor.kt") public void testPrimitiveOverrideDefaultAccessor() throws Exception { runTest("compiler/testData/codegen/box/properties/primitiveOverrideDefaultAccessor.kt"); diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 0504e65b75f..9c988ade812 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -21468,6 +21468,31 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/properties/kt9603.kt"); } + @TestMetadata("lazyInitialization.kt") + public void testLazyInitialization() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitialization.kt"); + } + + @TestMetadata("lazyInitializationCyclicImports.kt") + public void testLazyInitializationCyclicImports() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationCyclicImports.kt"); + } + + @TestMetadata("lazyInitializationMultiModule.kt") + public void testLazyInitializationMultiModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationMultiModule.kt"); + } + + @TestMetadata("lazyInitializationOrder.kt") + public void testLazyInitializationOrder() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationOrder.kt"); + } + + @TestMetadata("lazyInitializationSplitPerModule.kt") + public void testLazyInitializationSplitPerModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationSplitPerModule.kt"); + } + @TestMetadata("primitiveOverrideDefaultAccessor.kt") public void testPrimitiveOverrideDefaultAccessor() throws Exception { runTest("compiler/testData/codegen/box/properties/primitiveOverrideDefaultAccessor.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java index 4c043c4bc37..f7cd3292d61 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrBoxJsES6TestGenerated.java @@ -6786,26 +6786,6 @@ public class IrBoxJsES6TestGenerated extends AbstractIrBoxJsES6Test { runTest("js/js.translator/testData/box/propertyAccess/initValInConstructor.kt"); } - @TestMetadata("lazyInitialization.kt") - public void testLazyInitialization() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitialization.kt"); - } - - @TestMetadata("lazyInitializationOrder.kt") - public void testLazyInitializationOrder() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitializationOrder.kt"); - } - - @TestMetadata("lazyInitializationPure.kt") - public void testLazyInitializationPure() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitializationPure.kt"); - } - - @TestMetadata("lazyInitializationSplitPerModule.kt") - public void testLazyInitializationSplitPerModule() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitializationSplitPerModule.kt"); - } - @TestMetadata("overloadedOverriddenFunctionPropertyName.kt") public void testOverloadedOverriddenFunctionPropertyName() throws Exception { runTest("js/js.translator/testData/box/propertyAccess/overloadedOverriddenFunctionPropertyName.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index d59779ba6cb..dac3666dac3 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -17709,6 +17709,46 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/properties/kt9603.kt"); } + @TestMetadata("lazyInitialization.kt") + public void testLazyInitialization() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitialization.kt"); + } + + @TestMetadata("lazyInitializationCyclicImports.kt") + public void testLazyInitializationCyclicImports() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationCyclicImports.kt"); + } + + @TestMetadata("lazyInitializationMultiModule.kt") + public void testLazyInitializationMultiModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationMultiModule.kt"); + } + + @TestMetadata("lazyInitializationOrder.kt") + public void testLazyInitializationOrder() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationOrder.kt"); + } + + @TestMetadata("lazyInitializationPure.kt") + public void testLazyInitializationPure() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationPure.kt"); + } + + @TestMetadata("lazyInitializationSplitPerModule.kt") + public void testLazyInitializationSplitPerModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationSplitPerModule.kt"); + } + + @TestMetadata("lazyInitializationThroughTopFun.kt") + public void testLazyInitializationThroughTopFun() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationThroughTopFun.kt"); + } + + @TestMetadata("noInitializationLazilyOnNonPropertiesCall.kt") + public void testNoInitializationLazilyOnNonPropertiesCall() throws Exception { + runTest("compiler/testData/codegen/box/properties/noInitializationLazilyOnNonPropertiesCall.kt"); + } + @TestMetadata("primitiveOverrideDefaultAccessor.kt") public void testPrimitiveOverrideDefaultAccessor() throws Exception { runTest("compiler/testData/codegen/box/properties/primitiveOverrideDefaultAccessor.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java index b11a56171c3..b60b98a4a55 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrBoxJsTestGenerated.java @@ -6786,26 +6786,6 @@ public class IrBoxJsTestGenerated extends AbstractIrBoxJsTest { runTest("js/js.translator/testData/box/propertyAccess/initValInConstructor.kt"); } - @TestMetadata("lazyInitialization.kt") - public void testLazyInitialization() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitialization.kt"); - } - - @TestMetadata("lazyInitializationOrder.kt") - public void testLazyInitializationOrder() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitializationOrder.kt"); - } - - @TestMetadata("lazyInitializationPure.kt") - public void testLazyInitializationPure() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitializationPure.kt"); - } - - @TestMetadata("lazyInitializationSplitPerModule.kt") - public void testLazyInitializationSplitPerModule() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitializationSplitPerModule.kt"); - } - @TestMetadata("overloadedOverriddenFunctionPropertyName.kt") public void testOverloadedOverriddenFunctionPropertyName() throws Exception { runTest("js/js.translator/testData/box/propertyAccess/overloadedOverriddenFunctionPropertyName.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 13393d52079..3d82eb44618 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -17709,6 +17709,46 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/properties/kt9603.kt"); } + @TestMetadata("lazyInitialization.kt") + public void testLazyInitialization() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitialization.kt"); + } + + @TestMetadata("lazyInitializationCyclicImports.kt") + public void testLazyInitializationCyclicImports() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationCyclicImports.kt"); + } + + @TestMetadata("lazyInitializationMultiModule.kt") + public void testLazyInitializationMultiModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationMultiModule.kt"); + } + + @TestMetadata("lazyInitializationOrder.kt") + public void testLazyInitializationOrder() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationOrder.kt"); + } + + @TestMetadata("lazyInitializationPure.kt") + public void testLazyInitializationPure() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationPure.kt"); + } + + @TestMetadata("lazyInitializationSplitPerModule.kt") + public void testLazyInitializationSplitPerModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationSplitPerModule.kt"); + } + + @TestMetadata("lazyInitializationThroughTopFun.kt") + public void testLazyInitializationThroughTopFun() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationThroughTopFun.kt"); + } + + @TestMetadata("noInitializationLazilyOnNonPropertiesCall.kt") + public void testNoInitializationLazilyOnNonPropertiesCall() throws Exception { + runTest("compiler/testData/codegen/box/properties/noInitializationLazilyOnNonPropertiesCall.kt"); + } + @TestMetadata("primitiveOverrideDefaultAccessor.kt") public void testPrimitiveOverrideDefaultAccessor() throws Exception { runTest("compiler/testData/codegen/box/properties/primitiveOverrideDefaultAccessor.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java index c70a9f1fb0c..313c401b07b 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/BoxJsTestGenerated.java @@ -6816,26 +6816,6 @@ public class BoxJsTestGenerated extends AbstractBoxJsTest { runTest("js/js.translator/testData/box/propertyAccess/initValInConstructor.kt"); } - @TestMetadata("lazyInitialization.kt") - public void testLazyInitialization() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitialization.kt"); - } - - @TestMetadata("lazyInitializationOrder.kt") - public void testLazyInitializationOrder() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitializationOrder.kt"); - } - - @TestMetadata("lazyInitializationPure.kt") - public void testLazyInitializationPure() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitializationPure.kt"); - } - - @TestMetadata("lazyInitializationSplitPerModule.kt") - public void testLazyInitializationSplitPerModule() throws Exception { - runTest("js/js.translator/testData/box/propertyAccess/lazyInitializationSplitPerModule.kt"); - } - @TestMetadata("overloadedOverriddenFunctionPropertyName.kt") public void testOverloadedOverriddenFunctionPropertyName() throws Exception { runTest("js/js.translator/testData/box/propertyAccess/overloadedOverriddenFunctionPropertyName.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index d2a6e694242..f61dfa989cc 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -17814,6 +17814,31 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/properties/kt9603.kt"); } + @TestMetadata("lazyInitialization.kt") + public void testLazyInitialization() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitialization.kt"); + } + + @TestMetadata("lazyInitializationCyclicImports.kt") + public void testLazyInitializationCyclicImports() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationCyclicImports.kt"); + } + + @TestMetadata("lazyInitializationMultiModule.kt") + public void testLazyInitializationMultiModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationMultiModule.kt"); + } + + @TestMetadata("lazyInitializationOrder.kt") + public void testLazyInitializationOrder() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationOrder.kt"); + } + + @TestMetadata("lazyInitializationSplitPerModule.kt") + public void testLazyInitializationSplitPerModule() throws Exception { + runTest("compiler/testData/codegen/box/properties/lazyInitializationSplitPerModule.kt"); + } + @TestMetadata("primitiveOverrideDefaultAccessor.kt") public void testPrimitiveOverrideDefaultAccessor() throws Exception { runTest("compiler/testData/codegen/box/properties/primitiveOverrideDefaultAccessor.kt");