diff --git a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt index 3d0931e28c8..e190349e1f9 100644 --- a/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt +++ b/plugins/kapt3/kapt3-compiler/src/org/jetbrains/kotlin/kapt3/stubs/ClassFileToSourceStubConverter.kt @@ -651,28 +651,24 @@ class ClassFileToSourceStubConverter(val kaptContext: KaptContextForStubGenerati val value = field.value val origin = kaptContext.origins[field] - val initializer = when (val element = origin?.element) { - is KtProperty -> element.initializer - is KtParameter -> element.defaultValue - else -> null - } + val propertyInitializer = (origin?.element as? KtProperty)?.initializer if (value != null) { - if (initializer != null) { - return convertConstantValueArguments(value, listOf(initializer)) + if (propertyInitializer != null) { + return convertConstantValueArguments(value, listOf(propertyInitializer)) } return convertValueOfPrimitiveTypeOrString(value) } val propertyType = (origin?.descriptor as? PropertyDescriptor)?.returnType - if (initializer != null && propertyType != null) { + if (propertyInitializer != null && propertyType != null) { val moduleDescriptor = kaptContext.generationState.module val evaluator = ConstantExpressionEvaluator(moduleDescriptor, LanguageVersionSettingsImpl.DEFAULT, kaptContext.project) val trace = DelegatingBindingTrace(kaptContext.bindingContext, "Kapt") - val const = evaluator.evaluateExpression(initializer, trace, propertyType) + val const = evaluator.evaluateExpression(propertyInitializer, trace, propertyType) if (const != null && !const.isError && const.canBeUsedInAnnotations && !const.usesNonConstValAsConstant) { - return convertConstantValueArguments(const.getValue(propertyType), listOf(initializer)) + return convertConstantValueArguments(const.getValue(propertyType), listOf(propertyInitializer)) } } diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/jvmOverloads.txt b/plugins/kapt3/kapt3-compiler/testData/converter/jvmOverloads.txt index bdf4f43348b..2b92efc2804 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/jvmOverloads.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/jvmOverloads.txt @@ -5,7 +5,7 @@ public final class State { private final int someInt = 0; private final long someLong = 0L; @org.jetbrains.annotations.NotNull() - private final java.lang.String someString = ""; + private final java.lang.String someString = null; public final int getSomeInt() { return 0; @@ -38,9 +38,9 @@ import java.lang.System; @kotlin.Metadata() public final class State2 { public final int someInt = 0; - public final long someLong = 2L; + public final long someLong = 0L; @org.jetbrains.annotations.NotNull() - public final java.lang.String someString = ""; + public final java.lang.String someString = null; public final int test(int someInt, long someLong, @org.jetbrains.annotations.NotNull() java.lang.String someString) { diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/kt18791.kt b/plugins/kapt3/kapt3-compiler/testData/converter/kt18791.kt index 2ab88ffcc50..df97df237ae 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/kt18791.kt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/kt18791.kt @@ -66,8 +66,7 @@ annotation class Anno( val a8: Double, val a9: String) -// TODO generate the right default field value for 'p0' -class MyActivity(val p0: Int = lib.R.id.textView, val p1: Int = 5) { +class MyActivity { @Bind(LibR.id.textView) @BindField(LibR.id.textView) val a = 0 diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/kt18791.txt b/plugins/kapt3/kapt3-compiler/testData/converter/kt18791.txt index f9fdd4cb98d..a46e5cfc39f 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/kt18791.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/kt18791.txt @@ -134,8 +134,6 @@ public final class MyActivity { public final int propD = app.B.id.textView; public int propE = app.B.id.textView; private final int propF = 0; - private final int p0 = 0; - private final int p1 = 5; @Bind(id = lib.R.id.textView) public static void a$annotations() { @@ -226,18 +224,6 @@ public final class MyActivity { return 0; } - public final int getP0() { - return 0; - } - - public final int getP1() { - return 0; - } - - public MyActivity(int p0, int p1) { - super(); - } - public MyActivity() { super(); } diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/unsafePropertyInitializers.kt b/plugins/kapt3/kapt3-compiler/testData/converter/unsafePropertyInitializers.kt index de6e084f8a5..0a802b38a4d 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/unsafePropertyInitializers.kt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/unsafePropertyInitializers.kt @@ -21,6 +21,4 @@ object Foo { object Boo { val z = foo() fun foo() = "abc" -} - -class Zoo(val p: Int = 100) \ No newline at end of file +} \ No newline at end of file diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/unsafePropertyInitializers.txt b/plugins/kapt3/kapt3-compiler/testData/converter/unsafePropertyInitializers.txt index 31a524781df..cc80a16adc4 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/unsafePropertyInitializers.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/unsafePropertyInitializers.txt @@ -116,25 +116,3 @@ public final class Foo { super(); } } - -//////////////////// - - -import java.lang.System; - -@kotlin.Metadata() -public final class Zoo { - private final int p = 100; - - public final int getP() { - return 0; - } - - public Zoo(int p) { - super(); - } - - public Zoo() { - super(); - } -} diff --git a/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Overloads.it.txt b/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Overloads.it.txt index 00949290542..9fb0cd3bbc5 100644 --- a/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Overloads.it.txt +++ b/plugins/kapt3/kapt3-compiler/testData/kotlinRunner/Overloads.it.txt @@ -26,7 +26,7 @@ public final class State { private final int someInt = 0; private final long someLong = 0L; @org.jetbrains.annotations.NotNull() - private final java.lang.String someString = ""; + private final java.lang.String someString = null; public final int getSomeInt() { return 0;