Added saving SerialInfo annotations to the enum class
Resolves Kotlin/kotlinx.serialization#2121 Merge-request: KT-MR-8019 Merged-by: Sergey Shanshin <Sergey.Shanshin@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
88d140527f
commit
5e01669e23
+3
-3
@@ -49,11 +49,11 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene
|
||||
SerializationPackages.internalPackageFqName,
|
||||
SerialEntityNames.ENUM_SERIALIZER_FACTORY_FUNC_NAME
|
||||
).isNotEmpty()
|
||||
val hasMarkedFactory = session.symbolProvider.getTopLevelCallableSymbols(
|
||||
val hasAnnotatedFactory = session.symbolProvider.getTopLevelCallableSymbols(
|
||||
SerializationPackages.internalPackageFqName,
|
||||
SerialEntityNames.MARKED_ENUM_SERIALIZER_FACTORY_FUNC_NAME
|
||||
SerialEntityNames.ANNOTATED_ENUM_SERIALIZER_FACTORY_FUNC_NAME
|
||||
).isNotEmpty()
|
||||
hasFactory && hasMarkedFactory
|
||||
hasFactory && hasAnnotatedFactory
|
||||
}
|
||||
|
||||
override fun getNestedClassifiersNames(classSymbol: FirClassSymbol<*>): Set<Name> {
|
||||
|
||||
+4
-4
@@ -15,8 +15,8 @@ import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames.ANNOTATED_ENUM_SERIALIZER_FACTORY_FUNC_NAME
|
||||
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames.ENUM_SERIALIZER_FACTORY_FUNC_NAME
|
||||
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames.MARKED_ENUM_SERIALIZER_FACTORY_FUNC_NAME
|
||||
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializationPackages
|
||||
|
||||
class DependencySerializationInfoProvider(session: FirSession) : FirExtensionSessionComponent(session) {
|
||||
@@ -24,10 +24,10 @@ class DependencySerializationInfoProvider(session: FirSession) : FirExtensionSes
|
||||
val enumSerializerFactory = session.symbolProvider
|
||||
.getTopLevelFunctionSymbols(SerializationPackages.internalPackageFqName, ENUM_SERIALIZER_FACTORY_FUNC_NAME)
|
||||
|
||||
val markedEnumSerializerFactory = session.symbolProvider
|
||||
.getTopLevelFunctionSymbols(SerializationPackages.internalPackageFqName, MARKED_ENUM_SERIALIZER_FACTORY_FUNC_NAME)
|
||||
val annotatedEnumSerializerFactory = session.symbolProvider
|
||||
.getTopLevelFunctionSymbols(SerializationPackages.internalPackageFqName, ANNOTATED_ENUM_SERIALIZER_FACTORY_FUNC_NAME)
|
||||
|
||||
enumSerializerFactory.isEmpty() || markedEnumSerializerFactory.isEmpty()
|
||||
enumSerializerFactory.isEmpty() || annotatedEnumSerializerFactory.isEmpty()
|
||||
}
|
||||
|
||||
private val classesFromSerializationPackageCache: FirCache<Name, FirClassSymbol<*>, Nothing?> = session.firCachesFactory.createCache { name ->
|
||||
|
||||
Reference in New Issue
Block a user