Remove confusing outdated code about copying JVM signatures
This was necessary with old package facades, but not anymore because metadata is written separately to file classes and codegen now never tries to serialize deserialized descriptors
This commit is contained in:
+10
-76
@@ -29,9 +29,6 @@ import org.jetbrains.kotlin.serialization.AnnotationSerializer;
|
|||||||
import org.jetbrains.kotlin.serialization.ProtoBuf;
|
import org.jetbrains.kotlin.serialization.ProtoBuf;
|
||||||
import org.jetbrains.kotlin.serialization.SerializerExtension;
|
import org.jetbrains.kotlin.serialization.SerializerExtension;
|
||||||
import org.jetbrains.kotlin.serialization.StringTable;
|
import org.jetbrains.kotlin.serialization.StringTable;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPropertyDescriptor;
|
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedSimpleFunctionDescriptor;
|
|
||||||
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf;
|
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf;
|
||||||
import org.jetbrains.kotlin.types.JetType;
|
import org.jetbrains.kotlin.types.JetType;
|
||||||
import org.jetbrains.org.objectweb.asm.Type;
|
import org.jetbrains.org.objectweb.asm.Type;
|
||||||
@@ -88,8 +85,7 @@ public class JvmSerializerExtension extends SerializerExtension {
|
|||||||
public void serializeConstructor(@NotNull ConstructorDescriptor descriptor, @NotNull ProtoBuf.Constructor.Builder proto) {
|
public void serializeConstructor(@NotNull ConstructorDescriptor descriptor, @NotNull ProtoBuf.Constructor.Builder proto) {
|
||||||
Method method = bindings.get(METHOD_FOR_FUNCTION, descriptor);
|
Method method = bindings.get(METHOD_FOR_FUNCTION, descriptor);
|
||||||
if (method != null) {
|
if (method != null) {
|
||||||
JvmProtoBuf.JvmMethodSignature signature = new SignatureSerializer().methodSignature(method);
|
proto.setExtension(JvmProtoBuf.constructorSignature, new SignatureSerializer().methodSignature(method));
|
||||||
proto.setExtension(JvmProtoBuf.constructorSignature, signature);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
saveImplClassName(descriptor, proto);
|
saveImplClassName(descriptor, proto);
|
||||||
@@ -97,22 +93,9 @@ public class JvmSerializerExtension extends SerializerExtension {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void serializeFunction(@NotNull FunctionDescriptor descriptor, @NotNull ProtoBuf.Function.Builder proto) {
|
public void serializeFunction(@NotNull FunctionDescriptor descriptor, @NotNull ProtoBuf.Function.Builder proto) {
|
||||||
SignatureSerializer signatureSerializer = new SignatureSerializer();
|
Method method = bindings.get(METHOD_FOR_FUNCTION, descriptor);
|
||||||
|
if (method != null) {
|
||||||
JvmProtoBuf.JvmMethodSignature signature;
|
proto.setExtension(JvmProtoBuf.methodSignature, new SignatureSerializer().methodSignature(method));
|
||||||
if (descriptor instanceof DeserializedSimpleFunctionDescriptor) {
|
|
||||||
DeserializedSimpleFunctionDescriptor deserialized = (DeserializedSimpleFunctionDescriptor) descriptor;
|
|
||||||
signature = signatureSerializer.copyMethodSignature(
|
|
||||||
deserialized.getProto().getExtension(JvmProtoBuf.methodSignature), deserialized.getNameResolver()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
Method method = bindings.get(METHOD_FOR_FUNCTION, descriptor);
|
|
||||||
signature = method != null ? signatureSerializer.methodSignature(method) : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (signature != null) {
|
|
||||||
proto.setExtension(JvmProtoBuf.methodSignature, signature);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
saveImplClassName(descriptor, proto);
|
saveImplClassName(descriptor, proto);
|
||||||
@@ -144,22 +127,12 @@ public class JvmSerializerExtension extends SerializerExtension {
|
|||||||
|
|
||||||
Method syntheticMethod = bindings.get(SYNTHETIC_METHOD_FOR_PROPERTY, descriptor);
|
Method syntheticMethod = bindings.get(SYNTHETIC_METHOD_FOR_PROPERTY, descriptor);
|
||||||
|
|
||||||
JvmProtoBuf.JvmPropertySignature signature;
|
JvmProtoBuf.JvmPropertySignature signature = signatureSerializer.propertySignature(
|
||||||
if (descriptor instanceof DeserializedPropertyDescriptor) {
|
fieldName, fieldDesc, isStaticInOuter,
|
||||||
DeserializedPropertyDescriptor deserializedCallable = (DeserializedPropertyDescriptor) descriptor;
|
syntheticMethod != null ? signatureSerializer.methodSignature(syntheticMethod) : null,
|
||||||
signature = signatureSerializer.copyPropertySignature(
|
getterMethod != null ? signatureSerializer.methodSignature(getterMethod) : null,
|
||||||
deserializedCallable.getProto().getExtension(JvmProtoBuf.propertySignature),
|
setterMethod != null ? signatureSerializer.methodSignature(setterMethod) : null
|
||||||
deserializedCallable.getNameResolver()
|
);
|
||||||
);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
signature = signatureSerializer.propertySignature(
|
|
||||||
fieldName, fieldDesc, isStaticInOuter,
|
|
||||||
syntheticMethod != null ? signatureSerializer.methodSignature(syntheticMethod) : null,
|
|
||||||
getterMethod != null ? signatureSerializer.methodSignature(getterMethod) : null,
|
|
||||||
setterMethod != null ? signatureSerializer.methodSignature(setterMethod) : null
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
proto.setExtension(JvmProtoBuf.propertySignature, signature);
|
proto.setExtension(JvmProtoBuf.propertySignature, signature);
|
||||||
|
|
||||||
@@ -180,17 +153,6 @@ public class JvmSerializerExtension extends SerializerExtension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class SignatureSerializer {
|
private class SignatureSerializer {
|
||||||
@NotNull
|
|
||||||
public JvmProtoBuf.JvmMethodSignature copyMethodSignature(
|
|
||||||
@NotNull JvmProtoBuf.JvmMethodSignature signature,
|
|
||||||
@NotNull NameResolver nameResolver
|
|
||||||
) {
|
|
||||||
return methodSignature(new Method(
|
|
||||||
nameResolver.getString(signature.getName()),
|
|
||||||
nameResolver.getString(signature.getDesc())
|
|
||||||
));
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public JvmProtoBuf.JvmMethodSignature methodSignature(@NotNull Method method) {
|
public JvmProtoBuf.JvmMethodSignature methodSignature(@NotNull Method method) {
|
||||||
return JvmProtoBuf.JvmMethodSignature.newBuilder()
|
return JvmProtoBuf.JvmMethodSignature.newBuilder()
|
||||||
@@ -199,34 +161,6 @@ public class JvmSerializerExtension extends SerializerExtension {
|
|||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public JvmProtoBuf.JvmPropertySignature copyPropertySignature(
|
|
||||||
@NotNull JvmProtoBuf.JvmPropertySignature signature,
|
|
||||||
@NotNull NameResolver nameResolver
|
|
||||||
) {
|
|
||||||
String fieldName;
|
|
||||||
String fieldDesc;
|
|
||||||
boolean isStaticInOuter;
|
|
||||||
if (signature.hasField()) {
|
|
||||||
JvmProtoBuf.JvmFieldSignature field = signature.getField();
|
|
||||||
fieldName = nameResolver.getString(field.getName());
|
|
||||||
fieldDesc = nameResolver.getString(field.getDesc());
|
|
||||||
isStaticInOuter = field.getIsStaticInOuter();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
fieldName = null;
|
|
||||||
fieldDesc = null;
|
|
||||||
isStaticInOuter = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return propertySignature(
|
|
||||||
fieldName, fieldDesc, isStaticInOuter,
|
|
||||||
signature.hasSyntheticMethod() ? copyMethodSignature(signature.getSyntheticMethod(), nameResolver) : null,
|
|
||||||
signature.hasGetter() ? copyMethodSignature(signature.getGetter(), nameResolver) : null,
|
|
||||||
signature.hasSetter() ? copyMethodSignature(signature.getSetter(), nameResolver) : null
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public JvmProtoBuf.JvmPropertySignature propertySignature(
|
public JvmProtoBuf.JvmPropertySignature propertySignature(
|
||||||
@Nullable String fieldName,
|
@Nullable String fieldName,
|
||||||
|
|||||||
Reference in New Issue
Block a user