Introduce extension for built-ins serialization, drop .kotlin_class_names

This commit is contained in:
Alexander Udalov
2014-12-01 13:40:26 +03:00
parent f19aa2290c
commit 9a86318908
11 changed files with 248 additions and 79 deletions
@@ -22,12 +22,9 @@ import org.jetbrains.jet.config.CompilerConfiguration
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment
import org.jetbrains.jet.descriptors.serialization.*
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
import java.util.ArrayList
import org.jetbrains.jet.lang.resolve.name.Name
import java.io.ByteArrayOutputStream
import java.io.DataOutputStream
import org.jetbrains.jet.lang.types.lang.BuiltInsSerializationUtil
import org.jetbrains.jet.lang.resolve.DescriptorUtils
import com.intellij.openapi.Disposable
import org.jetbrains.jet.cli.common.CLIConfigurationKeys
import org.jetbrains.jet.config.CommonConfigurationKeys
@@ -44,6 +41,23 @@ import org.jetbrains.jet.analyzer.ModuleContent
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils
import org.jetbrains.jet.lang.resolve.scopes.DescriptorKindFilter
import org.jetbrains.jet.cli.jvm.compiler.EnvironmentConfigFiles
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor
private object BuiltInsSerializerExtension : SerializerExtension() {
override fun serializePackage(
packageFragments: Collection<PackageFragmentDescriptor>,
proto: ProtoBuf.Package.Builder,
stringTable: StringTable
) {
val classes = packageFragments.flatMap {
it.getMemberScope().getDescriptors(DescriptorKindFilter.CLASSIFIERS).filterIsInstance<ClassDescriptor>()
}
for (descriptor in DescriptorSerializer.sort(classes)) {
proto.addExtension(BuiltInsProtoBuf.className, stringTable.getSimpleNameIndex(descriptor.getName()))
}
}
}
public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) {
private var totalSize = 0
@@ -107,9 +121,8 @@ public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) {
// TODO: perform some kind of validation? At the moment not possible because DescriptorValidator is in compiler-tests
// DescriptorValidator.validate(packageView)
val serializer = DescriptorSerializer.createTopLevel(SerializerExtension.DEFAULT)
val serializer = DescriptorSerializer.createTopLevel(BuiltInsSerializerExtension)
val classNames = ArrayList<Name>()
val classifierDescriptors = DescriptorSerializer.sort(packageView.getMemberScope().getDescriptors(DescriptorKindFilter.CLASSIFIERS))
ClassSerializationUtil.serializeClasses(classifierDescriptors, serializer, object : ClassSerializationUtil.Sink {
@@ -117,17 +130,9 @@ public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) {
val stream = ByteArrayOutputStream()
classProto.writeTo(stream)
write(destDir, getFileName(classDescriptor), stream)
if (DescriptorUtils.isTopLevelDeclaration(classDescriptor)) {
classNames.add(classDescriptor.getName())
}
}
})
val classNamesStream = ByteArrayOutputStream()
writeClassNames(serializer, classNames, classNamesStream)
write(destDir, BuiltInsSerializationUtil.getClassNamesFilePath(fqName), classNamesStream)
val packageStream = ByteArrayOutputStream()
val fragments = module.getPackageFragmentProvider().getPackageFragments(fqName)
val packageProto = serializer.packageProto(fragments).build() ?: error("Package fragments not serialized: $fragments")
@@ -139,16 +144,6 @@ public class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) {
write(destDir, BuiltInsSerializationUtil.getStringTableFilePath(fqName).first(), nameStream)
}
fun writeClassNames(serializer: DescriptorSerializer, classNames: List<Name>, stream: ByteArrayOutputStream) {
val nameTable = serializer.getStringTable()
DataOutputStream(stream) use { output ->
output.writeInt(classNames.size())
for (className in classNames) {
output.writeInt(nameTable.getSimpleNameIndex(className))
}
}
}
fun write(destDir: File, fileName: String, stream: ByteArrayOutputStream) {
totalSize += stream.size()
totalFiles++
@@ -0,0 +1,57 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: core/serialization/src/builtins.debug.proto
package org.jetbrains.jet.descriptors.serialization;
public final class DebugBuiltInsProtoBuf {
private DebugBuiltInsProtoBuf() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
registry.add(org.jetbrains.jet.descriptors.serialization.DebugBuiltInsProtoBuf.className);
}
public static final int CLASS_NAME_FIELD_NUMBER = 150;
/**
* <code>extend .org.jetbrains.jet.descriptors.serialization.Package { ... }</code>
*/
public static final
com.google.protobuf.GeneratedMessage.GeneratedExtension<
org.jetbrains.jet.descriptors.serialization.DebugProtoBuf.Package,
java.util.List<java.lang.Integer>> className = com.google.protobuf.GeneratedMessage
.newFileScopedGeneratedExtension(
java.lang.Integer.class,
null);
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n+core/serialization/src/builtins.debug." +
"proto\022+org.jetbrains.jet.descriptors.ser" +
"ialization\032.core/serialization/src/descr" +
"iptors.debug.proto:M\n\nclass_name\0224.org.j" +
"etbrains.jet.descriptors.serialization.P" +
"ackage\030\226\001 \003(\005B\002\020\001B\027B\025DebugBuiltInsProtoB" +
"uf"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
public com.google.protobuf.ExtensionRegistry assignDescriptors(
com.google.protobuf.Descriptors.FileDescriptor root) {
descriptor = root;
className.internalInit(descriptor.getExtensions().get(0));
return null;
}
};
com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
org.jetbrains.jet.descriptors.serialization.DebugProtoBuf.getDescriptor(),
}, assigner);
}
// @@protoc_insertion_point(outer_class_scope)
}
@@ -10091,8 +10091,9 @@ public final class DebugProtoBuf {
// @@protoc_insertion_point(class_scope:org.jetbrains.jet.descriptors.serialization.Class)
}
public interface PackageOrBuilder
extends com.google.protobuf.MessageOrBuilder {
public interface PackageOrBuilder extends
com.google.protobuf.GeneratedMessage.
ExtendableMessageOrBuilder<Package> {
// repeated .org.jetbrains.jet.descriptors.serialization.Callable member = 1;
/**
@@ -10123,10 +10124,10 @@ public final class DebugProtoBuf {
* Protobuf type {@code org.jetbrains.jet.descriptors.serialization.Package}
*/
public static final class Package extends
com.google.protobuf.GeneratedMessage
implements PackageOrBuilder {
com.google.protobuf.GeneratedMessage.ExtendableMessage<
Package> implements PackageOrBuilder {
// Use Package.newBuilder() to construct.
private Package(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
private Package(com.google.protobuf.GeneratedMessage.ExtendableBuilder<org.jetbrains.jet.descriptors.serialization.DebugProtoBuf.Package, ?> builder) {
super(builder);
this.unknownFields = builder.getUnknownFields();
}
@@ -10270,6 +10271,10 @@ public final class DebugProtoBuf {
return false;
}
}
if (!extensionsAreInitialized()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
}
@@ -10277,9 +10282,13 @@ public final class DebugProtoBuf {
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
com.google.protobuf.GeneratedMessage
.ExtendableMessage<org.jetbrains.jet.descriptors.serialization.DebugProtoBuf.Package>.ExtensionWriter extensionWriter =
newExtensionWriter();
for (int i = 0; i < member_.size(); i++) {
output.writeMessage(1, member_.get(i));
}
extensionWriter.writeUntil(200, output);
getUnknownFields().writeTo(output);
}
@@ -10293,6 +10302,7 @@ public final class DebugProtoBuf {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, member_.get(i));
}
size += extensionsSerializedSize();
size += getUnknownFields().getSerializedSize();
memoizedSerializedSize = size;
return size;
@@ -10375,8 +10385,8 @@ public final class DebugProtoBuf {
* Protobuf type {@code org.jetbrains.jet.descriptors.serialization.Package}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessage.Builder<Builder>
implements org.jetbrains.jet.descriptors.serialization.DebugProtoBuf.PackageOrBuilder {
com.google.protobuf.GeneratedMessage.ExtendableBuilder<
org.jetbrains.jet.descriptors.serialization.DebugProtoBuf.Package, Builder> implements org.jetbrains.jet.descriptors.serialization.DebugProtoBuf.PackageOrBuilder {
public static final com.google.protobuf.Descriptors.Descriptor
getDescriptor() {
return org.jetbrains.jet.descriptors.serialization.DebugProtoBuf.internal_static_org_jetbrains_jet_descriptors_serialization_Package_descriptor;
@@ -10493,6 +10503,7 @@ public final class DebugProtoBuf {
}
}
}
this.mergeExtensionFields(other);
this.mergeUnknownFields(other.getUnknownFields());
return this;
}
@@ -10504,6 +10515,10 @@ public final class DebugProtoBuf {
return false;
}
}
if (!extensionsAreInitialized()) {
return false;
}
return true;
}
@@ -14444,33 +14459,33 @@ public final class DebugProtoBuf {
".jet.descriptors.serialization.Callable\"" +
"p\n\004Kind\022\t\n\005CLASS\020\000\022\t\n\005TRAIT\020\001\022\016\n\nENUM_CL" +
"ASS\020\002\022\016\n\nENUM_ENTRY\020\003\022\024\n\020ANNOTATION_CLAS" +
"S\020\004\022\n\n\006OBJECT\020\005\022\020\n\014CLASS_OBJECT\020\006\"P\n\007Pac" +
"S\020\004\022\n\n\006OBJECT\020\005\022\020\n\014CLASS_OBJECT\020\006\"W\n\007Pac" +
"kage\022E\n\006member\030\001 \003(\01325.org.jetbrains.jet" +
".descriptors.serialization.Callable\"\220\006\n\010" +
"Callable\022\r\n\005flags\030\001 \001(\005\022\030\n\020extra_visibil" +
"ity\030\002 \001(\t\022\024\n\014getter_flags\030\t \001(\005\022\024\n\014sette",
"r_flags\030\n \001(\005\022R\n\016type_parameter\030\004 \003(\0132:." +
"org.jetbrains.jet.descriptors.serializat" +
"ion.TypeParameter\022H\n\rreceiver_type\030\005 \001(\013" +
"21.org.jetbrains.jet.descriptors.seriali" +
"zation.Type\022\014\n\004name\030\006 \002(\005\022]\n\017value_param" +
"eter\030\007 \003(\0132D.org.jetbrains.jet.descripto" +
"rs.serialization.Callable.ValueParameter" +
"\022F\n\013return_type\030\010 \002(\01321.org.jetbrains.je" +
"t.descriptors.serialization.Type\032\305\001\n\016Val" +
"ueParameter\022\r\n\005flags\030\001 \001(\005\022\014\n\004name\030\002 \002(\005",
"\022?\n\004type\030\003 \002(\01321.org.jetbrains.jet.descr" +
"iptors.serialization.Type\022N\n\023vararg_elem" +
"ent_type\030\004 \001(\01321.org.jetbrains.jet.descr" +
"iptors.serialization.Type*\005\010d\020\310\001\"Q\n\nMemb" +
"erKind\022\017\n\013DECLARATION\020\000\022\021\n\rFAKE_OVERRIDE" +
"\020\001\022\016\n\nDELEGATION\020\002\022\017\n\013SYNTHESIZED\020\003\":\n\014C" +
"allableKind\022\007\n\003FUN\020\000\022\007\n\003VAL\020\001\022\007\n\003VAR\020\002\022\017" +
"\n\013CONSTRUCTOR\020\003*\005\010d\020\310\001*-\n\010Modality\022\t\n\005FI" +
"NAL\020\000\022\010\n\004OPEN\020\001\022\014\n\010ABSTRACT\020\002*M\n\nVisibil" +
"ity\022\014\n\010INTERNAL\020\000\022\013\n\007PRIVATE\020\001\022\r\n\tPROTEC",
"TED\020\002\022\n\n\006PUBLIC\020\003\022\t\n\005EXTRA\020\004B\022B\rDebugPro" +
"toBuf\210\001\000"
".descriptors.serialization.Callable*\005\010d\020" +
"\310\001\"\220\006\n\010Callable\022\r\n\005flags\030\001 \001(\005\022\030\n\020extra_" +
"visibility\030\002 \001(\t\022\024\n\014getter_flags\030\t \001(\005\022\024",
"\n\014setter_flags\030\n \001(\005\022R\n\016type_parameter\030\004" +
" \003(\0132:.org.jetbrains.jet.descriptors.ser" +
"ialization.TypeParameter\022H\n\rreceiver_typ" +
"e\030\005 \001(\01321.org.jetbrains.jet.descriptors." +
"serialization.Type\022\014\n\004name\030\006 \002(\005\022]\n\017valu" +
"e_parameter\030\007 \003(\0132D.org.jetbrains.jet.de" +
"scriptors.serialization.Callable.ValuePa" +
"rameter\022F\n\013return_type\030\010 \002(\01321.org.jetbr" +
"ains.jet.descriptors.serialization.Type\032" +
"\305\001\n\016ValueParameter\022\r\n\005flags\030\001 \001(\005\022\014\n\004nam",
"e\030\002 \002(\005\022?\n\004type\030\003 \002(\01321.org.jetbrains.je" +
"t.descriptors.serialization.Type\022N\n\023vara" +
"rg_element_type\030\004 \001(\01321.org.jetbrains.je" +
"t.descriptors.serialization.Type*\005\010d\020\310\001\"" +
"Q\n\nMemberKind\022\017\n\013DECLARATION\020\000\022\021\n\rFAKE_O" +
"VERRIDE\020\001\022\016\n\nDELEGATION\020\002\022\017\n\013SYNTHESIZED" +
"\020\003\":\n\014CallableKind\022\007\n\003FUN\020\000\022\007\n\003VAL\020\001\022\007\n\003" +
"VAR\020\002\022\017\n\013CONSTRUCTOR\020\003*\005\010d\020\310\001*-\n\010Modalit" +
"y\022\t\n\005FINAL\020\000\022\010\n\004OPEN\020\001\022\014\n\010ABSTRACT\020\002*M\n\n" +
"Visibility\022\014\n\010INTERNAL\020\000\022\013\n\007PRIVATE\020\001\022\r\n",
"\tPROTECTED\020\002\022\n\n\006PUBLIC\020\003\022\t\n\005EXTRA\020\004B\022B\rD" +
"ebugProtoBuf\210\001\000"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
@@ -29,6 +29,7 @@ import java.io.DataInputStream
import java.io.InputStream
import java.util.ArrayList
import org.jetbrains.jet.descriptors.serialization.context.DeserializationComponents
import com.google.protobuf.ExtensionRegistryLite
public class BuiltinsPackageFragment(
fqName: FqName,
@@ -37,31 +38,47 @@ public class BuiltinsPackageFragment(
private val loadResource: (path: String) -> InputStream?
) : PackageFragmentDescriptorImpl(module, fqName) {
private val extensionRegistry: ExtensionRegistryLite
;{
extensionRegistry = ExtensionRegistryLite.newInstance()
BuiltInsProtoBuf.registerAllExtensions(extensionRegistry)
extensionRegistry
}
private val nameResolver = BuiltInsSerializationUtil.getStringTableFilePath(fqName).let { paths ->
NameSerializationUtil.deserializeNameResolver(loadResource(paths[0]) ?: getStream(paths[1]))
}
public val provider: PackageFragmentProvider = PackageFragmentProviderImpl(listOf(this))
private val members: DeserializedPackageMemberScope =
private val members: DeserializedPackageMemberScope = run {
val proto = loadPackage()
DeserializedPackageMemberScope(
this,
loadPackage(),
proto,
nameResolver,
DeserializationComponents(
storageManager, module, BuiltInsClassDataFinder(), AnnotationAndConstantLoader.UNSUPPORTED, // TODO: support annotations
provider, FlexibleTypeCapabilitiesDeserializer.ThrowException
),
{ readClassNames() }
{ readClassNames(proto) }
)
}
private fun loadPackage(): ProtoBuf.Package {
val stream = getStream(BuiltInsSerializationUtil.getPackageFilePath(fqName))
return ProtoBuf.Package.parseFrom(stream)
return ProtoBuf.Package.parseFrom(stream, extensionRegistry)
}
private fun readClassNames(): List<Name> {
val stream = getStream(BuiltInsSerializationUtil.getClassNamesFilePath(fqName))
private fun readClassNames(proto: ProtoBuf.Package): List<Name> {
val stream = loadResource(BuiltInsSerializationUtil.getClassNamesFilePath(fqName))
if (stream == null) {
return proto.getExtension(BuiltInsProtoBuf.className)?.map { id -> nameResolver.getName(id) } ?: listOf()
}
// TODO: drop
return DataInputStream(stream).use { data ->
val size = data.readInt()
val result = ArrayList<Name>(size)
+27
View File
@@ -0,0 +1,27 @@
/*
* Copyright 2010-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.descriptors.serialization;
import "core/serialization/src/descriptors.proto";
option java_outer_classname = "BuiltInsProtoBuf";
option optimize_for = LITE_RUNTIME;
extend Package {
// id in StringTable
repeated int32 class_name = 150 [packed = true];
}
+2
View File
@@ -155,6 +155,8 @@ message Class {
message Package {
repeated Callable member = 1;
extensions 100 to 199;
}
message Callable {
@@ -0,0 +1,32 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: core/serialization/src/builtins.proto
package org.jetbrains.jet.descriptors.serialization;
public final class BuiltInsProtoBuf {
private BuiltInsProtoBuf() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistryLite registry) {
registry.add(org.jetbrains.jet.descriptors.serialization.BuiltInsProtoBuf.className);
}
public static final int CLASS_NAME_FIELD_NUMBER = 150;
/**
* <code>extend .org.jetbrains.jet.descriptors.serialization.Package { ... }</code>
*/
public static final
com.google.protobuf.GeneratedMessageLite.GeneratedExtension<
org.jetbrains.jet.descriptors.serialization.ProtoBuf.Package,
java.util.List<java.lang.Integer>> className = com.google.protobuf.GeneratedMessageLite
.newRepeatedGeneratedExtension(
org.jetbrains.jet.descriptors.serialization.ProtoBuf.Package.getDefaultInstance(),
null,
null,
150,
com.google.protobuf.WireFormat.FieldType.INT32,
true);
static {
}
// @@protoc_insertion_point(outer_class_scope)
}
@@ -418,6 +418,8 @@ public class DescriptorSerializer {
}
}
extension.serializePackage(fragments, builder, stringTable);
return builder;
}
@@ -7726,8 +7726,9 @@ public final class ProtoBuf {
// @@protoc_insertion_point(class_scope:org.jetbrains.jet.descriptors.serialization.Class)
}
public interface PackageOrBuilder
extends com.google.protobuf.MessageLiteOrBuilder {
public interface PackageOrBuilder extends
com.google.protobuf.GeneratedMessageLite.
ExtendableMessageOrBuilder<Package> {
// repeated .org.jetbrains.jet.descriptors.serialization.Callable member = 1;
/**
@@ -7748,10 +7749,10 @@ public final class ProtoBuf {
* Protobuf type {@code org.jetbrains.jet.descriptors.serialization.Package}
*/
public static final class Package extends
com.google.protobuf.GeneratedMessageLite
implements PackageOrBuilder {
com.google.protobuf.GeneratedMessageLite.ExtendableMessage<
Package> implements PackageOrBuilder {
// Use Package.newBuilder() to construct.
private Package(com.google.protobuf.GeneratedMessageLite.Builder builder) {
private Package(com.google.protobuf.GeneratedMessageLite.ExtendableBuilder<org.jetbrains.jet.descriptors.serialization.ProtoBuf.Package, ?> builder) {
super(builder);
}
@@ -7874,6 +7875,10 @@ public final class ProtoBuf {
return false;
}
}
if (!extensionsAreInitialized()) {
memoizedIsInitialized = 0;
return false;
}
memoizedIsInitialized = 1;
return true;
}
@@ -7881,9 +7886,13 @@ public final class ProtoBuf {
public void writeTo(com.google.protobuf.CodedOutputStream output)
throws java.io.IOException {
getSerializedSize();
com.google.protobuf.GeneratedMessageLite
.ExtendableMessage<org.jetbrains.jet.descriptors.serialization.ProtoBuf.Package>.ExtensionWriter extensionWriter =
newExtensionWriter();
for (int i = 0; i < member_.size(); i++) {
output.writeMessage(1, member_.get(i));
}
extensionWriter.writeUntil(200, output);
}
private int memoizedSerializedSize = -1;
@@ -7896,6 +7905,7 @@ public final class ProtoBuf {
size += com.google.protobuf.CodedOutputStream
.computeMessageSize(1, member_.get(i));
}
size += extensionsSerializedSize();
memoizedSerializedSize = size;
return size;
}
@@ -7971,9 +7981,8 @@ public final class ProtoBuf {
* Protobuf type {@code org.jetbrains.jet.descriptors.serialization.Package}
*/
public static final class Builder extends
com.google.protobuf.GeneratedMessageLite.Builder<
org.jetbrains.jet.descriptors.serialization.ProtoBuf.Package, Builder>
implements org.jetbrains.jet.descriptors.serialization.ProtoBuf.PackageOrBuilder {
com.google.protobuf.GeneratedMessageLite.ExtendableBuilder<
org.jetbrains.jet.descriptors.serialization.ProtoBuf.Package, Builder> implements org.jetbrains.jet.descriptors.serialization.ProtoBuf.PackageOrBuilder {
// Construct using org.jetbrains.jet.descriptors.serialization.ProtoBuf.Package.newBuilder()
private Builder() {
maybeForceBuilderInitialization();
@@ -8031,6 +8040,7 @@ public final class ProtoBuf {
}
}
this.mergeExtensionFields(other);
return this;
}
@@ -8041,6 +8051,10 @@ public final class ProtoBuf {
return false;
}
}
if (!extensionsAreInitialized()) {
return false;
}
return true;
}
@@ -18,10 +18,18 @@ package org.jetbrains.jet.descriptors.serialization;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor;
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor;
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
import java.util.Collection;
public abstract class SerializerExtension {
public static final SerializerExtension DEFAULT = new SerializerExtension() {};
public void serializePackage(
@NotNull Collection<PackageFragmentDescriptor> packageFragments,
@NotNull ProtoBuf.Package.Builder proto,
@NotNull StringTable stringTable
) {
}
public void serializeCallable(
@NotNull CallableMemberDescriptor callable,
@@ -34,14 +34,14 @@ fun main(args: Array<String>) {
try {
checkVersion()
val commonProto = "core/serialization/src/descriptors.proto"
val javaProto = "core/serialization.java/src/java_descriptors.proto"
execProtoc(commonProto, "core/serialization/src")
execProtoc(javaProto, "core/serialization.java/src")
modifyAndExecProtoc(commonProto, "compiler/tests")
modifyAndExecProtoc(javaProto, "compiler/tests")
for ((protoPath, outPath) in listOf(
Pair("core/serialization/src/descriptors.proto", "core/serialization/src"),
Pair("core/serialization/src/builtins.proto", "core/serialization/src"),
Pair("core/serialization.java/src/java_descriptors.proto", "core/serialization.java/src")
)) {
execProtoc(protoPath, outPath)
modifyAndExecProtoc(protoPath, "compiler/tests")
}
}
catch (e: Throwable) {
e.printStackTrace()