diff --git a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt
index b4d0319d34e..489c44b7499 100644
--- a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt
+++ b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt
@@ -45,11 +45,34 @@ public class BuiltInsSerializerExtension : SerializerExtension() {
override fun serializeCallable(callable: CallableMemberDescriptor, proto: ProtoBuf.Callable.Builder) {
for (annotation in callable.annotations) {
- proto.addExtension(BuiltInsProtoBuf.callableAnnotation, annotationSerializer.serializeAnnotation(annotation))
+ proto.addExtension(BuiltInsProtoBuf.oldCallableAnnotation, annotationSerializer.serializeAnnotation(annotation))
}
val propertyDescriptor = callable as? PropertyDescriptor ?: return
val compileTimeConstant = propertyDescriptor.compileTimeInitializer
if (compileTimeConstant != null && compileTimeConstant !is NullValue) {
+ val valueProto = annotationSerializer.valueProto(compileTimeConstant)
+ proto.setExtension(BuiltInsProtoBuf.oldCompileTimeValue, valueProto.build())
+ }
+ }
+
+ override fun serializeConstructor(descriptor: ConstructorDescriptor, proto: ProtoBuf.Constructor.Builder) {
+ for (annotation in descriptor.annotations) {
+ proto.addExtension(BuiltInsProtoBuf.constructorAnnotation, annotationSerializer.serializeAnnotation(annotation))
+ }
+ }
+
+ override fun serializeFunction(descriptor: FunctionDescriptor, proto: ProtoBuf.Function.Builder) {
+ for (annotation in descriptor.annotations) {
+ proto.addExtension(BuiltInsProtoBuf.functionAnnotation, annotationSerializer.serializeAnnotation(annotation))
+ }
+ }
+
+ override fun serializeProperty(descriptor: PropertyDescriptor, proto: ProtoBuf.Property.Builder) {
+ for (annotation in descriptor.annotations) {
+ proto.addExtension(BuiltInsProtoBuf.propertyAnnotation, annotationSerializer.serializeAnnotation(annotation))
+ }
+ val compileTimeConstant = descriptor.compileTimeInitializer ?: return
+ if (compileTimeConstant !is NullValue) {
val valueProto = annotationSerializer.valueProto(compileTimeConstant)
proto.setExtension(BuiltInsProtoBuf.compileTimeValue, valueProto.build())
}
diff --git a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/DebugBuiltInsProtoBuf.java b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/DebugBuiltInsProtoBuf.java
index e9e06130ac1..d2877296f7d 100644
--- a/compiler/tests/org/jetbrains/kotlin/serialization/builtins/DebugBuiltInsProtoBuf.java
+++ b/compiler/tests/org/jetbrains/kotlin/serialization/builtins/DebugBuiltInsProtoBuf.java
@@ -9,7 +9,11 @@ public final class DebugBuiltInsProtoBuf {
com.google.protobuf.ExtensionRegistry registry) {
registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.className);
registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.classAnnotation);
- registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.callableAnnotation);
+ registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.oldCallableAnnotation);
+ registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.oldCompileTimeValue);
+ registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.constructorAnnotation);
+ registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.functionAnnotation);
+ registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.propertyAnnotation);
registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.compileTimeValue);
registry.add(org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf.parameterAnnotation);
}
@@ -35,24 +39,68 @@ public final class DebugBuiltInsProtoBuf {
.newFileScopedGeneratedExtension(
org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.class,
org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance());
- public static final int CALLABLE_ANNOTATION_FIELD_NUMBER = 150;
+ public static final int OLD_CALLABLE_ANNOTATION_FIELD_NUMBER = 150;
/**
* extend .org.jetbrains.kotlin.serialization.Callable { ... }
*/
public static final
com.google.protobuf.GeneratedMessage.GeneratedExtension<
org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable,
- java.util.List> callableAnnotation = com.google.protobuf.GeneratedMessage
+ java.util.List> oldCallableAnnotation = com.google.protobuf.GeneratedMessage
+ .newFileScopedGeneratedExtension(
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.class,
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance());
+ public static final int OLD_COMPILE_TIME_VALUE_FIELD_NUMBER = 151;
+ /**
+ * extend .org.jetbrains.kotlin.serialization.Callable { ... }
+ */
+ public static final
+ com.google.protobuf.GeneratedMessage.GeneratedExtension<
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable,
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value> oldCompileTimeValue = com.google.protobuf.GeneratedMessage
+ .newFileScopedGeneratedExtension(
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.class,
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.getDefaultInstance());
+ public static final int CONSTRUCTOR_ANNOTATION_FIELD_NUMBER = 150;
+ /**
+ * extend .org.jetbrains.kotlin.serialization.Constructor { ... }
+ */
+ public static final
+ com.google.protobuf.GeneratedMessage.GeneratedExtension<
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Constructor,
+ java.util.List> constructorAnnotation = com.google.protobuf.GeneratedMessage
+ .newFileScopedGeneratedExtension(
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.class,
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance());
+ public static final int FUNCTION_ANNOTATION_FIELD_NUMBER = 150;
+ /**
+ * extend .org.jetbrains.kotlin.serialization.Function { ... }
+ */
+ public static final
+ com.google.protobuf.GeneratedMessage.GeneratedExtension<
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Function,
+ java.util.List> functionAnnotation = com.google.protobuf.GeneratedMessage
+ .newFileScopedGeneratedExtension(
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.class,
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance());
+ public static final int PROPERTY_ANNOTATION_FIELD_NUMBER = 150;
+ /**
+ * extend .org.jetbrains.kotlin.serialization.Property { ... }
+ */
+ public static final
+ com.google.protobuf.GeneratedMessage.GeneratedExtension<
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Property,
+ java.util.List> propertyAnnotation = com.google.protobuf.GeneratedMessage
.newFileScopedGeneratedExtension(
org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.class,
org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.getDefaultInstance());
public static final int COMPILE_TIME_VALUE_FIELD_NUMBER = 151;
/**
- * extend .org.jetbrains.kotlin.serialization.Callable { ... }
+ * extend .org.jetbrains.kotlin.serialization.Property { ... }
*/
public static final
com.google.protobuf.GeneratedMessage.GeneratedExtension<
- org.jetbrains.kotlin.serialization.DebugProtoBuf.Callable,
+ org.jetbrains.kotlin.serialization.DebugProtoBuf.Property,
org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value> compileTimeValue = com.google.protobuf.GeneratedMessage
.newFileScopedGeneratedExtension(
org.jetbrains.kotlin.serialization.DebugProtoBuf.Annotation.Argument.Value.class,
@@ -85,17 +133,30 @@ public final class DebugBuiltInsProtoBuf {
"e\030\226\001 \003(\005B\002\020\001:t\n\020class_annotation\022).org.j" +
"etbrains.kotlin.serialization.Class\030\226\001 \003" +
"(\0132..org.jetbrains.kotlin.serialization." +
- "Annotation:z\n\023callable_annotation\022,.org." +
- "jetbrains.kotlin.serialization.Callable\030",
- "\226\001 \003(\0132..org.jetbrains.kotlin.serializat" +
- "ion.Annotation:\210\001\n\022compile_time_value\022,." +
- "org.jetbrains.kotlin.serialization.Calla" +
- "ble\030\227\001 \001(\0132=.org.jetbrains.kotlin.serial" +
- "ization.Annotation.Argument.Value:\201\001\n\024pa" +
- "rameter_annotation\0222.org.jetbrains.kotli" +
- "n.serialization.ValueParameter\030\226\001 \003(\0132.." +
- "org.jetbrains.kotlin.serialization.Annot" +
- "ationB\027B\025DebugBuiltInsProtoBuf"
+ "Annotation:~\n\027old_callable_annotation\022,." +
+ "org.jetbrains.kotlin.serialization.Calla",
+ "ble\030\226\001 \003(\0132..org.jetbrains.kotlin.serial" +
+ "ization.Annotation:\214\001\n\026old_compile_time_" +
+ "value\022,.org.jetbrains.kotlin.serializati" +
+ "on.Callable\030\227\001 \001(\0132=.org.jetbrains.kotli" +
+ "n.serialization.Annotation.Argument.Valu" +
+ "e:\200\001\n\026constructor_annotation\022/.org.jetbr" +
+ "ains.kotlin.serialization.Constructor\030\226\001" +
+ " \003(\0132..org.jetbrains.kotlin.serializatio" +
+ "n.Annotation:z\n\023function_annotation\022,.or" +
+ "g.jetbrains.kotlin.serialization.Functio",
+ "n\030\226\001 \003(\0132..org.jetbrains.kotlin.serializ" +
+ "ation.Annotation:z\n\023property_annotation\022" +
+ ",.org.jetbrains.kotlin.serialization.Pro" +
+ "perty\030\226\001 \003(\0132..org.jetbrains.kotlin.seri" +
+ "alization.Annotation:\210\001\n\022compile_time_va" +
+ "lue\022,.org.jetbrains.kotlin.serialization" +
+ ".Property\030\227\001 \001(\0132=.org.jetbrains.kotlin." +
+ "serialization.Annotation.Argument.Value:" +
+ "\201\001\n\024parameter_annotation\0222.org.jetbrains" +
+ ".kotlin.serialization.ValueParameter\030\226\001 ",
+ "\003(\0132..org.jetbrains.kotlin.serialization" +
+ ".AnnotationB\027B\025DebugBuiltInsProtoBuf"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -104,9 +165,13 @@ public final class DebugBuiltInsProtoBuf {
descriptor = root;
className.internalInit(descriptor.getExtensions().get(0));
classAnnotation.internalInit(descriptor.getExtensions().get(1));
- callableAnnotation.internalInit(descriptor.getExtensions().get(2));
- compileTimeValue.internalInit(descriptor.getExtensions().get(3));
- parameterAnnotation.internalInit(descriptor.getExtensions().get(4));
+ oldCallableAnnotation.internalInit(descriptor.getExtensions().get(2));
+ oldCompileTimeValue.internalInit(descriptor.getExtensions().get(3));
+ constructorAnnotation.internalInit(descriptor.getExtensions().get(4));
+ functionAnnotation.internalInit(descriptor.getExtensions().get(5));
+ propertyAnnotation.internalInit(descriptor.getExtensions().get(6));
+ compileTimeValue.internalInit(descriptor.getExtensions().get(7));
+ parameterAnnotation.internalInit(descriptor.getExtensions().get(8));
return null;
}
};
diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsAnnotationAndConstantLoader.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsAnnotationAndConstantLoader.kt
index be76e0f0d5b..4bae9d8aa7d 100644
--- a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsAnnotationAndConstantLoader.kt
+++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsAnnotationAndConstantLoader.kt
@@ -46,7 +46,7 @@ class BuiltInsAnnotationAndConstantLoader(
): List {
proto as ProtoBuf.Callable // TODO
- val annotations = proto.getExtension(BuiltInsProtoBuf.callableAnnotation).orEmpty()
+ val annotations = proto.getExtension(BuiltInsProtoBuf.oldCallableAnnotation).orEmpty()
return annotations.map { proto -> AnnotationWithTarget(deserializer.deserializeAnnotation(proto, container.nameResolver), null) }
}
@@ -77,7 +77,7 @@ class BuiltInsAnnotationAndConstantLoader(
proto: ProtoBuf.Callable,
expectedType: JetType
): ConstantValue<*>? {
- val value = proto.getExtension(BuiltInsProtoBuf.compileTimeValue)
+ val value = proto.getExtension(BuiltInsProtoBuf.oldCompileTimeValue)
return deserializer.resolveValue(expectedType, value, container.nameResolver)
}
}
diff --git a/core/deserialization/src/builtins.proto b/core/deserialization/src/builtins.proto
index b4c11da5ce6..fb72c6a227f 100644
--- a/core/deserialization/src/builtins.proto
+++ b/core/deserialization/src/builtins.proto
@@ -31,7 +31,20 @@ extend Class {
}
extend Callable {
- repeated Annotation callable_annotation = 150;
+ repeated Annotation old_callable_annotation = 150;
+ optional Annotation.Argument.Value old_compile_time_value = 151;
+}
+
+extend Constructor {
+ repeated Annotation constructor_annotation = 150;
+}
+
+extend Function {
+ repeated Annotation function_annotation = 150;
+}
+
+extend Property {
+ repeated Annotation property_annotation = 150;
optional Annotation.Argument.Value compile_time_value = 151;
}
diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsProtoBuf.java b/core/deserialization/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsProtoBuf.java
index 19b0eb8f4db..6200ff6dc4e 100644
--- a/core/deserialization/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsProtoBuf.java
+++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsProtoBuf.java
@@ -9,7 +9,11 @@ public final class BuiltInsProtoBuf {
com.google.protobuf.ExtensionRegistryLite registry) {
registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.className);
registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.classAnnotation);
- registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.callableAnnotation);
+ registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.oldCallableAnnotation);
+ registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.oldCompileTimeValue);
+ registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.constructorAnnotation);
+ registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.functionAnnotation);
+ registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.propertyAnnotation);
registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.compileTimeValue);
registry.add(org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf.parameterAnnotation);
}
@@ -43,14 +47,14 @@ public final class BuiltInsProtoBuf {
150,
com.google.protobuf.WireFormat.FieldType.MESSAGE,
false);
- public static final int CALLABLE_ANNOTATION_FIELD_NUMBER = 150;
+ public static final int OLD_CALLABLE_ANNOTATION_FIELD_NUMBER = 150;
/**
* extend .org.jetbrains.kotlin.serialization.Callable { ... }
*/
public static final
com.google.protobuf.GeneratedMessageLite.GeneratedExtension<
org.jetbrains.kotlin.serialization.ProtoBuf.Callable,
- java.util.List> callableAnnotation = com.google.protobuf.GeneratedMessageLite
+ java.util.List> oldCallableAnnotation = com.google.protobuf.GeneratedMessageLite
.newRepeatedGeneratedExtension(
org.jetbrains.kotlin.serialization.ProtoBuf.Callable.getDefaultInstance(),
org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.getDefaultInstance(),
@@ -58,14 +62,14 @@ public final class BuiltInsProtoBuf {
150,
com.google.protobuf.WireFormat.FieldType.MESSAGE,
false);
- public static final int COMPILE_TIME_VALUE_FIELD_NUMBER = 151;
+ public static final int OLD_COMPILE_TIME_VALUE_FIELD_NUMBER = 151;
/**
* extend .org.jetbrains.kotlin.serialization.Callable { ... }
*/
public static final
com.google.protobuf.GeneratedMessageLite.GeneratedExtension<
org.jetbrains.kotlin.serialization.ProtoBuf.Callable,
- org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.Argument.Value> compileTimeValue = com.google.protobuf.GeneratedMessageLite
+ org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.Argument.Value> oldCompileTimeValue = com.google.protobuf.GeneratedMessageLite
.newSingularGeneratedExtension(
org.jetbrains.kotlin.serialization.ProtoBuf.Callable.getDefaultInstance(),
org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.Argument.Value.getDefaultInstance(),
@@ -73,6 +77,66 @@ public final class BuiltInsProtoBuf {
null,
151,
com.google.protobuf.WireFormat.FieldType.MESSAGE);
+ public static final int CONSTRUCTOR_ANNOTATION_FIELD_NUMBER = 150;
+ /**
+ * extend .org.jetbrains.kotlin.serialization.Constructor { ... }
+ */
+ public static final
+ com.google.protobuf.GeneratedMessageLite.GeneratedExtension<
+ org.jetbrains.kotlin.serialization.ProtoBuf.Constructor,
+ java.util.List> constructorAnnotation = com.google.protobuf.GeneratedMessageLite
+ .newRepeatedGeneratedExtension(
+ org.jetbrains.kotlin.serialization.ProtoBuf.Constructor.getDefaultInstance(),
+ org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.getDefaultInstance(),
+ null,
+ 150,
+ com.google.protobuf.WireFormat.FieldType.MESSAGE,
+ false);
+ public static final int FUNCTION_ANNOTATION_FIELD_NUMBER = 150;
+ /**
+ * extend .org.jetbrains.kotlin.serialization.Function { ... }
+ */
+ public static final
+ com.google.protobuf.GeneratedMessageLite.GeneratedExtension<
+ org.jetbrains.kotlin.serialization.ProtoBuf.Function,
+ java.util.List> functionAnnotation = com.google.protobuf.GeneratedMessageLite
+ .newRepeatedGeneratedExtension(
+ org.jetbrains.kotlin.serialization.ProtoBuf.Function.getDefaultInstance(),
+ org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.getDefaultInstance(),
+ null,
+ 150,
+ com.google.protobuf.WireFormat.FieldType.MESSAGE,
+ false);
+ public static final int PROPERTY_ANNOTATION_FIELD_NUMBER = 150;
+ /**
+ * extend .org.jetbrains.kotlin.serialization.Property { ... }
+ */
+ public static final
+ com.google.protobuf.GeneratedMessageLite.GeneratedExtension<
+ org.jetbrains.kotlin.serialization.ProtoBuf.Property,
+ java.util.List> propertyAnnotation = com.google.protobuf.GeneratedMessageLite
+ .newRepeatedGeneratedExtension(
+ org.jetbrains.kotlin.serialization.ProtoBuf.Property.getDefaultInstance(),
+ org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.getDefaultInstance(),
+ null,
+ 150,
+ com.google.protobuf.WireFormat.FieldType.MESSAGE,
+ false);
+ public static final int COMPILE_TIME_VALUE_FIELD_NUMBER = 151;
+ /**
+ * extend .org.jetbrains.kotlin.serialization.Property { ... }
+ */
+ public static final
+ com.google.protobuf.GeneratedMessageLite.GeneratedExtension<
+ org.jetbrains.kotlin.serialization.ProtoBuf.Property,
+ org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.Argument.Value> compileTimeValue = com.google.protobuf.GeneratedMessageLite
+ .newSingularGeneratedExtension(
+ org.jetbrains.kotlin.serialization.ProtoBuf.Property.getDefaultInstance(),
+ org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.Argument.Value.getDefaultInstance(),
+ org.jetbrains.kotlin.serialization.ProtoBuf.Annotation.Argument.Value.getDefaultInstance(),
+ null,
+ 151,
+ com.google.protobuf.WireFormat.FieldType.MESSAGE);
public static final int PARAMETER_ANNOTATION_FIELD_NUMBER = 150;
/**
* extend .org.jetbrains.kotlin.serialization.ValueParameter { ... }