diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/MultifileClassPartCodegen.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/MultifileClassPartCodegen.kt index 5e80c411eff..8a89708bde4 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/MultifileClassPartCodegen.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/MultifileClassPartCodegen.kt @@ -176,7 +176,7 @@ class MultifileClassPartCodegen( } val serializer = DescriptorSerializer.createTopLevel(JvmSerializerExtension(v.serializationBindings, state)) - val packageProto = serializer.packagePartProto(members).build() + val packageProto = serializer.packagePartProto(packageFragment.fqName, members).build() val extraFlags = if (shouldGeneratePartHierarchy) JvmAnnotationNames.METADATA_MULTIFILE_PARTS_INHERIT_FLAG else 0 diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/PackagePartCodegen.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/PackagePartCodegen.java index a313d7211bb..a0c99f338a7 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/PackagePartCodegen.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/PackagePartCodegen.java @@ -129,7 +129,7 @@ public class PackagePartCodegen extends MemberCodegen { final DescriptorSerializer serializer = DescriptorSerializer.createTopLevel(new JvmSerializerExtension(v.getSerializationBindings(), state)); - final ProtoBuf.Package packageProto = serializer.packagePartProto(members).build(); + final ProtoBuf.Package packageProto = serializer.packagePartProto(element.getPackageFqName(), members).build(); WriteAnnotationUtilKt.writeKotlinMetadata(v, state, KotlinClassHeader.Kind.FILE_FACADE, 0, new Function1() { @Override diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/serialization/JvmSerializerExtension.java b/compiler/backend/src/org/jetbrains/kotlin/codegen/serialization/JvmSerializerExtension.java index a9a64e58fd9..3c06a2c0678 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/serialization/JvmSerializerExtension.java +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/serialization/JvmSerializerExtension.java @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.load.java.lazy.types.RawTypeImpl; import org.jetbrains.kotlin.load.kotlin.JavaFlexibleTypeDeserializer; import org.jetbrains.kotlin.load.kotlin.TypeSignatureMappingKt; import org.jetbrains.kotlin.name.ClassId; +import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.serialization.AnnotationSerializer; import org.jetbrains.kotlin.serialization.ProtoBuf; import org.jetbrains.kotlin.serialization.SerializerExtension; @@ -77,7 +78,7 @@ public class JvmSerializerExtension extends SerializerExtension { } @Override - public void serializePackage(@NotNull ProtoBuf.Package.Builder proto) { + public void serializePackage(@NotNull FqName packageFqName, @NotNull ProtoBuf.Package.Builder proto) { if (!moduleName.equals(JvmAbi.DEFAULT_MODULE_NAME)) { proto.setExtension(JvmProtoBuf.packageModuleName, stringTable.getStringIndex(moduleName)); } diff --git a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/MetadataSerializer.kt b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/MetadataSerializer.kt index e651dad1c8a..1198e765a8f 100644 --- a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/MetadataSerializer.kt +++ b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/MetadataSerializer.kt @@ -141,11 +141,11 @@ open class MetadataSerializer(private val dependOnOldBuiltIns: Boolean) { protected inner class PackageSerializer( private val classes: Collection, private val members: Collection, - packageFqName: FqName, + private val packageFqName: FqName, private val destFile: File ) { private val proto = ProtoBuf.PackageFragment.newBuilder() - private val extension = BuiltInsSerializerExtension(packageFqName) + private val extension = BuiltInsSerializerExtension() fun run() { serializeClasses(classes) @@ -170,7 +170,7 @@ open class MetadataSerializer(private val dependOnOldBuiltIns: Boolean) { } private fun serializeMembers(members: Collection) { - proto.`package` = DescriptorSerializer.createTopLevel(extension).packagePartProto(members).build() + proto.`package` = DescriptorSerializer.createTopLevel(extension).packagePartProto(packageFqName, members).build() } private fun serializeStringTable() { diff --git a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt index 1fec80268b2..1b984dbf6fb 100644 --- a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt +++ b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializerExtension.kt @@ -17,9 +17,8 @@ package org.jetbrains.kotlin.serialization.builtins import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol -import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase -class BuiltInsSerializerExtension(packageFqName: FqName) : KotlinSerializerExtensionBase(BuiltInSerializerProtocol, packageFqName) { +class BuiltInsSerializerExtension : KotlinSerializerExtensionBase(BuiltInSerializerProtocol) { override fun shouldUseTypeTable(): Boolean = true } diff --git a/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt b/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt index 4564f7764d5..e014a5403e6 100644 --- a/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt +++ b/compiler/serialization/src/org/jetbrains/kotlin/serialization/DescriptorSerializer.kt @@ -17,20 +17,18 @@ package org.jetbrains.kotlin.serialization import org.jetbrains.kotlin.builtins.KotlinBuiltIns -import org.jetbrains.kotlin.builtins.functions.FunctionClassDescriptor -import org.jetbrains.kotlin.builtins.getFunctionalClassKind import org.jetbrains.kotlin.builtins.isSuspendFunctionType import org.jetbrains.kotlin.builtins.transformSuspendFunctionToRuntimeFunctionType import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.annotations.Annotated +import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.protobuf.MessageLite import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry import org.jetbrains.kotlin.resolve.MemberComparator import org.jetbrains.kotlin.resolve.constants.NullValue -import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns import org.jetbrains.kotlin.serialization.deserialization.descriptors.SinceKotlinInfo import org.jetbrains.kotlin.types.* import org.jetbrains.kotlin.types.typeUtil.contains @@ -543,7 +541,7 @@ class DescriptorSerializer private constructor( return builder } - fun packagePartProto(members: Collection): ProtoBuf.Package.Builder { + fun packagePartProto(packageFqName: FqName, members: Collection): ProtoBuf.Package.Builder { val builder = ProtoBuf.Package.newBuilder() for (declaration in sort(members)) { @@ -564,7 +562,7 @@ class DescriptorSerializer private constructor( builder.sinceKotlinInfoTable = sinceKotlinInfoProto } - extension.serializePackage(builder) + extension.serializePackage(packageFqName, builder) return builder } diff --git a/compiler/serialization/src/org/jetbrains/kotlin/serialization/SerializerExtension.kt b/compiler/serialization/src/org/jetbrains/kotlin/serialization/SerializerExtension.kt index 5f38b48d0f0..9da320b774f 100644 --- a/compiler/serialization/src/org/jetbrains/kotlin/serialization/SerializerExtension.kt +++ b/compiler/serialization/src/org/jetbrains/kotlin/serialization/SerializerExtension.kt @@ -17,6 +17,7 @@ package org.jetbrains.kotlin.serialization import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.types.FlexibleType import org.jetbrains.kotlin.types.KotlinType @@ -30,7 +31,7 @@ abstract class SerializerExtension { open fun serializeClass(descriptor: ClassDescriptor, proto: ProtoBuf.Class.Builder) { } - open fun serializePackage(proto: ProtoBuf.Package.Builder) { + open fun serializePackage(packageFqName: FqName, proto: ProtoBuf.Package.Builder) { } open fun serializeConstructor(descriptor: ConstructorDescriptor, proto: ProtoBuf.Constructor.Builder) { diff --git a/compiler/serialization/src/org/jetbrains/kotlin/serialization/SerializerExtensionBase.kt b/compiler/serialization/src/org/jetbrains/kotlin/serialization/SerializerExtensionBase.kt index d38acaf521c..d827400c37e 100644 --- a/compiler/serialization/src/org/jetbrains/kotlin/serialization/SerializerExtensionBase.kt +++ b/compiler/serialization/src/org/jetbrains/kotlin/serialization/SerializerExtensionBase.kt @@ -21,10 +21,7 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.resolve.constants.NullValue import org.jetbrains.kotlin.types.KotlinType -open class KotlinSerializerExtensionBase( - private val protocol: SerializerExtensionProtocol, - private val packageFqName: FqName -) : SerializerExtension() { +open class KotlinSerializerExtensionBase(private val protocol: SerializerExtensionProtocol) : SerializerExtension() { override val stringTable = StringTableImpl() override fun serializeClass(descriptor: ClassDescriptor, proto: ProtoBuf.Class.Builder) { @@ -33,7 +30,7 @@ open class KotlinSerializerExtensionBase( } } - override fun serializePackage(proto: ProtoBuf.Package.Builder) { + override fun serializePackage(packageFqName: FqName, proto: ProtoBuf.Package.Builder) { proto.setExtension(protocol.packageFqName, stringTable.getPackageFqNameIndex(packageFqName)) } diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt index 8aa23ba4c16..5e96fcb641e 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializationUtil.kt @@ -93,7 +93,7 @@ object KotlinJavascriptSerializationUtil { val skip: (DeclarationDescriptor) -> Boolean = { DescriptorUtils.getContainingModule(it) != module || (it is MemberDescriptor && it.isHeader) } val fileRegistry = KotlinFileRegistry() - val serializerExtension = KotlinJavascriptSerializerExtension(fileRegistry, fqName) + val serializerExtension = KotlinJavascriptSerializerExtension(fileRegistry) val serializer = DescriptorSerializer.createTopLevel(serializerExtension) val classDescriptors = DescriptorSerializer.sort( @@ -123,7 +123,7 @@ object KotlinJavascriptSerializationUtil { val members = fragments .flatMap { fragment -> DescriptorUtils.getAllDescriptors(fragment.getMemberScope()) } .filterNot(skip) - builder.`package` = serializer.packagePartProto(members).build() + builder.`package` = serializer.packagePartProto(fqName, members).build() builder.setExtension( JsProtoBuf.packageFragmentFiles, diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt index b3de85cd478..24aef0aa4b8 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializerExtension.kt @@ -29,9 +29,8 @@ import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol import org.jetbrains.kotlin.types.FlexibleType class KotlinJavascriptSerializerExtension( - private val fileRegistry: KotlinFileRegistry, - packageFqName: FqName -) : KotlinSerializerExtensionBase(JsSerializerProtocol, packageFqName) { + private val fileRegistry: KotlinFileRegistry +) : KotlinSerializerExtensionBase(JsSerializerProtocol) { override val stringTable = JavaScriptStringTable() override fun serializeFlexibleType(flexibleType: FlexibleType, lowerProto: ProtoBuf.Type.Builder, upperProto: ProtoBuf.Type.Builder) {