From ca6e430e89f7060dcb3ea6b0712aa35ac59952ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steven=20Sch=C3=A4fer?= Date: Wed, 5 Aug 2020 15:55:24 +0200 Subject: [PATCH] JVM IR: Handle nested classes in DelegatedPropertyOptimizer --- .../ir/FirBlackBoxCodegenTestGenerated.java | 15 +++++++++ .../backend/jvm/codegen/ClassCodegen.kt | 33 ++++++++++--------- .../backend/jvm/codegen/ExpressionCodegen.kt | 8 +++-- .../backend/jvm/codegen/FunctionCodegen.kt | 19 ++++++++--- .../jvm/codegen/IrSourceCompilerForInline.kt | 6 ++-- .../optimizedDelegatedProperties/kt40815.kt | 13 ++++++++ .../optimizedDelegatedProperties/kt40815_2.kt | 7 ++++ .../optimizedDelegatedProperties/kt40815_3.kt | 10 ++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 15 +++++++++ .../LightAnalysisModeTestGenerated.java | 15 +++++++++ .../ir/IrBlackBoxCodegenTestGenerated.java | 15 +++++++++ .../IrJsCodegenBoxES6TestGenerated.java | 20 ++++++++--- .../IrJsCodegenBoxTestGenerated.java | 20 ++++++++--- .../semantics/JsCodegenBoxTestGenerated.java | 20 ++++++++--- 14 files changed, 174 insertions(+), 42 deletions(-) create mode 100644 compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815.kt create mode 100644 compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_2.kt create mode 100644 compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_3.kt diff --git a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java index 463e5c1b740..97a86258ddd 100644 --- a/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests/org/jetbrains/kotlin/codegen/ir/FirBlackBoxCodegenTestGenerated.java @@ -9573,6 +9573,21 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModuleWithNonNullParameter.kt"); } + @TestMetadata("kt40815.kt") + public void testKt40815() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815.kt"); + } + + @TestMetadata("kt40815_2.kt") + public void testKt40815_2() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_2.kt"); + } + + @TestMetadata("kt40815_3.kt") + public void testKt40815_3() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_3.kt"); + } + @TestMetadata("lazy.kt") public void testLazy() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/lazy.kt"); diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt index c553c1e52b3..3ac98243b37 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt @@ -110,7 +110,7 @@ abstract class ClassCodegen protected constructor( private var generatingClInit = false private var generated = false - fun generate(): ReifiedTypeParametersUsages { + fun generate(parentDelegatedPropertyTracker: DelegatedPropertyOptimizer? = null): ReifiedTypeParametersUsages { // TODO: reject repeated generate() calls; currently, these can happen for objects in finally // blocks since they are `accept`ed once per each CFG edge out of the try-finally. if (generated) return reifiedTypeParametersUsages @@ -120,7 +120,8 @@ abstract class ClassCodegen protected constructor( val classDelegatedPropertiesArray = irClass.fields.singleOrNull { it.origin == JvmLoweredDeclarationOrigin.GENERATED_PROPERTY_REFERENCE } - val delegatedPropertyTracker = if (classDelegatedPropertiesArray != null) DelegatedPropertyOptimizer() else null + val delegatedPropertyTracker = + if (classDelegatedPropertiesArray != null) DelegatedPropertyOptimizer() else parentDelegatedPropertyTracker val smap = context.getSourceMapper(irClass) for (declaration in irClass.declarations) { @@ -132,6 +133,14 @@ abstract class ClassCodegen protected constructor( } } + // Generate nested classes at the end, to ensure that when the companion's metadata is serialized + // everything moved to the outer class has already been recorded in `globalSerializationBindings`. + for (declaration in irClass.declarations) { + if (declaration is IrClass) { + getOrCreate(declaration, context).generate(delegatedPropertyTracker) + } + } + // Delay generation of until the end because inline function calls // might need to generate the `$assertionsDisabled` field initializer. classInitializer?.let { @@ -142,14 +151,6 @@ abstract class ClassCodegen protected constructor( } } - // Generate nested classes at the end, to ensure that when the companion's metadata is serialized - // everything moved to the outer class has already been recorded in `globalSerializationBindings`. - for (declaration in irClass.declarations) { - if (declaration is IrClass) { - getOrCreate(declaration, context).generate() - } - } - object : AnnotationCodegen(this@ClassCodegen, context) { override fun visitAnnotation(descr: String?, visible: Boolean): AnnotationVisitor { return visitor.visitor.visitAnnotation(descr, visible) @@ -208,7 +209,7 @@ abstract class ClassCodegen protected constructor( return null } - abstract protected fun generateKotlinMetadataAnnotation() + protected abstract fun generateKotlinMetadataAnnotation() private fun IrFile.loadSourceFilesInfo(): List { val entry = fileEntry @@ -274,14 +275,14 @@ abstract class ClassCodegen protected constructor( private val generatedInlineMethods = mutableMapOf() - fun generateMethodNode(method: IrFunction): SMAPAndMethodNode { + fun generateMethodNode(method: IrFunction, delegatedPropertyOptimizer: DelegatedPropertyOptimizer?): SMAPAndMethodNode { if (!method.isInline && !method.isSuspend) { // Inline methods can be used multiple times by `IrSourceCompilerForInline`, suspend methods // could be used twice if they capture crossinline lambdas, and everything else is only // generated by `generateMethod` below so does not need caching. - return FunctionCodegen(method, this).generate() + return FunctionCodegen(method, this).generate(delegatedPropertyOptimizer) } - val (node, smap) = generatedInlineMethods.getOrPut(method) { FunctionCodegen(method, this).generate() } + val (node, smap) = generatedInlineMethods.getOrPut(method) { FunctionCodegen(method, this).generate(delegatedPropertyOptimizer) } val copy = with(node) { MethodNode(Opcodes.API_VERSION, access, name, desc, signature, exceptions.toTypedArray()) } node.instructions.resetLabels() node.accept(copy) @@ -296,7 +297,7 @@ abstract class ClassCodegen protected constructor( return } - val (node, smap) = generateMethodNode(method) + val (node, smap) = generateMethodNode(method, delegatedPropertyOptimizer) if (delegatedPropertyOptimizer != null) { delegatedPropertyOptimizer.transform(node) if (method.name.asString() == "") { @@ -321,7 +322,7 @@ abstract class ClassCodegen protected constructor( if (method.isSuspend) continuationClassCodegen.value.visitor else visitor } if (continuationClassCodegen.isInitialized() || method.alwaysNeedsContinuation()) { - continuationClassCodegen.value.generate() + continuationClassCodegen.value.generate(delegatedPropertyOptimizer) } } else { node.accept(smapCopyingVisitor) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt index 22ae84d7680..7d3d159e3c9 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt @@ -104,7 +104,8 @@ class ExpressionCodegen( val mv: InstructionAdapter, val classCodegen: ClassCodegen, val inlinedInto: ExpressionCodegen?, - val smap: SourceMapper + val smap: SourceMapper, + val delegatedPropertyOptimizer: DelegatedPropertyOptimizer?, ) : IrElementVisitor, BaseExpressionCodegen { var finallyDepth = 0 @@ -557,7 +558,7 @@ class ExpressionCodegen( expression.receiver?.let { receiver -> receiver.accept(this, data).materializeAt(ownerType, receiver.type) } - + return if (expression is IrSetField) { val value = expression.value.accept(this, data) @@ -725,7 +726,8 @@ class ExpressionCodegen( override fun visitClass(declaration: IrClass, data: BlockInfo): PromisedValue { if (declaration.origin != JvmLoweredDeclarationOrigin.CONTINUATION_CLASS) { closureReifiedMarkers[declaration] = - ClassCodegen.getOrCreate(declaration, context, generateSequence(this) { it.inlinedInto }.last().irFunction).generate() + ClassCodegen.getOrCreate(declaration, context, generateSequence(this) { it.inlinedInto }.last().irFunction) + .generate(delegatedPropertyOptimizer) } return unitValue } diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt index f18dffc19e1..759f633c3cb 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/FunctionCodegen.kt @@ -45,14 +45,14 @@ class FunctionCodegen( ) { private val context = classCodegen.context - fun generate(): SMAPAndMethodNode = + fun generate(delegatedPropertyOptimizer: DelegatedPropertyOptimizer?): SMAPAndMethodNode = try { - doGenerate() + doGenerate(delegatedPropertyOptimizer) } catch (e: Throwable) { throw RuntimeException("Exception while generating code for:\n${irFunction.dump()}", e) } - private fun doGenerate(): SMAPAndMethodNode { + private fun doGenerate(delegatedPropertyOptimizer: DelegatedPropertyOptimizer?): SMAPAndMethodNode { val signature = context.methodSignatureMapper.mapSignatureWithGeneric(irFunction) val flags = irFunction.calculateMethodFlags() val methodNode = MethodNode( @@ -103,7 +103,7 @@ class FunctionCodegen( generateAnnotationDefaultValueIfNeeded(methodVisitor) SMAP(listOf()) } else if (notForInline != null) { - val (originalNode, smap) = classCodegen.generateMethodNode(notForInline) + val (originalNode, smap) = classCodegen.generateMethodNode(notForInline, delegatedPropertyOptimizer) originalNode.accept(MethodBodyVisitor(methodVisitor)) smap } else { @@ -112,7 +112,16 @@ class FunctionCodegen( context.state.globalInlineContext.enterDeclaration(irFunction.suspendFunctionOriginal().descriptor) try { val adapter = InstructionAdapter(methodVisitor) - ExpressionCodegen(irFunction, signature, frameMap, adapter, classCodegen, inlinedInto, sourceMapper).generate() + ExpressionCodegen( + irFunction, + signature, + frameMap, + adapter, + classCodegen, + inlinedInto, + sourceMapper, + delegatedPropertyOptimizer, + ).generate() } finally { context.state.globalInlineContext.exitDeclaration() } diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrSourceCompilerForInline.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrSourceCompilerForInline.kt index d4736a76e7d..e2ad1c8ade2 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrSourceCompilerForInline.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/codegen/IrSourceCompilerForInline.kt @@ -93,7 +93,7 @@ class IrSourceCompilerForInline( get() = codegen.smap override fun generateLambdaBody(lambdaInfo: ExpressionLambda): SMAPAndMethodNode = - FunctionCodegen((lambdaInfo as IrExpressionLambdaImpl).function, codegen.classCodegen, codegen).generate() + FunctionCodegen((lambdaInfo as IrExpressionLambdaImpl).function, codegen.classCodegen, codegen).generate(codegen.delegatedPropertyOptimizer) override fun doCreateMethodNodeFromSource( callableDescriptor: FunctionDescriptor, @@ -101,7 +101,7 @@ class IrSourceCompilerForInline( callDefault: Boolean, asmMethod: Method ): SMAPAndMethodNode { - return ClassCodegen.getOrCreate(callee.parentAsClass, codegen.context).generateMethodNode(callee) + return ClassCodegen.getOrCreate(callee.parentAsClass, codegen.context).generateMethodNode(callee, null) } override fun hasFinallyBlocks() = data.hasFinallyBlocks() @@ -114,7 +114,7 @@ class IrSourceCompilerForInline( override fun createCodegenForExternalFinallyBlockGenerationOnNonLocalReturn(finallyNode: MethodNode, curFinallyDepth: Int) = ExpressionCodegen( codegen.irFunction, codegen.signature, codegen.frameMap, InstructionAdapter(finallyNode), codegen.classCodegen, - codegen.inlinedInto, codegen.smap + codegen.inlinedInto, codegen.smap, codegen.delegatedPropertyOptimizer ).also { it.finallyDepth = curFinallyDepth } diff --git a/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815.kt b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815.kt new file mode 100644 index 00000000000..9d6fce69386 --- /dev/null +++ b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815.kt @@ -0,0 +1,13 @@ +// IGNORE_BACKEND_FIR: JVM_IR +import kotlin.reflect.KProperty + +operator fun Int.provideDelegate(thiz: Any?, property: KProperty<*>): String = property.name +inline operator fun String.getValue(thiz: Any?, property: KProperty<*>): String = property.name + +fun box(): String = with(42) { + val O by this + O +} + { + val K by "" + K +}() diff --git a/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_2.kt b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_2.kt new file mode 100644 index 00000000000..f085c313441 --- /dev/null +++ b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_2.kt @@ -0,0 +1,7 @@ +import kotlin.reflect.KProperty + +inline operator fun String.getValue(thiz: Any?, property: KProperty<*>): String = property.name + +fun box(): String = object { + val OK by "" +}.OK diff --git a/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_3.kt b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_3.kt new file mode 100644 index 00000000000..2b814911f83 --- /dev/null +++ b/compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_3.kt @@ -0,0 +1,10 @@ +import kotlin.reflect.KProperty + +inline operator fun String.getValue(thiz: Any?, property: KProperty<*>): String = property.name + +fun box(): String { + class Local { + val OK by "" + } + return Local().OK +} diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java index 1bf197919d3..70da201bd0e 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/BlackBoxCodegenTestGenerated.java @@ -10798,6 +10798,21 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModuleWithNonNullParameter.kt"); } + @TestMetadata("kt40815.kt") + public void testKt40815() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815.kt"); + } + + @TestMetadata("kt40815_2.kt") + public void testKt40815_2() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_2.kt"); + } + + @TestMetadata("kt40815_3.kt") + public void testKt40815_3() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_3.kt"); + } + @TestMetadata("lazy.kt") public void testLazy() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/lazy.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 7368dccaa72..1998b9b3c7f 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -10798,6 +10798,21 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModuleWithNonNullParameter.kt"); } + @TestMetadata("kt40815.kt") + public void testKt40815() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815.kt"); + } + + @TestMetadata("kt40815_2.kt") + public void testKt40815_2() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_2.kt"); + } + + @TestMetadata("kt40815_3.kt") + public void testKt40815_3() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_3.kt"); + } + @TestMetadata("lazy.kt") public void testLazy() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/lazy.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java index 4a52ed803a9..84b4b66fc87 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/ir/IrBlackBoxCodegenTestGenerated.java @@ -9573,6 +9573,21 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModuleWithNonNullParameter.kt"); } + @TestMetadata("kt40815.kt") + public void testKt40815() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815.kt"); + } + + @TestMetadata("kt40815_2.kt") + public void testKt40815_2() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_2.kt"); + } + + @TestMetadata("kt40815_3.kt") + public void testKt40815_3() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_3.kt"); + } + @TestMetadata("lazy.kt") public void testLazy() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/lazy.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java index 2b3f2d75828..7384fad2bdc 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/es6/semantics/IrJsCodegenBoxES6TestGenerated.java @@ -41,11 +41,6 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR_ES6, true); } - @TestMetadata("annotatedObjectLiteral.kt") - public void testAnnotatedObjectLiteral() throws Exception { - runTest("compiler/testData/codegen/box/annotations/annotatedObjectLiteral.kt"); - } - @TestMetadata("nestedAnnotation.kt") public void testNestedAnnotation() throws Exception { runTest("compiler/testData/codegen/box/annotations/nestedAnnotation.kt"); @@ -8223,6 +8218,21 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModuleWithNonNullParameter.kt"); } + @TestMetadata("kt40815.kt") + public void testKt40815() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815.kt"); + } + + @TestMetadata("kt40815_2.kt") + public void testKt40815_2() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_2.kt"); + } + + @TestMetadata("kt40815_3.kt") + public void testKt40815_3() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_3.kt"); + } + @TestMetadata("lazy.kt") public void testLazy() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/lazy.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java index 15a7d4accaa..d53a4ed8511 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/ir/semantics/IrJsCodegenBoxTestGenerated.java @@ -41,11 +41,6 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true); } - @TestMetadata("annotatedObjectLiteral.kt") - public void testAnnotatedObjectLiteral() throws Exception { - runTest("compiler/testData/codegen/box/annotations/annotatedObjectLiteral.kt"); - } - @TestMetadata("nestedAnnotation.kt") public void testNestedAnnotation() throws Exception { runTest("compiler/testData/codegen/box/annotations/nestedAnnotation.kt"); @@ -8223,6 +8218,21 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModuleWithNonNullParameter.kt"); } + @TestMetadata("kt40815.kt") + public void testKt40815() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815.kt"); + } + + @TestMetadata("kt40815_2.kt") + public void testKt40815_2() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_2.kt"); + } + + @TestMetadata("kt40815_3.kt") + public void testKt40815_3() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_3.kt"); + } + @TestMetadata("lazy.kt") public void testLazy() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/lazy.kt"); diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java index 24a81894edd..961ae2ad22d 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/semantics/JsCodegenBoxTestGenerated.java @@ -41,11 +41,6 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/annotations"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS, true); } - @TestMetadata("annotatedObjectLiteral.kt") - public void testAnnotatedObjectLiteral() throws Exception { - runTest("compiler/testData/codegen/box/annotations/annotatedObjectLiteral.kt"); - } - @TestMetadata("nestedAnnotation.kt") public void testNestedAnnotation() throws Exception { runTest("compiler/testData/codegen/box/annotations/nestedAnnotation.kt"); @@ -8223,6 +8218,21 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest { runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/inSeparateModuleWithNonNullParameter.kt"); } + @TestMetadata("kt40815.kt") + public void testKt40815() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815.kt"); + } + + @TestMetadata("kt40815_2.kt") + public void testKt40815_2() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_2.kt"); + } + + @TestMetadata("kt40815_3.kt") + public void testKt40815_3() throws Exception { + runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/kt40815_3.kt"); + } + @TestMetadata("lazy.kt") public void testLazy() throws Exception { runTest("compiler/testData/codegen/box/delegatedProperty/optimizedDelegatedProperties/lazy.kt");