diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnonymousInitializerGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnonymousInitializerGenerator.kt index 6561744afbe..33d6ba97b3e 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnonymousInitializerGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/AnonymousInitializerGenerator.kt @@ -41,10 +41,12 @@ class AnonymousInitializerGenerator( val statementGenerator = bodyGenerator.createStatementGenerator() val ktBody = ktAnonymousInitializer.body!! val irBlockBody = context.irFactory.createBlockBody(ktBody.startOffsetSkippingComments, ktBody.endOffset) - if (ktBody is KtBlockExpression) { - statementGenerator.generateStatements(ktBody.statements, irBlockBody) - } else { - irBlockBody.statements.add(statementGenerator.generateStatement(ktBody)) + if (context.configuration.generateBodies) { + if (ktBody is KtBlockExpression) { + statementGenerator.generateStatements(ktBody.statements, irBlockBody) + } else { + irBlockBody.statements.add(statementGenerator.generateStatement(ktBody)) + } } irAnonymousInitializer.body = irBlockBody } diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java index 9737372a601..e415fb3f053 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java @@ -79,6 +79,11 @@ public class ClassFileToSourceStubConverterTestGenerated extends AbstractClassFi runTest("plugins/kapt3/kapt3-compiler/testData/converter/anonymousDelegate.kt"); } + @TestMetadata("anonymousInitializer.kt") + public void testAnonymousInitializer() throws Exception { + runTest("plugins/kapt3/kapt3-compiler/testData/converter/anonymousInitializer.kt"); + } + @TestMetadata("comments.kt") public void testComments() throws Exception { runTest("plugins/kapt3/kapt3-compiler/testData/converter/comments.kt"); diff --git a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java index 93b991861bd..79c27d0e0d3 100644 --- a/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java +++ b/plugins/kapt3/kapt3-compiler/test/org/jetbrains/kotlin/kapt3/test/IrClassFileToSourceStubConverterTestGenerated.java @@ -80,6 +80,11 @@ public class IrClassFileToSourceStubConverterTestGenerated extends AbstractIrCla runTest("plugins/kapt3/kapt3-compiler/testData/converter/anonymousDelegate.kt"); } + @TestMetadata("anonymousInitializer.kt") + public void testAnonymousInitializer() throws Exception { + runTest("plugins/kapt3/kapt3-compiler/testData/converter/anonymousInitializer.kt"); + } + @TestMetadata("comments.kt") public void testComments() throws Exception { runTest("plugins/kapt3/kapt3-compiler/testData/converter/comments.kt"); diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/anonymousInitializer.kt b/plugins/kapt3/kapt3-compiler/testData/converter/anonymousInitializer.kt new file mode 100644 index 00000000000..964f4a56af4 --- /dev/null +++ b/plugins/kapt3/kapt3-compiler/testData/converter/anonymousInitializer.kt @@ -0,0 +1,7 @@ +class C { + fun f() {} + + init { + f() + } +} diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/anonymousInitializer.txt b/plugins/kapt3/kapt3-compiler/testData/converter/anonymousInitializer.txt new file mode 100644 index 00000000000..689a451dab4 --- /dev/null +++ b/plugins/kapt3/kapt3-compiler/testData/converter/anonymousInitializer.txt @@ -0,0 +1,12 @@ +import java.lang.System; + +@kotlin.Metadata() +public final class C { + + public C() { + super(); + } + + public final void f() { + } +}