diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader.kt
index b2b6666a1bd..6e0045b2922 100644
--- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader.kt
+++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/kotlin/AbstractBinaryClassAnnotationAndConstantLoader.kt
@@ -84,28 +84,26 @@ public abstract class AbstractBinaryClassAnnotationAndConstantLoader {
- return when (proto) {
- is ProtoBuf.Constructor, is ProtoBuf.Function -> {
- val signature = getCallableSignature(proto, container.nameResolver, kind) ?: return emptyList()
- transformAnnotations(findClassAndLoadMemberAnnotations(container, proto, signature))
- }
- is ProtoBuf.Property -> {
- val nameResolver = container.nameResolver
- val syntheticFunctionSignature = getPropertySignature(proto, nameResolver, synthetic = true)
- val fieldSignature = getPropertySignature(proto, nameResolver, field = true)
+ if (kind == AnnotatedCallableKind.PROPERTY) {
+ proto as ProtoBuf.Property
- val propertyAnnotations = syntheticFunctionSignature?.let { sig ->
- findClassAndLoadMemberAnnotations(container, proto, sig)
- } ?: listOf()
+ val nameResolver = container.nameResolver
+ val syntheticFunctionSignature = getPropertySignature(proto, nameResolver, synthetic = true)
+ val fieldSignature = getPropertySignature(proto, nameResolver, field = true)
- val fieldAnnotations = fieldSignature?.let { sig ->
- findClassAndLoadMemberAnnotations(container, proto, sig, isStaticFieldInOuter(proto))
- } ?: listOf()
+ val propertyAnnotations = syntheticFunctionSignature?.let { sig ->
+ findClassAndLoadMemberAnnotations(container, proto, sig)
+ }.orEmpty()
- loadPropertyAnnotations(propertyAnnotations, fieldAnnotations)
- }
- else -> emptyList()
+ val fieldAnnotations = fieldSignature?.let { sig ->
+ findClassAndLoadMemberAnnotations(container, proto, sig, isStaticFieldInOuter(proto))
+ }.orEmpty()
+
+ return loadPropertyAnnotations(propertyAnnotations, fieldAnnotations)
}
+
+ val signature = getCallableSignature(proto, container.nameResolver, kind) ?: return emptyList()
+ return transformAnnotations(findClassAndLoadMemberAnnotations(container, proto, signature))
}
protected abstract fun loadPropertyAnnotations(propertyAnnotations: List, fieldAnnotations: List): List
@@ -299,6 +297,9 @@ public abstract class AbstractBinaryClassAnnotationAndConstantLoader {
+ MemberSignature.fromMethod(nameResolver, proto.getExtension(constructorSignature))
+ }
proto is ProtoBuf.Function && proto.hasExtension(methodSignature) -> {
MemberSignature.fromMethod(nameResolver, proto.getExtension(methodSignature))
}