From 666a522fed0b4450a10466e7bf0f22d0ad4875f0 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Wed, 26 Oct 2016 00:29:18 +0300 Subject: [PATCH] Kapt3: Generate empty body for constructor and void methods --- .../kapt3/src/org/jetbrains/kotlin/kapt3/JCTreeConverter.kt | 5 ++++- plugins/kapt3/testData/converter/dataClass.kt | 4 +++- plugins/kapt3/testData/converter/dataClass.txt | 4 +++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/JCTreeConverter.kt b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/JCTreeConverter.kt index 05e928ddd8e..1596dac3c98 100644 --- a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/JCTreeConverter.kt +++ b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/JCTreeConverter.kt @@ -126,7 +126,8 @@ class JCTreeConverter(context: Context, val classes: List, val origin if (isSynthetic(method.access)) return null val modifiers = convertModifiers(method.access, ElementKind.METHOD, method.visibleAnnotations, method.invisibleAnnotations) - val name = if (method.name == "") containingClassSimpleName else name(method.name) + val isConstructor = method.name == "" + val name = if (isConstructor) containingClassSimpleName else name(method.name) val typeParameters = JavacList.nil() val receiverParameter = null @@ -147,6 +148,8 @@ class JCTreeConverter(context: Context, val classes: List, val origin val body = if (defaultValue != null) { null + } else if (isConstructor || returnType == Type.VOID_TYPE) { + treeMaker.Block(0, JavacList.nil()) } else { val returnStatement = treeMaker.Return(convertLiteralExpression(getDefaultValue(returnType))) treeMaker.Block(0, JavacList.of(returnStatement)) diff --git a/plugins/kapt3/testData/converter/dataClass.kt b/plugins/kapt3/testData/converter/dataClass.kt index 6466e746d38..93d6d2097ef 100644 --- a/plugins/kapt3/testData/converter/dataClass.kt +++ b/plugins/kapt3/testData/converter/dataClass.kt @@ -1 +1,3 @@ -data class User(val firstName: String, val secondName: String, val age: Int) \ No newline at end of file +data class User(val firstName: String, val secondName: String, val age: Int) { + fun procedure() {} +} \ No newline at end of file diff --git a/plugins/kapt3/testData/converter/dataClass.txt b/plugins/kapt3/testData/converter/dataClass.txt index b0985c23795..02fe8a69fc8 100644 --- a/plugins/kapt3/testData/converter/dataClass.txt +++ b/plugins/kapt3/testData/converter/dataClass.txt @@ -3,6 +3,9 @@ public final class User { private final java.lang.String secondName; private final int age; + public final void procedure() { + } + public final java.lang.String getFirstName() { return null; } @@ -16,7 +19,6 @@ public final class User { } public void User(java.lang.String firstName, java.lang.String secondName, int age) { - return null; } public final java.lang.String component1() {