Serialize/deserialize annotations on type parameters

This commit is contained in:
Svetlana Isakova
2015-10-16 21:55:18 +03:00
parent b7e2604bf2
commit 25b40455ad
30 changed files with 397 additions and 131 deletions
+4
View File
@@ -46,6 +46,10 @@ extend Type {
repeated Annotation type_annotation = 130;
}
extend TypeParameter {
repeated Annotation type_parameter_annotation = 130;
}
message Classes {
// id in StringTable
repeated int32 class_name = 1 [packed = true];
@@ -14,6 +14,7 @@ public final class JsProtoBuf {
registry.add(org.jetbrains.kotlin.serialization.js.JsProtoBuf.compileTimeValue);
registry.add(org.jetbrains.kotlin.serialization.js.JsProtoBuf.parameterAnnotation);
registry.add(org.jetbrains.kotlin.serialization.js.JsProtoBuf.typeAnnotation);
registry.add(org.jetbrains.kotlin.serialization.js.JsProtoBuf.typeParameterAnnotation);
}
public interface ClassesOrBuilder
extends com.google.protobuf.MessageLiteOrBuilder {
@@ -1569,6 +1570,21 @@ public final class JsProtoBuf {
130,
com.google.protobuf.WireFormat.FieldType.MESSAGE,
false);
public static final int TYPE_PARAMETER_ANNOTATION_FIELD_NUMBER = 130;
/**
* <code>extend .org.jetbrains.kotlin.serialization.TypeParameter { ... }</code>
*/
public static final
com.google.protobuf.GeneratedMessageLite.GeneratedExtension<
org.jetbrains.kotlin.serialization.ProtoBuf.TypeParameter,
java.util.List<org.jetbrains.kotlin.serialization.ProtoBuf.Annotation>> typeParameterAnnotation = com.google.protobuf.GeneratedMessageLite
.newRepeatedGeneratedExtension(
org.jetbrains.kotlin.serialization.ProtoBuf.TypeParameter.getDefaultInstance(),
org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.getDefaultInstance(),
null,
130,
com.google.protobuf.WireFormat.FieldType.MESSAGE,
false);
static {
}
@@ -74,6 +74,11 @@ class KotlinJavascriptAnnotationAndConstantLoader(
return annotations.map { proto -> deserializer.deserializeAnnotation(proto, nameResolver) }
}
override fun loadTypeParameterAnnotations(proto: ProtoBuf.TypeParameter, nameResolver: NameResolver): List<AnnotationDescriptor> {
val annotations = proto.getExtension(JsProtoBuf.typeParameterAnnotation).orEmpty()
return annotations.map { proto -> deserializer.deserializeAnnotation(proto, nameResolver) }
}
override fun loadPropertyConstant(
container: ProtoContainer,
proto: ProtoBuf.Property,