Support annotations on property accessors in JS/common metadata

#KT-14529 Fixed
This commit is contained in:
Alexander Udalov
2018-10-01 18:34:04 +02:00
parent d1e1e274d9
commit 1ee1d15b91
27 changed files with 443 additions and 106 deletions
@@ -61,6 +61,12 @@ abstract class KotlinSerializerExtensionBase(private val protocol: SerializerExt
for (annotation in descriptor.nonSourceAnnotations) {
proto.addExtension(protocol.propertyAnnotation, annotationSerializer.serializeAnnotation(annotation))
}
for (annotation in descriptor.getter?.nonSourceAnnotations.orEmpty()) {
proto.addExtension(protocol.propertyGetterAnnotation, annotationSerializer.serializeAnnotation(annotation))
}
for (annotation in descriptor.setter?.nonSourceAnnotations.orEmpty()) {
proto.addExtension(protocol.propertySetterAnnotation, annotationSerializer.serializeAnnotation(annotation))
}
val constantInitializer = descriptor.compileTimeInitializer ?: return
if (constantInitializer !is NullValue) {
proto.setExtension(protocol.compileTimeValue, annotationSerializer.valueProto(constantInitializer).build())