Rename NameSerializationUtil, move serialization-related code there
This commit is contained in:
@@ -59,10 +59,7 @@ import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmClassSignature;
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterKind;
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterKind;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterSignature;
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodParameterSignature;
|
||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature;
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature;
|
||||||
import org.jetbrains.kotlin.serialization.ClassData;
|
import org.jetbrains.kotlin.serialization.*;
|
||||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer;
|
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf;
|
|
||||||
import org.jetbrains.kotlin.serialization.StringTable;
|
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
||||||
import org.jetbrains.kotlin.serialization.jvm.BitEncoding;
|
import org.jetbrains.kotlin.serialization.jvm.BitEncoding;
|
||||||
import org.jetbrains.kotlin.types.JetType;
|
import org.jetbrains.kotlin.types.JetType;
|
||||||
@@ -253,7 +250,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
|||||||
kind.toString()
|
kind.toString()
|
||||||
);
|
);
|
||||||
AnnotationVisitor array = av.visitArray(JvmAnnotationNames.DATA_FIELD_NAME);
|
AnnotationVisitor array = av.visitArray(JvmAnnotationNames.DATA_FIELD_NAME);
|
||||||
for (String string : BitEncoding.encodeBytes(data.toBytes())) {
|
for (String string : BitEncoding.encodeBytes(SerializationUtil.serializeClassData(data))) {
|
||||||
array.visit(null, string);
|
array.visit(null, string);
|
||||||
}
|
}
|
||||||
array.visitEnd();
|
array.visitEnd();
|
||||||
|
|||||||
@@ -49,10 +49,7 @@ import org.jetbrains.kotlin.resolve.MemberComparator;
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature;
|
import org.jetbrains.kotlin.resolve.jvm.jvmSignature.JvmMethodSignature;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter;
|
||||||
import org.jetbrains.kotlin.resolve.scopes.JetScope;
|
import org.jetbrains.kotlin.resolve.scopes.JetScope;
|
||||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer;
|
import org.jetbrains.kotlin.serialization.*;
|
||||||
import org.jetbrains.kotlin.serialization.PackageData;
|
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf;
|
|
||||||
import org.jetbrains.kotlin.serialization.StringTable;
|
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor;
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedCallableMemberDescriptor;
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPropertyDescriptor;
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPropertyDescriptor;
|
||||||
@@ -286,7 +283,7 @@ public class PackageCodegen {
|
|||||||
AnnotationVisitor av = v.newAnnotation(asmDescByFqNameWithoutInnerClasses(JvmAnnotationNames.KOTLIN_PACKAGE), true);
|
AnnotationVisitor av = v.newAnnotation(asmDescByFqNameWithoutInnerClasses(JvmAnnotationNames.KOTLIN_PACKAGE), true);
|
||||||
av.visit(JvmAnnotationNames.ABI_VERSION_FIELD_NAME, JvmAbi.VERSION);
|
av.visit(JvmAnnotationNames.ABI_VERSION_FIELD_NAME, JvmAbi.VERSION);
|
||||||
AnnotationVisitor array = av.visitArray(JvmAnnotationNames.DATA_FIELD_NAME);
|
AnnotationVisitor array = av.visitArray(JvmAnnotationNames.DATA_FIELD_NAME);
|
||||||
for (String string : BitEncoding.encodeBytes(data.toBytes())) {
|
for (String string : BitEncoding.encodeBytes(SerializationUtil.serializePackageData(data))) {
|
||||||
array.visit(null, string);
|
array.visit(null, string);
|
||||||
}
|
}
|
||||||
array.visitEnd();
|
array.visitEnd();
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade
|
|||||||
import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters
|
import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
||||||
import org.jetbrains.kotlin.serialization.NameSerializationUtil
|
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
|
import org.jetbrains.kotlin.serialization.SerializationUtil
|
||||||
import org.jetbrains.kotlin.utils.recursePostOrder
|
import org.jetbrains.kotlin.utils.recursePostOrder
|
||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -136,7 +136,7 @@ public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) {
|
|||||||
|
|
||||||
val nameStream = ByteArrayOutputStream()
|
val nameStream = ByteArrayOutputStream()
|
||||||
val strings = serializer.getStringTable()
|
val strings = serializer.getStringTable()
|
||||||
NameSerializationUtil.serializeStringTable(nameStream, strings.serializeSimpleNames(), strings.serializeQualifiedNames())
|
SerializationUtil.serializeStringTable(nameStream, strings.serializeSimpleNames(), strings.serializeQualifiedNames())
|
||||||
write(destDir, BuiltInsSerializationUtil.getStringTableFilePath(fqName), nameStream)
|
write(destDir, BuiltInsSerializationUtil.getStringTableFilePath(fqName), nameStream)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
|||||||
import org.jetbrains.kotlin.utils.UtilsPackage;
|
import org.jetbrains.kotlin.utils.UtilsPackage;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public final class ClassData {
|
public final class ClassData {
|
||||||
@@ -56,17 +55,4 @@ public final class ClassData {
|
|||||||
public ProtoBuf.Class getClassProto() {
|
public ProtoBuf.Class getClassProto() {
|
||||||
return classProto;
|
return classProto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public byte[] toBytes() {
|
|
||||||
try {
|
|
||||||
ByteArrayOutputStream result = new ByteArrayOutputStream();
|
|
||||||
NameSerializationUtil.serializeNameResolver(result, nameResolver);
|
|
||||||
classProto.writeTo(result);
|
|
||||||
return result.toByteArray();
|
|
||||||
}
|
|
||||||
catch (IOException e) {
|
|
||||||
throw UtilsPackage.rethrow(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
|||||||
import org.jetbrains.kotlin.utils.UtilsPackage;
|
import org.jetbrains.kotlin.utils.UtilsPackage;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public final class PackageData {
|
public final class PackageData {
|
||||||
@@ -56,17 +55,4 @@ public final class PackageData {
|
|||||||
public ProtoBuf.Package getPackageProto() {
|
public ProtoBuf.Package getPackageProto() {
|
||||||
return packageProto;
|
return packageProto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public byte[] toBytes() {
|
|
||||||
try {
|
|
||||||
ByteArrayOutputStream result = new ByteArrayOutputStream();
|
|
||||||
NameSerializationUtil.serializeNameResolver(result, nameResolver);
|
|
||||||
packageProto.writeTo(result);
|
|
||||||
return result.toByteArray();
|
|
||||||
}
|
|
||||||
catch (IOException e) {
|
|
||||||
throw UtilsPackage.rethrow(e);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+30
-3
@@ -20,14 +20,41 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
|
||||||
import org.jetbrains.kotlin.utils.UtilsPackage;
|
import org.jetbrains.kotlin.utils.UtilsPackage;
|
||||||
|
|
||||||
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
|
||||||
public class NameSerializationUtil {
|
public class SerializationUtil {
|
||||||
private NameSerializationUtil() {
|
private SerializationUtil() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void serializeNameResolver(@NotNull OutputStream out, @NotNull NameResolver nameResolver) {
|
@NotNull
|
||||||
|
public static byte[] serializeClassData(@NotNull ClassData classData) {
|
||||||
|
try {
|
||||||
|
ByteArrayOutputStream result = new ByteArrayOutputStream();
|
||||||
|
serializeNameResolver(result, classData.getNameResolver());
|
||||||
|
classData.getClassProto().writeTo(result);
|
||||||
|
return result.toByteArray();
|
||||||
|
}
|
||||||
|
catch (IOException e) {
|
||||||
|
throw UtilsPackage.rethrow(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public static byte[] serializePackageData(@NotNull PackageData packageData) {
|
||||||
|
try {
|
||||||
|
ByteArrayOutputStream result = new ByteArrayOutputStream();
|
||||||
|
serializeNameResolver(result, packageData.getNameResolver());
|
||||||
|
packageData.getPackageProto().writeTo(result);
|
||||||
|
return result.toByteArray();
|
||||||
|
}
|
||||||
|
catch (IOException e) {
|
||||||
|
throw UtilsPackage.rethrow(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void serializeNameResolver(@NotNull OutputStream out, @NotNull NameResolver nameResolver) {
|
||||||
serializeStringTable(out, nameResolver.getStringTable(), nameResolver.getQualifiedNameTable());
|
serializeStringTable(out, nameResolver.getStringTable(), nameResolver.getQualifiedNameTable());
|
||||||
}
|
}
|
||||||
|
|
||||||
+2
-2
@@ -25,8 +25,8 @@ import org.jetbrains.kotlin.resolve.DescriptorUtils
|
|||||||
import org.jetbrains.kotlin.resolve.descriptorUtil.classId
|
import org.jetbrains.kotlin.resolve.descriptorUtil.classId
|
||||||
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
|
||||||
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
import org.jetbrains.kotlin.serialization.DescriptorSerializer
|
||||||
import org.jetbrains.kotlin.serialization.NameSerializationUtil
|
|
||||||
import org.jetbrains.kotlin.serialization.ProtoBuf
|
import org.jetbrains.kotlin.serialization.ProtoBuf
|
||||||
|
import org.jetbrains.kotlin.serialization.SerializationUtil
|
||||||
import org.jetbrains.kotlin.serialization.builtins.BuiltInsSerializerExtension
|
import org.jetbrains.kotlin.serialization.builtins.BuiltInsSerializerExtension
|
||||||
import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil
|
import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil
|
||||||
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
||||||
@@ -75,7 +75,7 @@ public class KotlinJavaScriptSerializer() {
|
|||||||
|
|
||||||
val nameStream = ByteArrayOutputStream()
|
val nameStream = ByteArrayOutputStream()
|
||||||
val strings = serializer.getStringTable()
|
val strings = serializer.getStringTable()
|
||||||
NameSerializationUtil.serializeStringTable(nameStream, strings.serializeSimpleNames(), strings.serializeQualifiedNames())
|
SerializationUtil.serializeStringTable(nameStream, strings.serializeSimpleNames(), strings.serializeQualifiedNames())
|
||||||
writeFun(BuiltInsSerializationUtil.getStringTableFilePath(fqName), nameStream)
|
writeFun(BuiltInsSerializationUtil.getStringTableFilePath(fqName), nameStream)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user