K2: remove dependency fir-deserialization -> metadata.jvm

This commit is contained in:
Alexander Udalov
2023-08-01 15:45:55 +02:00
committed by Space Team
parent bdd94dddaa
commit 2b84463ec8
4 changed files with 13 additions and 4 deletions
@@ -5,7 +5,6 @@ plugins {
dependencies {
implementation(project(":core:metadata"))
implementation(project(":core:metadata.jvm"))
implementation(project(":core:deserialization.common"))
implementation(project(":core:compiler.common"))
@@ -34,7 +34,6 @@ import org.jetbrains.kotlin.fir.types.toLookupTag
import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.SerializationPluginMetadataExtensions
import org.jetbrains.kotlin.metadata.deserialization.*
import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.Name
@@ -232,8 +231,8 @@ fun deserializeClassToSymbol(
replaceDeprecationsProvider(getDeprecationsProvider(session))
classProto.getExtensionOrNull(JvmProtoBuf.classModuleName)?.let { idx ->
moduleName = nameResolver.getString(idx)
session.deserializationExtension?.loadModuleName(classProto, nameResolver)?.let {
moduleName = it
}
if (!Flags.HAS_ENUM_ENTRIES.get(flags)) {
@@ -8,6 +8,8 @@ package org.jetbrains.kotlin.fir.deserialization
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSessionComponent
import org.jetbrains.kotlin.fir.declarations.builder.FirRegularClassBuilder
import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.deserialization.NameResolver
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
@@ -20,4 +22,6 @@ abstract class FirDeserializationExtension(val session: FirSession) : FirSession
): FirConstDeserializer? = null
open fun FirRegularClassBuilder.configureDeserializedClass(classId: ClassId) {}
open fun loadModuleName(classProto: ProtoBuf.Class, nameResolver: NameResolver): String? = null
}
@@ -14,6 +14,10 @@ import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
import org.jetbrains.kotlin.fir.types.toLookupTag
import org.jetbrains.kotlin.load.kotlin.KotlinJvmBinarySourceElement
import org.jetbrains.kotlin.metadata.ProtoBuf
import org.jetbrains.kotlin.metadata.deserialization.NameResolver
import org.jetbrains.kotlin.metadata.deserialization.getExtensionOrNull
import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.serialization.SerializerExtensionProtocol
@@ -45,6 +49,9 @@ class FirJvmDeserializationExtension(session: FirSession) : FirDeserializationEx
}
}
override fun loadModuleName(classProto: ProtoBuf.Class, nameResolver: NameResolver): String? =
classProto.getExtensionOrNull(JvmProtoBuf.classModuleName)?.let(nameResolver::getString)
companion object {
private val JAVA_IO_SERIALIZABLE = ClassId.topLevel(FqName("java.io.Serializable"))
}