diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightModifierList.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightModifierList.kt index 073c259a0bb..389d840fcb3 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightModifierList.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/elements/KtLightModifierList.kt @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.isPropertyParameter import org.jetbrains.kotlin.resolve.AnnotationChecker import org.jetbrains.kotlin.resolve.BindingContext +import org.jetbrains.kotlin.resolve.annotations.JVM_DEFAULT_FQ_NAME import org.jetbrains.kotlin.resolve.source.getPsi abstract class KtLightModifierList>(protected val owner: T) @@ -138,9 +139,18 @@ private fun getAnnotationDescriptors(declaration: KtDeclaration, annotatedLightE else -> descriptor } ?: return emptyList() - return annotatedDescriptor.annotations.getAllAnnotations() - .filter { it.matches(annotatedLightElement) } - .map { it.annotation } + val annotations = annotatedDescriptor.annotations.getAllAnnotations() + .filter { it.matches(annotatedLightElement) } + .map { it.annotation } + + if (descriptor is PropertyDescriptor) { + val jvmDefault = descriptor.annotations.findAnnotation(JVM_DEFAULT_FQ_NAME) + if (jvmDefault != null) { + return annotations + jvmDefault + } + } + return annotations + } private fun hasAnnotationsInSource(declaration: KtDeclaration): Boolean { diff --git a/idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendClassWithJvmDefaultImplementation.kt b/idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendClassWithJvmDefaultImplementation.kt index 4a09374d6a6..262f6058fa9 100644 --- a/idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendClassWithJvmDefaultImplementation.kt +++ b/idea/testData/kotlinAndJavaChecker/javaAgainstKotlin/ExtendClassWithJvmDefaultImplementation.kt @@ -6,9 +6,12 @@ interface KotlinInterface { } -// @JvmDefault -// val foo: String -// get() = "123" + @JvmDefault + var foo: String + get() = "123" + set(field) { + + } }