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
@@ -119,6 +119,10 @@ extend Type {
optional bool is_raw = 101;
}
extend TypeParameter {
repeated Annotation type_parameter_annotation = 100;
}
extend ValueParameter {
// Index of the corresponding parameter of this method in JVM (counting receiver parameters, enum constructor synthetic parameters, etc.)
optional int32 index = 100;
@@ -166,6 +166,10 @@ public abstract class AbstractBinaryClassAnnotationAndConstantLoader<A : Any, C
return type.getExtension(JvmProtoBuf.typeAnnotation).map { loadTypeAnnotation(it, nameResolver) }
}
override fun loadTypeParameterAnnotations(typeParameter: ProtoBuf.TypeParameter, nameResolver: NameResolver): List<A> {
return typeParameter.getExtension(JvmProtoBuf.typeParameterAnnotation).map { loadTypeAnnotation(it, nameResolver) }
}
override fun loadPropertyConstant(container: ProtoContainer, proto: ProtoBuf.Property, expectedType: JetType): C? {
val nameResolver = container.nameResolver
val signature = getCallableSignature(proto, nameResolver, container.typeTable, AnnotatedCallableKind.PROPERTY) ?: return null
@@ -14,6 +14,7 @@ public final class JvmProtoBuf {
registry.add(org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.propertyImplClassName);
registry.add(org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.typeAnnotation);
registry.add(org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.isRaw);
registry.add(org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.typeParameterAnnotation);
registry.add(org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.index);
registry.add(org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf.classAnnotation);
}
@@ -3939,6 +3940,21 @@ public final class JvmProtoBuf {
null,
101,
com.google.protobuf.WireFormat.FieldType.BOOL);
public static final int TYPE_PARAMETER_ANNOTATION_FIELD_NUMBER = 100;
/**
* <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,
100,
com.google.protobuf.WireFormat.FieldType.MESSAGE,
false);
public static final int INDEX_FIELD_NUMBER = 100;
/**
* <code>extend .org.jetbrains.kotlin.serialization.ValueParameter { ... }</code>