Write version requirements for @JvmField in interface companion

This commit is contained in:
Mikhael Bogdanov
2018-06-27 08:43:32 +02:00
parent b412c90cef
commit e00b7a993f
8 changed files with 49 additions and 9 deletions
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.DescriptorUtils.*
import org.jetbrains.kotlin.resolve.MemberComparator
import org.jetbrains.kotlin.resolve.RequireKotlinNames
import org.jetbrains.kotlin.resolve.annotations.hasJvmDefaultAnnotation
import org.jetbrains.kotlin.resolve.calls.components.isActualParameterWithAnyExpectedDefault
import org.jetbrains.kotlin.resolve.checkers.KotlinVersionStringAnnotationValueChecker
import org.jetbrains.kotlin.resolve.constants.EnumValue
@@ -241,7 +240,7 @@ class DescriptorSerializer private constructor(
builder.versionRequirement = writeVersionRequirementDependingOnCoroutinesVersion()
}
extension.serializeProperty(descriptor, builder)
extension.serializeProperty(descriptor, builder, versionRequirementTable)
return builder
}
@@ -44,7 +44,11 @@ abstract class SerializerExtension {
open fun serializeFunction(descriptor: FunctionDescriptor, proto: ProtoBuf.Function.Builder) {
}
open fun serializeProperty(descriptor: PropertyDescriptor, proto: ProtoBuf.Property.Builder) {
open fun serializeProperty(
descriptor: PropertyDescriptor,
proto: ProtoBuf.Property.Builder,
versionRequirementTable: MutableVersionRequirementTable
) {
}
open fun serializeEnumEntry(descriptor: ClassDescriptor, proto: ProtoBuf.EnumEntry.Builder) {
@@ -53,7 +53,11 @@ open class KotlinSerializerExtensionBase(private val protocol: SerializerExtensi
}
}
override fun serializeProperty(descriptor: PropertyDescriptor, proto: ProtoBuf.Property.Builder) {
override fun serializeProperty(
descriptor: PropertyDescriptor,
proto: ProtoBuf.Property.Builder,
versionRequirementTable: MutableVersionRequirementTable
) {
for (annotation in descriptor.nonSourceAnnotations) {
proto.addExtension(protocol.propertyAnnotation, annotationSerializer.serializeAnnotation(annotation))
}