diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/extensions/PartialAnalysisHandlerExtension.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/extensions/PartialAnalysisHandlerExtension.kt index 8c449ff4e38..61e64d0e797 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/extensions/PartialAnalysisHandlerExtension.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/resolve/jvm/extensions/PartialAnalysisHandlerExtension.kt @@ -85,12 +85,7 @@ open class PartialAnalysisHandlerExtension : AnalysisHandlerExtension { if (declaration is KtProperty) { /* TODO Now we analyse body with anonymous object initializers. Check if we can't avoid it * val a: Runnable = object : Runnable { ... } */ - //resolve property in case it has delegate expression or explicit accessor, otherwise just infer type - if (declaration.delegateExpression != null || declaration.accessors.isNotEmpty()) { - bodyResolver.resolveProperty(topDownAnalysisContext, declaration, descriptor) - } else { - BodyResolver.computeDeferredType(descriptor.returnType) - } + bodyResolver.resolveProperty(topDownAnalysisContext, declaration, descriptor) } } is FunctionDescriptor -> { diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/properties.kt b/plugins/kapt3/kapt3-compiler/testData/converter/properties.kt index feb0fb89595..e5b5336a681 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/properties.kt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/properties.kt @@ -5,4 +5,7 @@ class Test { val getter: String = "O" get() = { field }() + "K" + + val constJavaClassValue: Class<*> = String::class.java + val constClassValue: kotlin.reflect.KClass<*> = (String::class) } diff --git a/plugins/kapt3/kapt3-compiler/testData/converter/properties.txt b/plugins/kapt3/kapt3-compiler/testData/converter/properties.txt index d4a82ef6abd..1d2d620c17b 100644 --- a/plugins/kapt3/kapt3-compiler/testData/converter/properties.txt +++ b/plugins/kapt3/kapt3-compiler/testData/converter/properties.txt @@ -8,6 +8,10 @@ public final class Test { private final java.lang.String inferType = null; @org.jetbrains.annotations.NotNull() private final java.lang.String getter = "O"; + @org.jetbrains.annotations.NotNull() + private final java.lang.Class constJavaClassValue = null; + @org.jetbrains.annotations.NotNull() + private final kotlin.reflect.KClass constClassValue = null; public Test() { super(); @@ -27,4 +31,14 @@ public final class Test { public final java.lang.String getGetter() { return null; } + + @org.jetbrains.annotations.NotNull() + public final java.lang.Class getConstJavaClassValue() { + return null; + } + + @org.jetbrains.annotations.NotNull() + public final kotlin.reflect.KClass getConstClassValue() { + return null; + } }