JS PIR: move PIR proto messages to a separate file

This commit is contained in:
Anton Bannykh
2021-04-05 17:35:48 +03:00
committed by TeamCityServer
parent 8fe8419ad4
commit 923303c2c1
5 changed files with 148 additions and 142 deletions
@@ -20,7 +20,7 @@ fun main() {
generateTypeParameter()
generateValueParameter()
updateKotlinIrProto()
generateKotlinPirCarriersProto()
generateCarrierDeserializer()
generateCarrierSerializer()
}
@@ -661,27 +661,27 @@ internal object PersistentIrGenerator {
File(prefix + path).writeText(content)
}
fun updateKotlinIrProto() {
val file = File("compiler/ir/serialization.common/src/KotlinIr.proto")
fun generateKotlinPirCarriersProto() {
val file = File("compiler/ir/serialization.common/src/KotlinPirCarriers.proto")
if (!file.exists()) throw IllegalStateException("KotlinIr.proto file not found!")
val sb = StringBuilder("""
syntax = "proto2";
package org.jetbrains.kotlin.backend.common.serialization.proto;
val lines = file.readText().lines()
option java_multiple_files = true;
option java_outer_classname = "KotlinIr";
option optimize_for = LITE_RUNTIME;
val start = lines.indexOf("// PIR GENERATOR START")
if (start < 0) throw IllegalStateException("Couldn't find the '// PIR GENERATOR START' line. Don't know where to write generated messages.")
val end = lines.indexOf("// PIR GENERATOR END")
if (end < 0) throw IllegalStateException("Couldn't find the '// PIR GENERATOR END' line. Don't know where to write generated messages.")
val sb = StringBuilder(lines.subList(0, start + 1).joinToString(separator = "\n"))
import "compiler/ir/serialization.common/src/KotlinIr.proto";
// Auto-generated by compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
""".trimIndent())
for (m in protoMessages) {
sb.append("\n").append(m)
}
sb.append("\n").append(lines.subList(end, lines.size).joinToString(separator = "\n"))
file.writeText(sb.toString())
}
@@ -590,134 +590,6 @@ message IrStatement {
}
}
/* ------- Persistent IR Carriers --------------------------------------------- */
// Auto-generated by compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
// PIR GENERATOR START
message PirAnonymousInitializerCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
optional int32 body = 5;
}
message PirClassCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
optional int64 thisReceiver = 5;
repeated int64 typeParameters = 6;
repeated int32 superTypes = 7;
optional int64 flags = 8 [default = 0];
}
message PirConstructorCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
required int32 returnTypeField = 5;
optional int64 dispatchReceiverParameter = 6;
optional int64 extensionReceiverParameter = 7;
optional int32 body = 8;
repeated int64 typeParameters = 9;
repeated int64 valueParameters = 10;
optional int64 flags = 11 [default = 0];
}
message PirEnumEntryCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
optional int64 correspondingClass = 5;
optional int32 initializerExpression = 6;
}
message PirErrorDeclarationCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
}
message PirFieldCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
required int32 type = 5;
optional int32 initializer = 6;
optional int64 correspondingPropertySymbol = 7;
}
message PirFunctionCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
required int32 returnTypeField = 5;
optional int64 dispatchReceiverParameter = 6;
optional int64 extensionReceiverParameter = 7;
optional int32 body = 8;
repeated int64 typeParameters = 9;
repeated int64 valueParameters = 10;
optional int64 correspondingPropertySymbol = 11;
repeated int64 overriddenSymbols = 12;
optional int64 flags = 13 [default = 0];
}
message PirLocalDelegatedPropertyCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
required int32 type = 5;
optional IrVariable delegate = 6;
optional int64 getter = 7;
optional int64 setter = 8;
}
message PirPropertyCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
optional int64 backingField = 5;
optional int64 getter = 6;
optional int64 setter = 7;
}
message PirTypeAliasCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
repeated int64 typeParameters = 5;
required int32 expandedType = 6;
}
message PirTypeParameterCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
repeated int32 superTypes = 5;
}
message PirValueParameterCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
optional int32 defaultValue = 5;
required int32 type = 6;
optional int32 varargElementType = 7;
}
// PIR GENERATOR END
message PirBodyCarrier {
required int32 lastModified = 1;
optional int64 containerFieldSymbol = 2;
@@ -0,0 +1,133 @@
syntax = "proto2";
package org.jetbrains.kotlin.backend.common.serialization.proto;
option java_multiple_files = true;
option java_outer_classname = "KotlinIr";
option optimize_for = LITE_RUNTIME;
import "compiler/ir/serialization.common/src/KotlinIr.proto";
// Auto-generated by compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/persistentIrGenerator/Main.kt. DO NOT EDIT!
message PirAnonymousInitializerCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
optional int32 body = 5;
}
message PirClassCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
optional int64 thisReceiver = 5;
repeated int64 typeParameters = 6;
repeated int32 superTypes = 7;
optional int64 flags = 8 [default = 0];
}
message PirConstructorCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
required int32 returnTypeField = 5;
optional int64 dispatchReceiverParameter = 6;
optional int64 extensionReceiverParameter = 7;
optional int32 body = 8;
repeated int64 typeParameters = 9;
repeated int64 valueParameters = 10;
optional int64 flags = 11 [default = 0];
}
message PirEnumEntryCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
optional int64 correspondingClass = 5;
optional int32 initializerExpression = 6;
}
message PirErrorDeclarationCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
}
message PirFieldCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
required int32 type = 5;
optional int32 initializer = 6;
optional int64 correspondingPropertySymbol = 7;
}
message PirFunctionCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
required int32 returnTypeField = 5;
optional int64 dispatchReceiverParameter = 6;
optional int64 extensionReceiverParameter = 7;
optional int32 body = 8;
repeated int64 typeParameters = 9;
repeated int64 valueParameters = 10;
optional int64 correspondingPropertySymbol = 11;
repeated int64 overriddenSymbols = 12;
optional int64 flags = 13 [default = 0];
}
message PirLocalDelegatedPropertyCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
required int32 type = 5;
optional IrVariable delegate = 6;
optional int64 getter = 7;
optional int64 setter = 8;
}
message PirPropertyCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
optional int64 backingField = 5;
optional int64 getter = 6;
optional int64 setter = 7;
}
message PirTypeAliasCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
repeated int64 typeParameters = 5;
required int32 expandedType = 6;
}
message PirTypeParameterCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
repeated int32 superTypes = 5;
}
message PirValueParameterCarrier {
required int32 lastModified = 1;
optional int64 parentSymbol = 2;
optional int32 origin = 3;
repeated IrConstructorCall annotation = 4;
optional int32 defaultValue = 5;
required int32 type = 6;
optional int32 varargElementType = 7;
}
@@ -49,6 +49,7 @@ val PROTO_PATHS: List<ProtoPath> = listOf(
ProtoPath("build-common/src/java_descriptors.proto"),
ProtoPath("compiler/util-klib-metadata/src/KlibMetadataProtoBuf.proto"),
ProtoPath("compiler/ir/serialization.common/src/KotlinIr.proto", false),
ProtoPath("compiler/ir/serialization.common/src/KotlinPirCarriers.proto", false),
ProtoPath("plugins/kotlin-serialization/kotlin-serialization-compiler/src/class_extensions.proto", generateDebug = false)
)