From c86dc0d7afc199066ccb5ba6889b3346b9cf86a1 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Thu, 2 Nov 2017 14:51:48 +0300 Subject: [PATCH] Add protobuf extensions to serialized Java descriptors #KT-17621 In Progress --- build-common/src/java_descriptors.proto | 40 +++ .../incremental/ProtoCompareGenerated.kt | 204 +++++++++++++++- .../incremental/protoDifferenceUtils.kt | 10 + .../serialization/java/JavaClassProtoBuf.java | 118 +++++++++ .../kotlin/serialization/DebugProtoBuf.java | 230 +++++++++--------- .../java/DebugJavaClassProtoBuf.java | 132 ++++++++++ core/deserialization/src/descriptors.proto | 10 +- .../kotlin/serialization/ProtoBuf.java | 8 +- .../generators/protobuf/GenerateProtoBuf.kt | 3 +- .../protobuf/GenerateProtoBufCompare.kt | 17 +- 10 files changed, 642 insertions(+), 130 deletions(-) create mode 100644 build-common/src/java_descriptors.proto create mode 100644 build-common/src/org/jetbrains/kotlin/serialization/java/JavaClassProtoBuf.java create mode 100644 build-common/test/org/jetbrains/kotlin/serialization/java/DebugJavaClassProtoBuf.java diff --git a/build-common/src/java_descriptors.proto b/build-common/src/java_descriptors.proto new file mode 100644 index 00000000000..d5ca422346b --- /dev/null +++ b/build-common/src/java_descriptors.proto @@ -0,0 +1,40 @@ +/* + * Copyright 2010-2015 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.kotlin.serialization.java; + +import "core/deserialization/src/descriptors.proto"; + +option java_outer_classname = "JavaClassProtoBuf"; +option optimize_for = LITE_RUNTIME; + +extend Function { + optional bool is_static_method = 1000; + optional bool is_package_private_method = 1001; +} + +extend Property { + optional bool is_static_field = 1000; + optional bool is_package_private_field = 1001; +} + +extend Class { + optional bool is_package_private_class = 1000; +} + +extend Constructor { + optional bool is_package_private_constructor = 1000; +} diff --git a/build-common/src/org/jetbrains/kotlin/incremental/ProtoCompareGenerated.kt b/build-common/src/org/jetbrains/kotlin/incremental/ProtoCompareGenerated.kt index fdb051253a7..29075635d2d 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/ProtoCompareGenerated.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/ProtoCompareGenerated.kt @@ -19,8 +19,10 @@ package org.jetbrains.kotlin.incremental import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.serialization.ProtoBuf import org.jetbrains.kotlin.serialization.deserialization.NameResolver +import org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf import org.jetbrains.kotlin.serialization.js.JsProtoBuf +import org.jetbrains.kotlin.serialization.java.JavaClassProtoBuf import org.jetbrains.kotlin.utils.Interner import java.util.* @@ -71,6 +73,11 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR if (old.getExtension(JsProtoBuf.packageFqName) != new.getExtension(JsProtoBuf.packageFqName)) return false } + if (old.hasExtension(BuiltInsProtoBuf.packageFqName) != new.hasExtension(BuiltInsProtoBuf.packageFqName)) return false + if (old.hasExtension(BuiltInsProtoBuf.packageFqName)) { + if (old.getExtension(BuiltInsProtoBuf.packageFqName) != new.getExtension(BuiltInsProtoBuf.packageFqName)) return false + } + return true } enum class ProtoBufPackageKind { @@ -81,7 +88,8 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR VERSION_REQUIREMENT_TABLE, JVM_EXT_PACKAGE_MODULE_NAME, JVM_EXT_PACKAGE_LOCAL_VARIABLE_LIST, - JS_EXT_PACKAGE_FQ_NAME + JS_EXT_PACKAGE_FQ_NAME, + BUILT_INS_EXT_PACKAGE_FQ_NAME } fun difference(old: ProtoBuf.Package, new: ProtoBuf.Package): EnumSet { @@ -122,6 +130,11 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR if (old.getExtension(JsProtoBuf.packageFqName) != new.getExtension(JsProtoBuf.packageFqName)) result.add(ProtoBufPackageKind.JS_EXT_PACKAGE_FQ_NAME) } + if (old.hasExtension(BuiltInsProtoBuf.packageFqName) != new.hasExtension(BuiltInsProtoBuf.packageFqName)) result.add(ProtoBufPackageKind.BUILT_INS_EXT_PACKAGE_FQ_NAME) + if (old.hasExtension(BuiltInsProtoBuf.packageFqName)) { + if (old.getExtension(BuiltInsProtoBuf.packageFqName) != new.getExtension(BuiltInsProtoBuf.packageFqName)) result.add(ProtoBufPackageKind.BUILT_INS_EXT_PACKAGE_FQ_NAME) + } + return result } @@ -201,6 +214,20 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR if (old.getExtension(JsProtoBuf.classContainingFileId) != new.getExtension(JsProtoBuf.classContainingFileId)) return false } + if (old.hasExtension(JavaClassProtoBuf.isPackagePrivateClass) != new.hasExtension(JavaClassProtoBuf.isPackagePrivateClass)) return false + if (old.hasExtension(JavaClassProtoBuf.isPackagePrivateClass)) { + if (old.getExtension(JavaClassProtoBuf.isPackagePrivateClass) != new.getExtension(JavaClassProtoBuf.isPackagePrivateClass)) return false + } + + if (old.getExtensionCount(BuiltInsProtoBuf.classAnnotation) != new.getExtensionCount(BuiltInsProtoBuf.classAnnotation)) { + return false + } + else { + for(i in 0..old.getExtensionCount(BuiltInsProtoBuf.classAnnotation) - 1) { + if (!checkEquals(old.getExtension(BuiltInsProtoBuf.classAnnotation, i), new.getExtension(BuiltInsProtoBuf.classAnnotation, i))) return false + } + } + return true } enum class ProtoBufClassKind { @@ -223,7 +250,9 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR JVM_EXT_CLASS_MODULE_NAME, JVM_EXT_CLASS_LOCAL_VARIABLE_LIST, JS_EXT_CLASS_ANNOTATION_LIST, - JS_EXT_CLASS_CONTAINING_FILE_ID + JS_EXT_CLASS_CONTAINING_FILE_ID, + JAVA_EXT_IS_PACKAGE_PRIVATE_CLASS, + BUILT_INS_EXT_CLASS_ANNOTATION_LIST } fun difference(old: ProtoBuf.Class, new: ProtoBuf.Class): EnumSet { @@ -304,6 +333,20 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR if (old.getExtension(JsProtoBuf.classContainingFileId) != new.getExtension(JsProtoBuf.classContainingFileId)) result.add(ProtoBufClassKind.JS_EXT_CLASS_CONTAINING_FILE_ID) } + if (old.hasExtension(JavaClassProtoBuf.isPackagePrivateClass) != new.hasExtension(JavaClassProtoBuf.isPackagePrivateClass)) result.add(ProtoBufClassKind.JAVA_EXT_IS_PACKAGE_PRIVATE_CLASS) + if (old.hasExtension(JavaClassProtoBuf.isPackagePrivateClass)) { + if (old.getExtension(JavaClassProtoBuf.isPackagePrivateClass) != new.getExtension(JavaClassProtoBuf.isPackagePrivateClass)) result.add(ProtoBufClassKind.JAVA_EXT_IS_PACKAGE_PRIVATE_CLASS) + } + + if (old.getExtensionCount(BuiltInsProtoBuf.classAnnotation) != new.getExtensionCount(BuiltInsProtoBuf.classAnnotation)) { + result.add(ProtoBufClassKind.BUILT_INS_EXT_CLASS_ANNOTATION_LIST) + } + else { + for(i in 0..old.getExtensionCount(BuiltInsProtoBuf.classAnnotation) - 1) { + if (!checkEquals(old.getExtension(BuiltInsProtoBuf.classAnnotation, i), new.getExtension(BuiltInsProtoBuf.classAnnotation, i))) result.add(ProtoBufClassKind.BUILT_INS_EXT_CLASS_ANNOTATION_LIST) + } + } + return result } @@ -378,6 +421,25 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR if (old.getExtension(JsProtoBuf.functionContainingFileId) != new.getExtension(JsProtoBuf.functionContainingFileId)) return false } + if (old.hasExtension(JavaClassProtoBuf.isStaticMethod) != new.hasExtension(JavaClassProtoBuf.isStaticMethod)) return false + if (old.hasExtension(JavaClassProtoBuf.isStaticMethod)) { + if (old.getExtension(JavaClassProtoBuf.isStaticMethod) != new.getExtension(JavaClassProtoBuf.isStaticMethod)) return false + } + + if (old.hasExtension(JavaClassProtoBuf.isPackagePrivateMethod) != new.hasExtension(JavaClassProtoBuf.isPackagePrivateMethod)) return false + if (old.hasExtension(JavaClassProtoBuf.isPackagePrivateMethod)) { + if (old.getExtension(JavaClassProtoBuf.isPackagePrivateMethod) != new.getExtension(JavaClassProtoBuf.isPackagePrivateMethod)) return false + } + + if (old.getExtensionCount(BuiltInsProtoBuf.functionAnnotation) != new.getExtensionCount(BuiltInsProtoBuf.functionAnnotation)) { + return false + } + else { + for(i in 0..old.getExtensionCount(BuiltInsProtoBuf.functionAnnotation) - 1) { + if (!checkEquals(old.getExtension(BuiltInsProtoBuf.functionAnnotation, i), new.getExtension(BuiltInsProtoBuf.functionAnnotation, i))) return false + } + } + return true } @@ -460,6 +522,30 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR if (old.getExtension(JsProtoBuf.propertyContainingFileId) != new.getExtension(JsProtoBuf.propertyContainingFileId)) return false } + if (old.hasExtension(JavaClassProtoBuf.isStaticField) != new.hasExtension(JavaClassProtoBuf.isStaticField)) return false + if (old.hasExtension(JavaClassProtoBuf.isStaticField)) { + if (old.getExtension(JavaClassProtoBuf.isStaticField) != new.getExtension(JavaClassProtoBuf.isStaticField)) return false + } + + if (old.hasExtension(JavaClassProtoBuf.isPackagePrivateField) != new.hasExtension(JavaClassProtoBuf.isPackagePrivateField)) return false + if (old.hasExtension(JavaClassProtoBuf.isPackagePrivateField)) { + if (old.getExtension(JavaClassProtoBuf.isPackagePrivateField) != new.getExtension(JavaClassProtoBuf.isPackagePrivateField)) return false + } + + if (old.getExtensionCount(BuiltInsProtoBuf.propertyAnnotation) != new.getExtensionCount(BuiltInsProtoBuf.propertyAnnotation)) { + return false + } + else { + for(i in 0..old.getExtensionCount(BuiltInsProtoBuf.propertyAnnotation) - 1) { + if (!checkEquals(old.getExtension(BuiltInsProtoBuf.propertyAnnotation, i), new.getExtension(BuiltInsProtoBuf.propertyAnnotation, i))) return false + } + } + + if (old.hasExtension(BuiltInsProtoBuf.compileTimeValue) != new.hasExtension(BuiltInsProtoBuf.compileTimeValue)) return false + if (old.hasExtension(BuiltInsProtoBuf.compileTimeValue)) { + if (!checkEquals(old.getExtension(BuiltInsProtoBuf.compileTimeValue), new.getExtension(BuiltInsProtoBuf.compileTimeValue))) return false + } + return true } @@ -557,6 +643,15 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR } } + if (old.getExtensionCount(BuiltInsProtoBuf.typeParameterAnnotation) != new.getExtensionCount(BuiltInsProtoBuf.typeParameterAnnotation)) { + return false + } + else { + for(i in 0..old.getExtensionCount(BuiltInsProtoBuf.typeParameterAnnotation) - 1) { + if (!checkEquals(old.getExtension(BuiltInsProtoBuf.typeParameterAnnotation, i), new.getExtension(BuiltInsProtoBuf.typeParameterAnnotation, i))) return false + } + } + return true } @@ -651,6 +746,15 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR } } + if (old.getExtensionCount(BuiltInsProtoBuf.typeAnnotation) != new.getExtensionCount(BuiltInsProtoBuf.typeAnnotation)) { + return false + } + else { + for(i in 0..old.getExtensionCount(BuiltInsProtoBuf.typeAnnotation) - 1) { + if (!checkEquals(old.getExtension(BuiltInsProtoBuf.typeAnnotation, i), new.getExtension(BuiltInsProtoBuf.typeAnnotation, i))) return false + } + } + return true } @@ -681,6 +785,20 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR } } + if (old.hasExtension(JavaClassProtoBuf.isPackagePrivateConstructor) != new.hasExtension(JavaClassProtoBuf.isPackagePrivateConstructor)) return false + if (old.hasExtension(JavaClassProtoBuf.isPackagePrivateConstructor)) { + if (old.getExtension(JavaClassProtoBuf.isPackagePrivateConstructor) != new.getExtension(JavaClassProtoBuf.isPackagePrivateConstructor)) return false + } + + if (old.getExtensionCount(BuiltInsProtoBuf.constructorAnnotation) != new.getExtensionCount(BuiltInsProtoBuf.constructorAnnotation)) { + return false + } + else { + for(i in 0..old.getExtensionCount(BuiltInsProtoBuf.constructorAnnotation) - 1) { + if (!checkEquals(old.getExtension(BuiltInsProtoBuf.constructorAnnotation, i), new.getExtension(BuiltInsProtoBuf.constructorAnnotation, i))) return false + } + } + return true } @@ -699,6 +817,15 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR } } + if (old.getExtensionCount(BuiltInsProtoBuf.enumEntryAnnotation) != new.getExtensionCount(BuiltInsProtoBuf.enumEntryAnnotation)) { + return false + } + else { + for(i in 0..old.getExtensionCount(BuiltInsProtoBuf.enumEntryAnnotation) - 1) { + if (!checkEquals(old.getExtension(BuiltInsProtoBuf.enumEntryAnnotation, i), new.getExtension(BuiltInsProtoBuf.enumEntryAnnotation, i))) return false + } + } + return true } @@ -747,6 +874,15 @@ open class ProtoCompareGenerated(val oldNameResolver: NameResolver, val newNameR } } + if (old.getExtensionCount(BuiltInsProtoBuf.parameterAnnotation) != new.getExtensionCount(BuiltInsProtoBuf.parameterAnnotation)) { + return false + } + else { + for(i in 0..old.getExtensionCount(BuiltInsProtoBuf.parameterAnnotation) - 1) { + if (!checkEquals(old.getExtension(BuiltInsProtoBuf.parameterAnnotation, i), new.getExtension(BuiltInsProtoBuf.parameterAnnotation, i))) return false + } + } + return true } @@ -1335,6 +1471,10 @@ fun ProtoBuf.Package.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) hashCode = 31 * hashCode + getExtension(JsProtoBuf.packageFqName) } + if (hasExtension(BuiltInsProtoBuf.packageFqName)) { + hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.packageFqName) + } + return hashCode } @@ -1419,6 +1559,14 @@ fun ProtoBuf.Class.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> hashCode = 31 * hashCode + getExtension(JsProtoBuf.classContainingFileId) } + if (hasExtension(JavaClassProtoBuf.isPackagePrivateClass)) { + hashCode = 31 * hashCode + getExtension(JavaClassProtoBuf.isPackagePrivateClass).hashCode() + } + + for(i in 0..getExtensionCount(BuiltInsProtoBuf.classAnnotation) - 1) { + hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.classAnnotation, i).hashCode(stringIndexes, fqNameIndexes) + } + return hashCode } @@ -1483,6 +1631,18 @@ fun ProtoBuf.Function.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) hashCode = 31 * hashCode + getExtension(JsProtoBuf.functionContainingFileId) } + if (hasExtension(JavaClassProtoBuf.isStaticMethod)) { + hashCode = 31 * hashCode + getExtension(JavaClassProtoBuf.isStaticMethod).hashCode() + } + + if (hasExtension(JavaClassProtoBuf.isPackagePrivateMethod)) { + hashCode = 31 * hashCode + getExtension(JavaClassProtoBuf.isPackagePrivateMethod).hashCode() + } + + for(i in 0..getExtensionCount(BuiltInsProtoBuf.functionAnnotation) - 1) { + hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.functionAnnotation, i).hashCode(stringIndexes, fqNameIndexes) + } + return hashCode } @@ -1551,6 +1711,22 @@ fun ProtoBuf.Property.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) hashCode = 31 * hashCode + getExtension(JsProtoBuf.propertyContainingFileId) } + if (hasExtension(JavaClassProtoBuf.isStaticField)) { + hashCode = 31 * hashCode + getExtension(JavaClassProtoBuf.isStaticField).hashCode() + } + + if (hasExtension(JavaClassProtoBuf.isPackagePrivateField)) { + hashCode = 31 * hashCode + getExtension(JavaClassProtoBuf.isPackagePrivateField).hashCode() + } + + for(i in 0..getExtensionCount(BuiltInsProtoBuf.propertyAnnotation) - 1) { + hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.propertyAnnotation, i).hashCode(stringIndexes, fqNameIndexes) + } + + if (hasExtension(BuiltInsProtoBuf.compileTimeValue)) { + hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.compileTimeValue).hashCode(stringIndexes, fqNameIndexes) + } + return hashCode } @@ -1649,6 +1825,10 @@ fun ProtoBuf.TypeParameter.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: hashCode = 31 * hashCode + getExtension(JsProtoBuf.typeParameterAnnotation, i).hashCode(stringIndexes, fqNameIndexes) } + for(i in 0..getExtensionCount(BuiltInsProtoBuf.typeParameterAnnotation) - 1) { + hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.typeParameterAnnotation, i).hashCode(stringIndexes, fqNameIndexes) + } + return hashCode } @@ -1723,6 +1903,10 @@ fun ProtoBuf.Type.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int) -> hashCode = 31 * hashCode + getExtension(JsProtoBuf.typeAnnotation, i).hashCode(stringIndexes, fqNameIndexes) } + for(i in 0..getExtensionCount(BuiltInsProtoBuf.typeAnnotation) - 1) { + hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.typeAnnotation, i).hashCode(stringIndexes, fqNameIndexes) + } + return hashCode } @@ -1749,6 +1933,14 @@ fun ProtoBuf.Constructor.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (I hashCode = 31 * hashCode + getExtension(JsProtoBuf.constructorAnnotation, i).hashCode(stringIndexes, fqNameIndexes) } + if (hasExtension(JavaClassProtoBuf.isPackagePrivateConstructor)) { + hashCode = 31 * hashCode + getExtension(JavaClassProtoBuf.isPackagePrivateConstructor).hashCode() + } + + for(i in 0..getExtensionCount(BuiltInsProtoBuf.constructorAnnotation) - 1) { + hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.constructorAnnotation, i).hashCode(stringIndexes, fqNameIndexes) + } + return hashCode } @@ -1763,6 +1955,10 @@ fun ProtoBuf.EnumEntry.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: (Int hashCode = 31 * hashCode + getExtension(JsProtoBuf.enumEntryAnnotation, i).hashCode(stringIndexes, fqNameIndexes) } + for(i in 0..getExtensionCount(BuiltInsProtoBuf.enumEntryAnnotation) - 1) { + hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.enumEntryAnnotation, i).hashCode(stringIndexes, fqNameIndexes) + } + return hashCode } @@ -1807,6 +2003,10 @@ fun ProtoBuf.ValueParameter.hashCode(stringIndexes: (Int) -> Int, fqNameIndexes: hashCode = 31 * hashCode + getExtension(JsProtoBuf.parameterAnnotation, i).hashCode(stringIndexes, fqNameIndexes) } + for(i in 0..getExtensionCount(BuiltInsProtoBuf.parameterAnnotation) - 1) { + hashCode = 31 * hashCode + getExtension(BuiltInsProtoBuf.parameterAnnotation, i).hashCode(stringIndexes, fqNameIndexes) + } + return hashCode } diff --git a/build-common/src/org/jetbrains/kotlin/incremental/protoDifferenceUtils.kt b/build-common/src/org/jetbrains/kotlin/incremental/protoDifferenceUtils.kt index f146ca8a478..6c070208987 100644 --- a/build-common/src/org/jetbrains/kotlin/incremental/protoDifferenceUtils.kt +++ b/build-common/src/org/jetbrains/kotlin/incremental/protoDifferenceUtils.kt @@ -244,6 +244,13 @@ class DifferenceCalculatorForClass( ProtoBufClassKind.JVM_EXT_CLASS_LOCAL_VARIABLE_LIST -> { // Not affected, local variables are not accessible outside of a file } + ProtoBufClassKind.JAVA_EXT_IS_PACKAGE_PRIVATE_CLASS -> { + isClassAffected = true + areSubclassesAffected = true + } + ProtoBufClassKind.BUILT_INS_EXT_CLASS_ANNOTATION_LIST -> { + isClassAffected = true + } } } @@ -289,6 +296,9 @@ class DifferenceCalculatorForPackageFacade( ProtoBufPackageKind.JVM_EXT_PACKAGE_LOCAL_VARIABLE_LIST -> { // Not affected, local variables are not accessible outside of a file } + ProtoBufPackageKind.BUILT_INS_EXT_PACKAGE_FQ_NAME -> { + // Not affected + } } } diff --git a/build-common/src/org/jetbrains/kotlin/serialization/java/JavaClassProtoBuf.java b/build-common/src/org/jetbrains/kotlin/serialization/java/JavaClassProtoBuf.java new file mode 100644 index 00000000000..a8b2aef2664 --- /dev/null +++ b/build-common/src/org/jetbrains/kotlin/serialization/java/JavaClassProtoBuf.java @@ -0,0 +1,118 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: build-common/src/java_descriptors.proto + +package org.jetbrains.kotlin.serialization.java; + +public final class JavaClassProtoBuf { + private JavaClassProtoBuf() {} + public static void registerAllExtensions( + org.jetbrains.kotlin.protobuf.ExtensionRegistryLite registry) { + registry.add(org.jetbrains.kotlin.serialization.java.JavaClassProtoBuf.isStaticMethod); + registry.add(org.jetbrains.kotlin.serialization.java.JavaClassProtoBuf.isPackagePrivateMethod); + registry.add(org.jetbrains.kotlin.serialization.java.JavaClassProtoBuf.isStaticField); + registry.add(org.jetbrains.kotlin.serialization.java.JavaClassProtoBuf.isPackagePrivateField); + registry.add(org.jetbrains.kotlin.serialization.java.JavaClassProtoBuf.isPackagePrivateClass); + registry.add(org.jetbrains.kotlin.serialization.java.JavaClassProtoBuf.isPackagePrivateConstructor); + } + public static final int IS_STATIC_METHOD_FIELD_NUMBER = 1000; + /** + * extend .org.jetbrains.kotlin.serialization.Function { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.GeneratedExtension< + org.jetbrains.kotlin.serialization.ProtoBuf.Function, + java.lang.Boolean> isStaticMethod = org.jetbrains.kotlin.protobuf.GeneratedMessageLite + .newSingularGeneratedExtension( + org.jetbrains.kotlin.serialization.ProtoBuf.Function.getDefaultInstance(), + false, + null, + null, + 1000, + org.jetbrains.kotlin.protobuf.WireFormat.FieldType.BOOL, + java.lang.Boolean.class); + public static final int IS_PACKAGE_PRIVATE_METHOD_FIELD_NUMBER = 1001; + /** + * extend .org.jetbrains.kotlin.serialization.Function { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.GeneratedExtension< + org.jetbrains.kotlin.serialization.ProtoBuf.Function, + java.lang.Boolean> isPackagePrivateMethod = org.jetbrains.kotlin.protobuf.GeneratedMessageLite + .newSingularGeneratedExtension( + org.jetbrains.kotlin.serialization.ProtoBuf.Function.getDefaultInstance(), + false, + null, + null, + 1001, + org.jetbrains.kotlin.protobuf.WireFormat.FieldType.BOOL, + java.lang.Boolean.class); + public static final int IS_STATIC_FIELD_FIELD_NUMBER = 1000; + /** + * extend .org.jetbrains.kotlin.serialization.Property { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.GeneratedExtension< + org.jetbrains.kotlin.serialization.ProtoBuf.Property, + java.lang.Boolean> isStaticField = org.jetbrains.kotlin.protobuf.GeneratedMessageLite + .newSingularGeneratedExtension( + org.jetbrains.kotlin.serialization.ProtoBuf.Property.getDefaultInstance(), + false, + null, + null, + 1000, + org.jetbrains.kotlin.protobuf.WireFormat.FieldType.BOOL, + java.lang.Boolean.class); + public static final int IS_PACKAGE_PRIVATE_FIELD_FIELD_NUMBER = 1001; + /** + * extend .org.jetbrains.kotlin.serialization.Property { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.GeneratedExtension< + org.jetbrains.kotlin.serialization.ProtoBuf.Property, + java.lang.Boolean> isPackagePrivateField = org.jetbrains.kotlin.protobuf.GeneratedMessageLite + .newSingularGeneratedExtension( + org.jetbrains.kotlin.serialization.ProtoBuf.Property.getDefaultInstance(), + false, + null, + null, + 1001, + org.jetbrains.kotlin.protobuf.WireFormat.FieldType.BOOL, + java.lang.Boolean.class); + public static final int IS_PACKAGE_PRIVATE_CLASS_FIELD_NUMBER = 1000; + /** + * extend .org.jetbrains.kotlin.serialization.Class { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.GeneratedExtension< + org.jetbrains.kotlin.serialization.ProtoBuf.Class, + java.lang.Boolean> isPackagePrivateClass = org.jetbrains.kotlin.protobuf.GeneratedMessageLite + .newSingularGeneratedExtension( + org.jetbrains.kotlin.serialization.ProtoBuf.Class.getDefaultInstance(), + false, + null, + null, + 1000, + org.jetbrains.kotlin.protobuf.WireFormat.FieldType.BOOL, + java.lang.Boolean.class); + public static final int IS_PACKAGE_PRIVATE_CONSTRUCTOR_FIELD_NUMBER = 1000; + /** + * extend .org.jetbrains.kotlin.serialization.Constructor { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessageLite.GeneratedExtension< + org.jetbrains.kotlin.serialization.ProtoBuf.Constructor, + java.lang.Boolean> isPackagePrivateConstructor = org.jetbrains.kotlin.protobuf.GeneratedMessageLite + .newSingularGeneratedExtension( + org.jetbrains.kotlin.serialization.ProtoBuf.Constructor.getDefaultInstance(), + false, + null, + null, + 1000, + org.jetbrains.kotlin.protobuf.WireFormat.FieldType.BOOL, + java.lang.Boolean.class); + + static { + } + + // @@protoc_insertion_point(outer_class_scope) +} \ No newline at end of file diff --git a/build-common/test/org/jetbrains/kotlin/serialization/DebugProtoBuf.java b/build-common/test/org/jetbrains/kotlin/serialization/DebugProtoBuf.java index f96bc97e9ce..a4570891db9 100644 --- a/build-common/test/org/jetbrains/kotlin/serialization/DebugProtoBuf.java +++ b/build-common/test/org/jetbrains/kotlin/serialization/DebugProtoBuf.java @@ -11047,7 +11047,7 @@ public final class DebugProtoBuf { if (((bitField0_ & 0x00000020) == 0x00000020)) { output.writeMessage(32, versionRequirementTable_); } - extensionWriter.writeUntil(200, output); + extensionWriter.writeUntil(19000, output); getUnknownFields().writeTo(output); } @@ -17077,7 +17077,7 @@ public final class DebugProtoBuf { if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeInt32(31, versionRequirement_); } - extensionWriter.writeUntil(200, output); + extensionWriter.writeUntil(19000, output); getUnknownFields().writeTo(output); } @@ -18497,7 +18497,7 @@ public final class DebugProtoBuf { if (((bitField0_ & 0x00000200) == 0x00000200)) { output.writeMessage(32, contract_); } - extensionWriter.writeUntil(200, output); + extensionWriter.writeUntil(19000, output); getUnknownFields().writeTo(output); } @@ -20974,7 +20974,7 @@ public final class DebugProtoBuf { if (((bitField0_ & 0x00000400) == 0x00000400)) { output.writeInt32(31, versionRequirement_); } - extensionWriter.writeUntil(200, output); + extensionWriter.writeUntil(19000, output); getUnknownFields().writeTo(output); } @@ -33479,7 +33479,7 @@ public final class DebugProtoBuf { "ter.Variance:\003INV\022=\n\013upper_bound\030\005 \003(\0132(" + ".org.jetbrains.kotlin.serialization.Type" + "\022\026\n\016upper_bound_id\030\006 \003(\005\"$\n\010Variance\022\006\n\002" + - "IN\020\000\022\007\n\003OUT\020\001\022\007\n\003INV\020\002*\005\010d\020\350\007\"\320\007\n\005Class\022" + + "IN\020\000\022\007\n\003OUT\020\001\022\007\n\003INV\020\002*\005\010d\020\350\007\"\321\007\n\005Class\022" + "\020\n\005flags\030\001 \001(\005:\0016\022\025\n\007fq_name\030\003 \002(\005B\004\220\265\030\001", "\022#\n\025companion_object_name\030\004 \001(\005B\004\210\265\030\001\022I\n" + "\016type_parameter\030\005 \003(\01321.org.jetbrains.ko" + @@ -33504,118 +33504,118 @@ public final class DebugProtoBuf { "x\n\004Kind\022\t\n\005CLASS\020\000\022\r\n\tINTERFACE\020\001\022\016\n\nENU" + "M_CLASS\020\002\022\016\n\nENUM_ENTRY\020\003\022\024\n\020ANNOTATION_" + "CLASS\020\004\022\n\n\006OBJECT\020\005\022\024\n\020COMPANION_OBJECT\020" + - "\006*\005\010d\020\310\001\"\366\002\n\007Package\022>\n\010function\030\003 \003(\0132," + - ".org.jetbrains.kotlin.serialization.Func" + - "tion\022>\n\010property\030\004 \003(\0132,.org.jetbrains.k" + - "otlin.serialization.Property\022A\n\ntype_ali" + - "as\030\005 \003(\0132-.org.jetbrains.kotlin.serializ" + - "ation.TypeAlias\022A\n\ntype_table\030\036 \001(\0132-.or" + - "g.jetbrains.kotlin.serialization.TypeTab", - "le\022^\n\031version_requirement_table\030 \001(\0132;." + - "org.jetbrains.kotlin.serialization.Versi" + - "onRequirementTable*\005\010d\020\310\001\"_\n\tTypeTable\0226" + - "\n\004type\030\001 \003(\0132(.org.jetbrains.kotlin.seri" + - "alization.Type\022\032\n\016first_nullable\030\002 \001(\005:\002" + - "-1\"\220\001\n\013Constructor\022\020\n\005flags\030\001 \001(\005:\0016\022K\n\017" + - "value_parameter\030\002 \003(\01322.org.jetbrains.ko" + - "tlin.serialization.ValueParameter\022\033\n\023ver" + - "sion_requirement\030\037 \001(\005*\005\010d\020\310\001\"\267\004\n\010Functi" + - "on\022\020\n\005flags\030\t \001(\005:\0016\022\024\n\told_flags\030\001 \001(\005:", - "\0016\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001\022=\n\013return_type\030\003 " + - "\001(\0132(.org.jetbrains.kotlin.serialization" + - ".Type\022\026\n\016return_type_id\030\007 \001(\005\022I\n\016type_pa" + - "rameter\030\004 \003(\01321.org.jetbrains.kotlin.ser" + - "ialization.TypeParameter\022?\n\rreceiver_typ" + - "e\030\005 \001(\0132(.org.jetbrains.kotlin.serializa" + - "tion.Type\022\030\n\020receiver_type_id\030\010 \001(\005\022K\n\017v" + - "alue_parameter\030\006 \003(\01322.org.jetbrains.kot" + - "lin.serialization.ValueParameter\022A\n\ntype" + - "_table\030\036 \001(\0132-.org.jetbrains.kotlin.seri", - "alization.TypeTable\022\033\n\023version_requireme" + - "nt\030\037 \001(\005\022>\n\010contract\030 \001(\0132,.org.jetbrai" + - "ns.kotlin.serialization.Contract*\005\010d\020\310\001\"" + - "\354\003\n\010Property\022\022\n\005flags\030\013 \001(\005:\003518\022\027\n\told_" + - "flags\030\001 \001(\005:\0042054\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001\022=\n" + - "\013return_type\030\003 \001(\0132(.org.jetbrains.kotli" + - "n.serialization.Type\022\026\n\016return_type_id\030\t" + - " \001(\005\022I\n\016type_parameter\030\004 \003(\01321.org.jetbr" + - "ains.kotlin.serialization.TypeParameter\022" + - "?\n\rreceiver_type\030\005 \001(\0132(.org.jetbrains.k", - "otlin.serialization.Type\022\030\n\020receiver_typ" + - "e_id\030\n \001(\005\022R\n\026setter_value_parameter\030\006 \001" + - "(\01322.org.jetbrains.kotlin.serialization." + - "ValueParameter\022\024\n\014getter_flags\030\007 \001(\005\022\024\n\014" + - "setter_flags\030\010 \001(\005\022\033\n\023version_requiremen" + - "t\030\037 \001(\005*\005\010d\020\310\001\"\355\001\n\016ValueParameter\022\020\n\005fla" + - "gs\030\001 \001(\005:\0010\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001\0226\n\004type\030" + + "\006*\006\010d\020\270\224\001\"\366\002\n\007Package\022>\n\010function\030\003 \003(\0132" + + ",.org.jetbrains.kotlin.serialization.Fun" + + "ction\022>\n\010property\030\004 \003(\0132,.org.jetbrains." + + "kotlin.serialization.Property\022A\n\ntype_al" + + "ias\030\005 \003(\0132-.org.jetbrains.kotlin.seriali" + + "zation.TypeAlias\022A\n\ntype_table\030\036 \001(\0132-.o" + + "rg.jetbrains.kotlin.serialization.TypeTa", + "ble\022^\n\031version_requirement_table\030 \001(\0132;" + + ".org.jetbrains.kotlin.serialization.Vers" + + "ionRequirementTable*\005\010d\020\310\001\"_\n\tTypeTable\022" + + "6\n\004type\030\001 \003(\0132(.org.jetbrains.kotlin.ser" + + "ialization.Type\022\032\n\016first_nullable\030\002 \001(\005:" + + "\002-1\"\221\001\n\013Constructor\022\020\n\005flags\030\001 \001(\005:\0016\022K\n" + + "\017value_parameter\030\002 \003(\01322.org.jetbrains.k" + + "otlin.serialization.ValueParameter\022\033\n\023ve" + + "rsion_requirement\030\037 \001(\005*\006\010d\020\270\224\001\"\270\004\n\010Func" + + "tion\022\020\n\005flags\030\t \001(\005:\0016\022\024\n\told_flags\030\001 \001(", + "\005:\0016\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001\022=\n\013return_type\030" + "\003 \001(\0132(.org.jetbrains.kotlin.serializati" + - "on.Type\022\017\n\007type_id\030\005 \001(\005\022E\n\023vararg_eleme" + - "nt_type\030\004 \001(\0132(.org.jetbrains.kotlin.ser", - "ialization.Type\022\036\n\026vararg_element_type_i" + - "d\030\006 \001(\005*\005\010d\020\310\001\"\236\003\n\tTypeAlias\022\020\n\005flags\030\001 " + - "\001(\005:\0016\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001\022I\n\016type_param" + - "eter\030\003 \003(\01321.org.jetbrains.kotlin.serial" + - "ization.TypeParameter\022A\n\017underlying_type" + - "\030\004 \001(\0132(.org.jetbrains.kotlin.serializat" + - "ion.Type\022\032\n\022underlying_type_id\030\005 \001(\005\022?\n\r" + - "expanded_type\030\006 \001(\0132(.org.jetbrains.kotl" + - "in.serialization.Type\022\030\n\020expanded_type_i" + - "d\030\007 \001(\005\022B\n\nannotation\030\010 \003(\0132..org.jetbra", - "ins.kotlin.serialization.Annotation\022\033\n\023v" + - "ersion_requirement\030\037 \001(\005*\005\010d\020\310\001\"&\n\tEnumE" + - "ntry\022\022\n\004name\030\001 \001(\005B\004\210\265\030\001*\005\010d\020\310\001\"\237\003\n\022Vers" + - "ionRequirement\022\017\n\007version\030\001 \001(\005\022\024\n\014versi" + - "on_full\030\002 \001(\005\022R\n\005level\030\003 \001(\0162<.org.jetbr" + - "ains.kotlin.serialization.VersionRequire" + - "ment.Level:\005ERROR\022\022\n\nerror_code\030\004 \001(\005\022\025\n" + - "\007message\030\005 \001(\005B\004\230\265\030\001\022j\n\014version_kind\030\006 \001" + - "(\0162B.org.jetbrains.kotlin.serialization." + - "VersionRequirement.VersionKind:\020LANGUAGE", - "_VERSION\"+\n\005Level\022\013\n\007WARNING\020\000\022\t\n\005ERROR\020" + - "\001\022\n\n\006HIDDEN\020\002\"J\n\013VersionKind\022\024\n\020LANGUAGE" + - "_VERSION\020\000\022\024\n\020COMPILER_VERSION\020\001\022\017\n\013API_" + - "VERSION\020\002\"f\n\027VersionRequirementTable\022K\n\013" + - "requirement\030\001 \003(\01326.org.jetbrains.kotlin" + - ".serialization.VersionRequirement\"\243\002\n\017Pa" + - "ckageFragment\022@\n\007strings\030\001 \001(\0132/.org.jet" + - "brains.kotlin.serialization.StringTable\022" + - "O\n\017qualified_names\030\002 \001(\01326.org.jetbrains" + - ".kotlin.serialization.QualifiedNameTable", - "\022<\n\007package\030\003 \001(\0132+.org.jetbrains.kotlin" + - ".serialization.Package\0228\n\005class\030\004 \003(\0132)." + - "org.jetbrains.kotlin.serialization.Class" + - "*\005\010d\020\310\001\"F\n\010Contract\022:\n\006effect\030\001 \003(\0132*.or" + - "g.jetbrains.kotlin.serialization.Effect\"" + - "\332\003\n\006Effect\022J\n\013effect_type\030\001 \001(\01625.org.je" + - "tbrains.kotlin.serialization.Effect.Effe" + - "ctType\022S\n\033effect_constructor_argument\030\002 " + - "\003(\0132..org.jetbrains.kotlin.serialization" + - ".Expression\022X\n conclusion_of_conditional", - "_effect\030\003 \001(\0132..org.jetbrains.kotlin.ser" + - "ialization.Expression\022G\n\004kind\030\004 \001(\01629.or" + + "on.Type\022\026\n\016return_type_id\030\007 \001(\005\022I\n\016type_" + + "parameter\030\004 \003(\01321.org.jetbrains.kotlin.s" + + "erialization.TypeParameter\022?\n\rreceiver_t" + + "ype\030\005 \001(\0132(.org.jetbrains.kotlin.seriali" + + "zation.Type\022\030\n\020receiver_type_id\030\010 \001(\005\022K\n" + + "\017value_parameter\030\006 \003(\01322.org.jetbrains.k" + + "otlin.serialization.ValueParameter\022A\n\nty" + + "pe_table\030\036 \001(\0132-.org.jetbrains.kotlin.se", + "rialization.TypeTable\022\033\n\023version_require" + + "ment\030\037 \001(\005\022>\n\010contract\030 \001(\0132,.org.jetbr" + + "ains.kotlin.serialization.Contract*\006\010d\020\270" + + "\224\001\"\355\003\n\010Property\022\022\n\005flags\030\013 \001(\005:\003518\022\027\n\to" + + "ld_flags\030\001 \001(\005:\0042054\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001" + + "\022=\n\013return_type\030\003 \001(\0132(.org.jetbrains.ko" + + "tlin.serialization.Type\022\026\n\016return_type_i" + + "d\030\t \001(\005\022I\n\016type_parameter\030\004 \003(\01321.org.je" + + "tbrains.kotlin.serialization.TypeParamet" + + "er\022?\n\rreceiver_type\030\005 \001(\0132(.org.jetbrain", + "s.kotlin.serialization.Type\022\030\n\020receiver_" + + "type_id\030\n \001(\005\022R\n\026setter_value_parameter\030" + + "\006 \001(\01322.org.jetbrains.kotlin.serializati" + + "on.ValueParameter\022\024\n\014getter_flags\030\007 \001(\005\022" + + "\024\n\014setter_flags\030\010 \001(\005\022\033\n\023version_require" + + "ment\030\037 \001(\005*\006\010d\020\270\224\001\"\355\001\n\016ValueParameter\022\020\n" + + "\005flags\030\001 \001(\005:\0010\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001\0226\n\004t" + + "ype\030\003 \001(\0132(.org.jetbrains.kotlin.seriali" + + "zation.Type\022\017\n\007type_id\030\005 \001(\005\022E\n\023vararg_e" + + "lement_type\030\004 \001(\0132(.org.jetbrains.kotlin", + ".serialization.Type\022\036\n\026vararg_element_ty" + + "pe_id\030\006 \001(\005*\005\010d\020\310\001\"\236\003\n\tTypeAlias\022\020\n\005flag" + + "s\030\001 \001(\005:\0016\022\022\n\004name\030\002 \002(\005B\004\210\265\030\001\022I\n\016type_p" + + "arameter\030\003 \003(\01321.org.jetbrains.kotlin.se" + + "rialization.TypeParameter\022A\n\017underlying_" + + "type\030\004 \001(\0132(.org.jetbrains.kotlin.serial" + + "ization.Type\022\032\n\022underlying_type_id\030\005 \001(\005" + + "\022?\n\rexpanded_type\030\006 \001(\0132(.org.jetbrains." + + "kotlin.serialization.Type\022\030\n\020expanded_ty" + + "pe_id\030\007 \001(\005\022B\n\nannotation\030\010 \003(\0132..org.je", + "tbrains.kotlin.serialization.Annotation\022" + + "\033\n\023version_requirement\030\037 \001(\005*\005\010d\020\310\001\"&\n\tE" + + "numEntry\022\022\n\004name\030\001 \001(\005B\004\210\265\030\001*\005\010d\020\310\001\"\237\003\n\022" + + "VersionRequirement\022\017\n\007version\030\001 \001(\005\022\024\n\014v" + + "ersion_full\030\002 \001(\005\022R\n\005level\030\003 \001(\0162<.org.j" + + "etbrains.kotlin.serialization.VersionReq" + + "uirement.Level:\005ERROR\022\022\n\nerror_code\030\004 \001(" + + "\005\022\025\n\007message\030\005 \001(\005B\004\230\265\030\001\022j\n\014version_kind" + + "\030\006 \001(\0162B.org.jetbrains.kotlin.serializat" + + "ion.VersionRequirement.VersionKind:\020LANG", + "UAGE_VERSION\"+\n\005Level\022\013\n\007WARNING\020\000\022\t\n\005ER" + + "ROR\020\001\022\n\n\006HIDDEN\020\002\"J\n\013VersionKind\022\024\n\020LANG" + + "UAGE_VERSION\020\000\022\024\n\020COMPILER_VERSION\020\001\022\017\n\013" + + "API_VERSION\020\002\"f\n\027VersionRequirementTable" + + "\022K\n\013requirement\030\001 \003(\01326.org.jetbrains.ko" + + "tlin.serialization.VersionRequirement\"\243\002" + + "\n\017PackageFragment\022@\n\007strings\030\001 \001(\0132/.org" + + ".jetbrains.kotlin.serialization.StringTa" + + "ble\022O\n\017qualified_names\030\002 \001(\01326.org.jetbr" + + "ains.kotlin.serialization.QualifiedNameT", + "able\022<\n\007package\030\003 \001(\0132+.org.jetbrains.ko" + + "tlin.serialization.Package\0228\n\005class\030\004 \003(" + + "\0132).org.jetbrains.kotlin.serialization.C" + + "lass*\005\010d\020\310\001\"F\n\010Contract\022:\n\006effect\030\001 \003(\0132" + + "*.org.jetbrains.kotlin.serialization.Eff" + + "ect\"\332\003\n\006Effect\022J\n\013effect_type\030\001 \001(\01625.or" + "g.jetbrains.kotlin.serialization.Effect." + - "InvocationKind\"C\n\nEffectType\022\024\n\020RETURNS_" + - "CONSTANT\020\000\022\t\n\005CALLS\020\001\022\024\n\020RETURNS_NOT_NUL" + - "L\020\002\"G\n\016InvocationKind\022\020\n\014AT_MOST_ONCE\020\000\022" + - "\020\n\014EXACTLY_ONCE\020\001\022\021\n\rAT_LEAST_ONCE\020\002\"\260\003\n" + - "\nExpression\022\r\n\005flags\030\001 \001(\005\022!\n\031value_para" + - "meter_reference\030\002 \001(\005\022T\n\016constant_value\030" + - "\003 \001(\0162<.org.jetbrains.kotlin.serializati", - "on.Expression.ConstantValue\022B\n\020is_instan" + - "ce_type\030\004 \001(\0132(.org.jetbrains.kotlin.ser" + - "ialization.Type\022\033\n\023is_instance_type_id\030\005" + - " \001(\005\022D\n\014and_argument\030\006 \003(\0132..org.jetbrai" + - "ns.kotlin.serialization.Expression\022C\n\013or" + - "_argument\030\007 \003(\0132..org.jetbrains.kotlin.s" + - "erialization.Expression\".\n\rConstantValue" + - "\022\010\n\004TRUE\020\000\022\t\n\005FALSE\020\001\022\010\n\004NULL\020\002*9\n\010Modal" + - "ity\022\t\n\005FINAL\020\000\022\010\n\004OPEN\020\001\022\014\n\010ABSTRACT\020\002\022\n" + - "\n\006SEALED\020\003*b\n\nVisibility\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\023" + - "\n\017PRIVATE_TO_THIS\020\004\022\t\n\005LOCAL\020\005*Q\n\nMember" + - "Kind\022\017\n\013DECLARATION\020\000\022\021\n\rFAKE_OVERRIDE\020\001" + - "\022\016\n\nDELEGATION\020\002\022\017\n\013SYNTHESIZED\020\003B\017B\rDeb" + - "ugProtoBuf" + "EffectType\022S\n\033effect_constructor_argumen" + + "t\030\002 \003(\0132..org.jetbrains.kotlin.serializa" + + "tion.Expression\022X\n conclusion_of_conditi", + "onal_effect\030\003 \001(\0132..org.jetbrains.kotlin" + + ".serialization.Expression\022G\n\004kind\030\004 \001(\0162" + + "9.org.jetbrains.kotlin.serialization.Eff" + + "ect.InvocationKind\"C\n\nEffectType\022\024\n\020RETU" + + "RNS_CONSTANT\020\000\022\t\n\005CALLS\020\001\022\024\n\020RETURNS_NOT" + + "_NULL\020\002\"G\n\016InvocationKind\022\020\n\014AT_MOST_ONC" + + "E\020\000\022\020\n\014EXACTLY_ONCE\020\001\022\021\n\rAT_LEAST_ONCE\020\002" + + "\"\260\003\n\nExpression\022\r\n\005flags\030\001 \001(\005\022!\n\031value_" + + "parameter_reference\030\002 \001(\005\022T\n\016constant_va" + + "lue\030\003 \001(\0162<.org.jetbrains.kotlin.seriali", + "zation.Expression.ConstantValue\022B\n\020is_in" + + "stance_type\030\004 \001(\0132(.org.jetbrains.kotlin" + + ".serialization.Type\022\033\n\023is_instance_type_" + + "id\030\005 \001(\005\022D\n\014and_argument\030\006 \003(\0132..org.jet" + + "brains.kotlin.serialization.Expression\022C" + + "\n\013or_argument\030\007 \003(\0132..org.jetbrains.kotl" + + "in.serialization.Expression\".\n\rConstantV" + + "alue\022\010\n\004TRUE\020\000\022\t\n\005FALSE\020\001\022\010\n\004NULL\020\002*9\n\010M" + + "odality\022\t\n\005FINAL\020\000\022\010\n\004OPEN\020\001\022\014\n\010ABSTRACT" + + "\020\002\022\n\n\006SEALED\020\003*b\n\nVisibility\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\023\n\017PRIVATE_TO_THIS\020\004\022\t\n\005LOCAL\020\005*Q\n\nMe" + + "mberKind\022\017\n\013DECLARATION\020\000\022\021\n\rFAKE_OVERRI" + + "DE\020\001\022\016\n\nDELEGATION\020\002\022\017\n\013SYNTHESIZED\020\003B\017B" + + "\rDebugProtoBuf" }; org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { diff --git a/build-common/test/org/jetbrains/kotlin/serialization/java/DebugJavaClassProtoBuf.java b/build-common/test/org/jetbrains/kotlin/serialization/java/DebugJavaClassProtoBuf.java new file mode 100644 index 00000000000..47a346b4802 --- /dev/null +++ b/build-common/test/org/jetbrains/kotlin/serialization/java/DebugJavaClassProtoBuf.java @@ -0,0 +1,132 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: build-common/src/java_descriptors.debug.proto + +package org.jetbrains.kotlin.serialization.java; + +public final class DebugJavaClassProtoBuf { + private DebugJavaClassProtoBuf() {} + public static void registerAllExtensions( + org.jetbrains.kotlin.protobuf.ExtensionRegistry registry) { + registry.add(org.jetbrains.kotlin.serialization.java.DebugJavaClassProtoBuf.isStaticMethod); + registry.add(org.jetbrains.kotlin.serialization.java.DebugJavaClassProtoBuf.isPackagePrivateMethod); + registry.add(org.jetbrains.kotlin.serialization.java.DebugJavaClassProtoBuf.isStaticField); + registry.add(org.jetbrains.kotlin.serialization.java.DebugJavaClassProtoBuf.isPackagePrivateField); + registry.add(org.jetbrains.kotlin.serialization.java.DebugJavaClassProtoBuf.isPackagePrivateClass); + registry.add(org.jetbrains.kotlin.serialization.java.DebugJavaClassProtoBuf.isPackagePrivateConstructor); + } + public static final int IS_STATIC_METHOD_FIELD_NUMBER = 1000; + /** + * extend .org.jetbrains.kotlin.serialization.Function { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Function, + java.lang.Boolean> isStaticMethod = org.jetbrains.kotlin.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int IS_PACKAGE_PRIVATE_METHOD_FIELD_NUMBER = 1001; + /** + * extend .org.jetbrains.kotlin.serialization.Function { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Function, + java.lang.Boolean> isPackagePrivateMethod = org.jetbrains.kotlin.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int IS_STATIC_FIELD_FIELD_NUMBER = 1000; + /** + * extend .org.jetbrains.kotlin.serialization.Property { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Property, + java.lang.Boolean> isStaticField = org.jetbrains.kotlin.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int IS_PACKAGE_PRIVATE_FIELD_FIELD_NUMBER = 1001; + /** + * extend .org.jetbrains.kotlin.serialization.Property { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Property, + java.lang.Boolean> isPackagePrivateField = org.jetbrains.kotlin.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int IS_PACKAGE_PRIVATE_CLASS_FIELD_NUMBER = 1000; + /** + * extend .org.jetbrains.kotlin.serialization.Class { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Class, + java.lang.Boolean> isPackagePrivateClass = org.jetbrains.kotlin.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + public static final int IS_PACKAGE_PRIVATE_CONSTRUCTOR_FIELD_NUMBER = 1000; + /** + * extend .org.jetbrains.kotlin.serialization.Constructor { ... } + */ + public static final + org.jetbrains.kotlin.protobuf.GeneratedMessage.GeneratedExtension< + org.jetbrains.kotlin.serialization.DebugProtoBuf.Constructor, + java.lang.Boolean> isPackagePrivateConstructor = org.jetbrains.kotlin.protobuf.GeneratedMessage + .newFileScopedGeneratedExtension( + java.lang.Boolean.class, + null); + + public static org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n-build-common/src/java_descriptors.debu" + + "g.proto\022\'org.jetbrains.kotlin.serializat" + + "ion.java\0320core/deserialization/src/descr" + + "iptors.debug.proto:G\n\020is_static_method\022," + + ".org.jetbrains.kotlin.serialization.Func" + + "tion\030\350\007 \001(\010:P\n\031is_package_private_method" + + "\022,.org.jetbrains.kotlin.serialization.Fu" + + "nction\030\351\007 \001(\010:F\n\017is_static_field\022,.org.j" + + "etbrains.kotlin.serialization.Property\030\350" + + "\007 \001(\010:O\n\030is_package_private_field\022,.org.", + "jetbrains.kotlin.serialization.Property\030" + + "\351\007 \001(\010:L\n\030is_package_private_class\022).org" + + ".jetbrains.kotlin.serialization.Class\030\350\007" + + " \001(\010:X\n\036is_package_private_constructor\022/" + + ".org.jetbrains.kotlin.serialization.Cons" + + "tructor\030\350\007 \001(\010B\030B\026DebugJavaClassProtoBuf" + }; + org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner = + new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() { + public org.jetbrains.kotlin.protobuf.ExtensionRegistry assignDescriptors( + org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor root) { + descriptor = root; + return null; + } + }; + org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new org.jetbrains.kotlin.protobuf.Descriptors.FileDescriptor[] { + org.jetbrains.kotlin.serialization.DebugProtoBuf.getDescriptor(), + }, assigner); + isStaticMethod.internalInit(descriptor.getExtensions().get(0)); + isPackagePrivateMethod.internalInit(descriptor.getExtensions().get(1)); + isStaticField.internalInit(descriptor.getExtensions().get(2)); + isPackagePrivateField.internalInit(descriptor.getExtensions().get(3)); + isPackagePrivateClass.internalInit(descriptor.getExtensions().get(4)); + isPackagePrivateConstructor.internalInit(descriptor.getExtensions().get(5)); + org.jetbrains.kotlin.serialization.DebugProtoBuf.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} \ No newline at end of file diff --git a/core/deserialization/src/descriptors.proto b/core/deserialization/src/descriptors.proto index effd95aacf6..f94a65297ac 100644 --- a/core/deserialization/src/descriptors.proto +++ b/core/deserialization/src/descriptors.proto @@ -216,7 +216,7 @@ message Class { optional VersionRequirementTable version_requirement_table = 32; - extensions 100 to 199; + extensions 100 to 18999; } message Package { @@ -252,7 +252,7 @@ message Constructor { // Index into the VersionRequirementTable optional int32 version_requirement = 31; - extensions 100 to 199; + extensions 100 to 18999; } message Function { @@ -291,7 +291,7 @@ message Function { optional Contract contract = 32; - extensions 100 to 199; + extensions 100 to 18999; } message Property { @@ -339,7 +339,7 @@ message Property { // Index into the VersionRequirementTable optional int32 version_requirement = 31; - extensions 100 to 199; + extensions 100 to 18999; } message ValueParameter { @@ -545,4 +545,4 @@ message Expression { // Additionally, if first argument of formula is primitive expression (i.e. predicate or value), // it is optimized and embedded straight into this message. repeated Expression or_argument = 7; -} \ No newline at end of file +} diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/ProtoBuf.java b/core/deserialization/src/org/jetbrains/kotlin/serialization/ProtoBuf.java index 5402955f31b..df58b9141ce 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/ProtoBuf.java +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/ProtoBuf.java @@ -9116,7 +9116,7 @@ public final class ProtoBuf { if (((bitField0_ & 0x00000020) == 0x00000020)) { output.writeMessage(32, versionRequirementTable_); } - extensionWriter.writeUntil(200, output); + extensionWriter.writeUntil(19000, output); output.writeRawBytes(unknownFields); } @@ -13137,7 +13137,7 @@ public final class ProtoBuf { if (((bitField0_ & 0x00000002) == 0x00000002)) { output.writeInt32(31, versionRequirement_); } - extensionWriter.writeUntil(200, output); + extensionWriter.writeUntil(19000, output); output.writeRawBytes(unknownFields); } @@ -14310,7 +14310,7 @@ public final class ProtoBuf { if (((bitField0_ & 0x00000200) == 0x00000200)) { output.writeMessage(32, contract_); } - extensionWriter.writeUntil(200, output); + extensionWriter.writeUntil(19000, output); output.writeRawBytes(unknownFields); } @@ -16160,7 +16160,7 @@ public final class ProtoBuf { if (((bitField0_ & 0x00000400) == 0x00000400)) { output.writeInt32(31, versionRequirement_); } - extensionWriter.writeUntil(200, output); + extensionWriter.writeUntil(19000, output); output.writeRawBytes(unknownFields); } diff --git a/generators/src/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBuf.kt b/generators/src/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBuf.kt index db2d917c98a..1592e167c9c 100644 --- a/generators/src/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBuf.kt +++ b/generators/src/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBuf.kt @@ -55,7 +55,8 @@ val PROTO_PATHS: List = listOf( ProtoPath("js/js.serializer/src/js.proto"), ProtoPath("js/js.serializer/src/js-ast.proto"), ProtoPath("core/descriptors.jvm/src/jvm_descriptors.proto"), - ProtoPath("core/descriptors.jvm/src/jvm_package_table.proto") + ProtoPath("core/descriptors.jvm/src/jvm_package_table.proto"), + ProtoPath("build-common/src/java_descriptors.proto") ) private val EXT_OPTIONS_PROTO_PATH = ProtoPath("core/deserialization/src/ext_options.proto") diff --git a/generators/src/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBufCompare.kt b/generators/src/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBufCompare.kt index 616fd73b909..b44a8a048eb 100644 --- a/generators/src/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBufCompare.kt +++ b/generators/src/org/jetbrains/kotlin/generators/protobuf/GenerateProtoBufCompare.kt @@ -20,10 +20,11 @@ import org.jetbrains.kotlin.generators.util.GeneratorsFileUtil import org.jetbrains.kotlin.protobuf.Descriptors import org.jetbrains.kotlin.serialization.DebugExtOptionsProtoBuf import org.jetbrains.kotlin.serialization.DebugProtoBuf +import org.jetbrains.kotlin.serialization.builtins.DebugBuiltInsProtoBuf +import org.jetbrains.kotlin.serialization.java.DebugJavaClassProtoBuf import org.jetbrains.kotlin.serialization.js.DebugJsProtoBuf import org.jetbrains.kotlin.serialization.jvm.DebugJvmProtoBuf import org.jetbrains.kotlin.utils.Printer -import org.jetbrains.rpc.requestToByteBuf import java.io.File import java.util.* @@ -64,7 +65,9 @@ class GenerateProtoBufCompare { private val jvmExtensions = DebugJvmProtoBuf.getDescriptor().extensions private val jsExtensions = DebugJsProtoBuf.getDescriptor().extensions - private val extensionsMap = (jvmExtensions + jsExtensions).groupBy { it.containingType } + private val javaExtensions = DebugJavaClassProtoBuf.getDescriptor().extensions + private val builtInsExtensions = DebugBuiltInsProtoBuf.getDescriptor().extensions + private val extensionsMap = (jvmExtensions + jsExtensions + javaExtensions + builtInsExtensions).groupBy { it.containingType } private val allMessages: MutableSet = linkedSetOf() private val messagesToProcess: Queue = LinkedList() @@ -80,8 +83,10 @@ class GenerateProtoBufCompare { p.println("import org.jetbrains.kotlin.name.ClassId") p.println("import org.jetbrains.kotlin.serialization.ProtoBuf") p.println("import org.jetbrains.kotlin.serialization.deserialization.NameResolver") + p.println("import org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf") p.println("import org.jetbrains.kotlin.serialization.jvm.JvmProtoBuf") p.println("import org.jetbrains.kotlin.serialization.js.JsProtoBuf") + p.println("import org.jetbrains.kotlin.serialization.java.JavaClassProtoBuf") p.println("import org.jetbrains.kotlin.utils.Interner") p.println("import java.util.*") p.println() @@ -450,6 +455,12 @@ class GenerateProtoBufCompare { if (this in jsExtensions) { extensionPrefix = "jsExt_" } + if (this in javaExtensions) { + extensionPrefix = "javaExt_" + } + if (this in builtInsExtensions) { + extensionPrefix = "builtInsExt_" + } } return (extensionPrefix + name.javaName + (if (isRepeated) "List" else "")).replace("[A-Z]".toRegex()) { "_" + it.value }.toUpperCase() } @@ -468,4 +479,4 @@ class GenerateProtoBufCompare { private fun Printer.printlnMultiline(string: String) { string.trimIndent().split("\n").forEach { this.println(it) } -} \ No newline at end of file +}