From f82ec6711d8792d60c3b29c19fb0ab6ccdd06030 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 17 Feb 2016 15:37:14 +0300 Subject: [PATCH] Remove SerializedResourcePaths and BuiltInsSerializedResourcePaths Most of members now only make sense for JS, move the rest to BuiltInSerializerProtocol --- .../builtins/BuiltInsSerializer.kt | 4 +- .../builtins/BuiltInSerializerProtocol.kt | 13 ++++- .../BuiltInsSerializedResourcePaths.kt | 58 ------------------- .../builtins/BuiltinsPackageFragment.kt | 4 +- .../serialization/SerializedResourcePaths.kt | 31 ---------- .../SerializerExtensionProtocol.kt | 2 + .../builtIns/KotlinBuiltInDecompiler.kt | 4 +- .../builtIns/KotlinBuiltInFileType.kt | 4 +- ...tlinJavaScriptDeserializerForDecompiler.kt | 2 +- .../js/KotlinJavaScriptStubBuilder.kt | 4 +- .../BuiltInDecompilerConsistencyTest.kt | 4 +- .../stubBuilder/BuiltInDecompilerTest.kt | 6 +- .../js/KotlinJavascriptClassDataFinder.kt | 2 +- .../js/KotlinJavascriptPackageFragment.kt | 4 +- ...KotlinJavascriptSerializedResourcePaths.kt | 16 ++--- .../js/KotlinJavascriptSerializerExtension.kt | 2 + 16 files changed, 38 insertions(+), 122 deletions(-) delete mode 100644 core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsSerializedResourcePaths.kt delete mode 100644 core/deserialization/src/org/jetbrains/kotlin/serialization/SerializedResourcePaths.kt diff --git a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt index 721048710ea..0b269b350c2 100644 --- a/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt +++ b/compiler/builtins-serializer/src/org/jetbrains/kotlin/serialization/builtins/BuiltInsSerializer.kt @@ -21,8 +21,8 @@ import com.intellij.openapi.util.Disposer import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.analyzer.ModuleContent import org.jetbrains.kotlin.analyzer.ModuleInfo +import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.builtins.BuiltInsBinaryVersion -import org.jetbrains.kotlin.builtins.BuiltInsSerializedResourcePaths import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles @@ -162,7 +162,7 @@ class BuiltInsSerializer(private val dependOnOldBuiltIns: Boolean) { version.forEach { writeInt(it) } } proto.build().writeTo(stream) - write(BuiltInsSerializedResourcePaths.getBuiltInsFilePath(fqName), stream) + write(BuiltInSerializerProtocol.getBuiltInsFilePath(fqName), stream) } private fun write(fileName: String, stream: ByteArrayOutputStream) { diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInSerializerProtocol.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInSerializerProtocol.kt index c73f2ca4d59..3c951093b3d 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInSerializerProtocol.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInSerializerProtocol.kt @@ -16,11 +16,22 @@ package org.jetbrains.kotlin.builtins +import com.google.protobuf.ExtensionRegistryLite +import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol import org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf object BuiltInSerializerProtocol : SerializerExtensionProtocol( + ExtensionRegistryLite.newInstance().apply { BuiltInsProtoBuf.registerAllExtensions(this) }, BuiltInsProtoBuf.constructorAnnotation, BuiltInsProtoBuf.classAnnotation, BuiltInsProtoBuf.functionAnnotation, BuiltInsProtoBuf.propertyAnnotation, BuiltInsProtoBuf.enumEntryAnnotation, BuiltInsProtoBuf.compileTimeValue, BuiltInsProtoBuf.parameterAnnotation, BuiltInsProtoBuf.typeAnnotation, BuiltInsProtoBuf.typeParameterAnnotation -) +) { + val BUILTINS_FILE_EXTENSION = "kotlin_builtins" + + fun getBuiltInsFilePath(fqName: FqName): String = + fqName.asString().replace('.', '/') + "/" + shortName(fqName) + "." + BUILTINS_FILE_EXTENSION + + private fun shortName(fqName: FqName): String = + if (fqName.isRoot) "default-package" else fqName.shortName().asString() +} diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsSerializedResourcePaths.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsSerializedResourcePaths.kt deleted file mode 100644 index 7c036d6f4f4..00000000000 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltInsSerializedResourcePaths.kt +++ /dev/null @@ -1,58 +0,0 @@ -/* - * 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.builtins - -import com.google.protobuf.ExtensionRegistryLite -import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.FqName -import org.jetbrains.kotlin.serialization.SerializedResourcePaths -import org.jetbrains.kotlin.serialization.builtins.BuiltInsProtoBuf - -object BuiltInsSerializedResourcePaths : SerializedResourcePaths { - override val extensionRegistry: ExtensionRegistryLite - - init { - extensionRegistry = ExtensionRegistryLite.newInstance() - BuiltInsProtoBuf.registerAllExtensions(extensionRegistry) - } - - val CLASS_METADATA_FILE_EXTENSION = "kotlin_class" - val PACKAGE_FILE_EXTENSION = "kotlin_package" - val STRING_TABLE_FILE_EXTENSION = "kotlin_string_table" - val BUILTINS_FILE_EXTENSION = "kotlin_builtins" - - override fun getClassMetadataPath(classId: ClassId): String { - return packageFqNameToPath(classId.packageFqName) + "/" + classId.relativeClassName.asString() + - "." + CLASS_METADATA_FILE_EXTENSION - } - - override fun getPackageFilePath(fqName: FqName): String = - packageFqNameToPath(fqName) + "/" + shortName(fqName) + "." + PACKAGE_FILE_EXTENSION - - override fun getStringTableFilePath(fqName: FqName): String = - packageFqNameToPath(fqName) + "/" + shortName(fqName) + "." + STRING_TABLE_FILE_EXTENSION - - fun getBuiltInsFilePath(fqName: FqName): String = - packageFqNameToPath(fqName) + "/" + shortName(fqName) + "." + BUILTINS_FILE_EXTENSION - - - private fun packageFqNameToPath(fqName: FqName): String = - fqName.asString().replace('.', '/') - - private fun shortName(fqName: FqName): String = - if (fqName.isRoot) "default-package" else fqName.shortName().asString() -} diff --git a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltinsPackageFragment.kt b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltinsPackageFragment.kt index 6328c01f173..99f1091fe2d 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltinsPackageFragment.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/builtins/BuiltinsPackageFragment.kt @@ -32,7 +32,7 @@ class BuiltinsPackageFragment( loadResource: (path: String) -> InputStream? ) : DeserializedPackageFragment(fqName, storageManager, module, loadResource) { private val proto = run { - val stream = loadResourceSure(BuiltInsSerializedResourcePaths.getBuiltInsFilePath(fqName)) + val stream = loadResourceSure(BuiltInSerializerProtocol.getBuiltInsFilePath(fqName)) val version = BuiltInsBinaryVersion.readFrom(stream) if (!version.isCompatible()) { @@ -44,7 +44,7 @@ class BuiltinsPackageFragment( ) } - BuiltInsProtoBuf.BuiltIns.parseFrom(stream, BuiltInsSerializedResourcePaths.extensionRegistry) + BuiltInsProtoBuf.BuiltIns.parseFrom(stream, BuiltInSerializerProtocol.extensionRegistry) } private val nameResolver = NameResolverImpl(proto.strings, proto.qualifiedNames) diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/SerializedResourcePaths.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/SerializedResourcePaths.kt deleted file mode 100644 index 49b263cc858..00000000000 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/SerializedResourcePaths.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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 - -import com.google.protobuf.ExtensionRegistryLite -import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.FqName - -interface SerializedResourcePaths { - val extensionRegistry: ExtensionRegistryLite - - fun getClassMetadataPath(classId: ClassId): String - - fun getPackageFilePath(fqName: FqName): String - - fun getStringTableFilePath(fqName: FqName): String -} diff --git a/core/deserialization/src/org/jetbrains/kotlin/serialization/SerializerExtensionProtocol.kt b/core/deserialization/src/org/jetbrains/kotlin/serialization/SerializerExtensionProtocol.kt index dfe9909c2a0..227f8f2d49a 100644 --- a/core/deserialization/src/org/jetbrains/kotlin/serialization/SerializerExtensionProtocol.kt +++ b/core/deserialization/src/org/jetbrains/kotlin/serialization/SerializerExtensionProtocol.kt @@ -16,9 +16,11 @@ package org.jetbrains.kotlin.serialization; +import com.google.protobuf.ExtensionRegistryLite import com.google.protobuf.GeneratedMessageLite.GeneratedExtension open class SerializerExtensionProtocol( + val extensionRegistry: ExtensionRegistryLite, val constructorAnnotation: GeneratedExtension>, val classAnnotation: GeneratedExtension>, val functionAnnotation: GeneratedExtension>, diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt index e00e90eec67..11b46d184f0 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInDecompiler.kt @@ -22,8 +22,8 @@ import com.intellij.psi.FileViewProvider import com.intellij.psi.PsiManager import com.intellij.psi.compiled.ClassFileDecompilers import org.jetbrains.annotations.TestOnly +import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.builtins.BuiltInsBinaryVersion -import org.jetbrains.kotlin.builtins.BuiltInsSerializedResourcePaths import org.jetbrains.kotlin.descriptors.DeclarationDescriptor import org.jetbrains.kotlin.idea.decompiler.KotlinDecompiledFileViewProvider import org.jetbrains.kotlin.idea.decompiler.KtDecompiledFile @@ -127,7 +127,7 @@ sealed class BuiltInDefinitionFile { return BuiltInDefinitionFile.Incompatible(version) } - val proto = BuiltInsProtoBuf.BuiltIns.parseFrom(stream, BuiltInsSerializedResourcePaths.extensionRegistry) + val proto = BuiltInsProtoBuf.BuiltIns.parseFrom(stream, BuiltInSerializerProtocol.extensionRegistry) return BuiltInDefinitionFile.Compatible(proto, file.parent) } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInFileType.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInFileType.kt index 0521a1d83f3..81736ef22cf 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInFileType.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/builtIns/KotlinBuiltInFileType.kt @@ -18,7 +18,7 @@ package org.jetbrains.kotlin.idea.decompiler.builtIns import com.intellij.openapi.fileTypes.FileType import com.intellij.openapi.vfs.VirtualFile -import org.jetbrains.kotlin.builtins.BuiltInsSerializedResourcePaths +import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.idea.KotlinIcons object KotlinBuiltInFileType : FileType { @@ -26,7 +26,7 @@ object KotlinBuiltInFileType : FileType { override fun getDescription() = "Kotlin built-in declarations" - override fun getDefaultExtension() = BuiltInsSerializedResourcePaths.BUILTINS_FILE_EXTENSION + override fun getDefaultExtension() = BuiltInSerializerProtocol.BUILTINS_FILE_EXTENSION override fun getIcon() = KotlinIcons.FILE diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptDeserializerForDecompiler.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptDeserializerForDecompiler.kt index 152ce7c5744..e735664c361 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptDeserializerForDecompiler.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptDeserializerForDecompiler.kt @@ -73,7 +73,7 @@ class KotlinJavaScriptDeserializerForDecompiler( } val content = file.contentsToByteArray(false) - val packageProto = ProtoBuf.Package.parseFrom(content, KotlinJavascriptSerializedResourcePaths.extensionRegistry) + val packageProto = ProtoBuf.Package.parseFrom(content, JsSerializerProtocol.extensionRegistry) val membersScope = DeserializedPackageMemberScope( createDummyPackageFragment(packageFqName), packageProto, nameResolver, packagePartSource = null, components = deserializationComponents diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptStubBuilder.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptStubBuilder.kt index 5ea46c825b8..b07d7aa5638 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptStubBuilder.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/decompiler/js/KotlinJavaScriptStubBuilder.kt @@ -61,12 +61,12 @@ class KotlinJavaScriptStubBuilder : ClsStubBuilder() { val components = createStubBuilderComponents(file, nameResolver) if (isPackageHeader) { - val packageProto = ProtoBuf.Package.parseFrom(content, KotlinJavascriptSerializedResourcePaths.extensionRegistry) + val packageProto = ProtoBuf.Package.parseFrom(content, JsSerializerProtocol.extensionRegistry) val context = components.createContext(nameResolver, packageFqName, TypeTable(packageProto.typeTable)) return createPackageFacadeStub(packageProto, packageFqName, context) } else { - val classProto = ProtoBuf.Class.parseFrom(content, KotlinJavascriptSerializedResourcePaths.extensionRegistry) + val classProto = ProtoBuf.Class.parseFrom(content, JsSerializerProtocol.extensionRegistry) val context = components.createContext(nameResolver, packageFqName, TypeTable(classProto.typeTable)) val classId = JsMetaFileUtils.getClassId(file) return createTopLevelClassStub(classId, classProto, context) diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerConsistencyTest.kt b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerConsistencyTest.kt index 85c89bfedd7..ed8d2d43921 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerConsistencyTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerConsistencyTest.kt @@ -21,7 +21,7 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.search.GlobalSearchScope import com.intellij.util.indexing.FileContentImpl -import org.jetbrains.kotlin.builtins.BuiltInsSerializedResourcePaths +import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.idea.caches.IDEKotlinBinaryClassCache import org.jetbrains.kotlin.idea.decompiler.builtIns.BuiltInDefinitionFile import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInDecompiler @@ -62,7 +62,7 @@ class BuiltInDecompilerConsistencyTest : KotlinLightCodeInsightFixtureTestCase() val dir = findDir(packageFqName, project) val groupedByExtension = dir.children.groupBy { it.extension } val classFiles = groupedByExtension[JavaClassFileType.INSTANCE.defaultExtension]!!.map { it.nameWithoutExtension } - val builtInsFile = groupedByExtension[BuiltInsSerializedResourcePaths.BUILTINS_FILE_EXTENSION]!!.single() + val builtInsFile = groupedByExtension[BuiltInSerializerProtocol.BUILTINS_FILE_EXTENSION]!!.single() val builtInFileStub = builtInsDecompiler.stubBuilder.buildFileStub(FileContentImpl.createByFile(builtInsFile))!! diff --git a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerTest.kt b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerTest.kt index f40eb1f5d08..c34c0d226d1 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/decompiler/stubBuilder/BuiltInDecompilerTest.kt @@ -18,7 +18,7 @@ package org.jetbrains.kotlin.idea.decompiler.stubBuilder import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase import com.intellij.util.indexing.FileContentImpl -import org.jetbrains.kotlin.builtins.BuiltInsSerializedResourcePaths +import org.jetbrains.kotlin.builtins.BuiltInSerializerProtocol import org.jetbrains.kotlin.idea.decompiler.builtIns.KotlinBuiltInStubBuilder import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor import org.jetbrains.kotlin.psi.stubs.elements.KtFileStubBuilder @@ -32,9 +32,7 @@ class BuiltInDecompilerTest : LightCodeInsightFixtureTestCase() { private fun doTest(packageFqName: String) { val dirInRuntime = findDir(packageFqName, project) - val kotlinBuiltInsVirtualFile = dirInRuntime.children.single { - it.extension == BuiltInsSerializedResourcePaths.BUILTINS_FILE_EXTENSION - } + val kotlinBuiltInsVirtualFile = dirInRuntime.children.single { it.extension == BuiltInSerializerProtocol.BUILTINS_FILE_EXTENSION } val stubTreeFromDecompiler = KotlinBuiltInStubBuilder().buildFileStub(FileContentImpl.createByFile(kotlinBuiltInsVirtualFile))!! myFixture.configureFromExistingVirtualFile(kotlinBuiltInsVirtualFile) diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptClassDataFinder.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptClassDataFinder.kt index 6452ab4fb0c..00cd93231fe 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptClassDataFinder.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptClassDataFinder.kt @@ -30,7 +30,7 @@ class KotlinJavascriptClassDataFinder( ) : ClassDataFinder { override fun findClassData(classId: ClassId): ClassDataWithSource? { val stream = loadResource(KotlinJavascriptSerializedResourcePaths.getClassMetadataPath(classId)) ?: return null - val classProto = ProtoBuf.Class.parseFrom(stream, KotlinJavascriptSerializedResourcePaths.extensionRegistry) + val classProto = ProtoBuf.Class.parseFrom(stream, JsSerializerProtocol.extensionRegistry) return ClassDataWithSource(ClassData(nameResolver, classProto)) } } diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt index 8e55aa08d1f..d0ed2e82faf 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptPackageFragment.kt @@ -39,7 +39,7 @@ class KotlinJavascriptPackageFragment( override fun computeMemberScope(): DeserializedPackageMemberScope { val packageStream = loadResourceSure(KotlinJavascriptSerializedResourcePaths.getPackageFilePath(fqName)) - val packageProto = ProtoBuf.Package.parseFrom(packageStream, KotlinJavascriptSerializedResourcePaths.extensionRegistry) + val packageProto = ProtoBuf.Package.parseFrom(packageStream, JsSerializerProtocol.extensionRegistry) return DeserializedPackageMemberScope( this, packageProto, nameResolver, packagePartSource = null, components = components, classNames = { loadClassNames() } ) @@ -47,7 +47,7 @@ class KotlinJavascriptPackageFragment( private fun loadClassNames(): Collection { val classesStream = loadResourceSure(KotlinJavascriptSerializedResourcePaths.getClassesInPackageFilePath(fqName)) - val classesProto = JsProtoBuf.Classes.parseFrom(classesStream, KotlinJavascriptSerializedResourcePaths.extensionRegistry) + val classesProto = JsProtoBuf.Classes.parseFrom(classesStream, JsSerializerProtocol.extensionRegistry) return classesProto.classNameList?.map { id -> nameResolver.getName(id) } ?: listOf() } } diff --git a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializedResourcePaths.kt b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializedResourcePaths.kt index 99c84fc2690..57441aa9868 100644 --- a/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializedResourcePaths.kt +++ b/js/js.serializer/src/org/jetbrains/kotlin/serialization/js/KotlinJavascriptSerializedResourcePaths.kt @@ -16,19 +16,11 @@ package org.jetbrains.kotlin.serialization.js -import com.google.protobuf.ExtensionRegistryLite import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.serialization.SerializedResourcePaths - -object KotlinJavascriptSerializedResourcePaths : SerializedResourcePaths { - override val extensionRegistry: ExtensionRegistryLite = ExtensionRegistryLite.newInstance() - - init { - JsProtoBuf.registerAllExtensions(extensionRegistry) - } +object KotlinJavascriptSerializedResourcePaths { private val CLASSES_FILE_EXTENSION = "kotlin_classes" private val STRING_TABLE_FILE_EXTENSION = "kotlin_string_table" @@ -36,15 +28,15 @@ object KotlinJavascriptSerializedResourcePaths : SerializedResourcePaths { fqName.toPath().withSepIfNotEmpty() + shortName(fqName) + "." + CLASSES_FILE_EXTENSION - override fun getClassMetadataPath(classId: ClassId): String { + fun getClassMetadataPath(classId: ClassId): String { return classId.packageFqName.toPath().withSepIfNotEmpty() + classId.relativeClassName.asString() + "." + KotlinJavascriptSerializationUtil.CLASS_METADATA_FILE_EXTENSION } - override fun getPackageFilePath(fqName: FqName): String = + fun getPackageFilePath(fqName: FqName): String = getPackageClassFqName(fqName).toPath() + "." + KotlinJavascriptSerializationUtil.CLASS_METADATA_FILE_EXTENSION - override fun getStringTableFilePath(fqName: FqName): String = + fun getStringTableFilePath(fqName: FqName): String = fqName.toPath().withSepIfNotEmpty() + shortName(fqName) + "." + STRING_TABLE_FILE_EXTENSION private fun FqName.toPath() = this.asString().replace('.', '/') 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 efd85c2429f..161c42551f4 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 @@ -16,12 +16,14 @@ package org.jetbrains.kotlin.serialization.js +import com.google.protobuf.ExtensionRegistryLite import org.jetbrains.kotlin.serialization.KotlinSerializerExtensionBase import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol class KotlinJavascriptSerializerExtension : KotlinSerializerExtensionBase(JsSerializerProtocol) object JsSerializerProtocol : SerializerExtensionProtocol( + ExtensionRegistryLite.newInstance().apply { JsProtoBuf.registerAllExtensions(this) }, JsProtoBuf.constructorAnnotation, JsProtoBuf.classAnnotation, JsProtoBuf.functionAnnotation, JsProtoBuf.propertyAnnotation, JsProtoBuf.enumEntryAnnotation, JsProtoBuf.compileTimeValue, JsProtoBuf.parameterAnnotation, JsProtoBuf.typeAnnotation, JsProtoBuf.typeParameterAnnotation