[K2 Serialization] Remove obsolete formatting suppression

This commit is contained in:
Dmitriy Novozhilov
2023-03-28 14:14:42 +03:00
committed by Space Team
parent fb97f4db87
commit 5ccf1eddab
5 changed files with 7 additions and 56 deletions
@@ -309,7 +309,6 @@ class SerializationFirResolveExtension(session: FirSession) : FirDeclarationGene
get() = session.predicateBasedProvider.matches(FirSerializationPredicates.serializerFor, this) get() = session.predicateBasedProvider.matches(FirSerializationPredicates.serializerFor, this)
context(FirSession) context(FirSession)
@Suppress("IncorrectFormatting") // KTIJ-22227
private val FirClassSymbol<*>.companionNeedsSerializerFactory: Boolean private val FirClassSymbol<*>.companionNeedsSerializerFactory: Boolean
get() { get() {
if (!(moduleData.platform.isNative() || moduleData.platform.isJs())) return false if (!(moduleData.platform.isNative() || moduleData.platform.isJs())) return false
@@ -36,7 +36,6 @@ class SerializationFirSupertypesExtension(session: FirSession) : FirSupertypeGen
} }
context(TypeResolveServiceContainer) context(TypeResolveServiceContainer)
@Suppress("IncorrectFormatting") // KTIJ-22227
override fun computeAdditionalSupertypes( override fun computeAdditionalSupertypes(
classLikeDeclaration: FirClassLikeDeclaration, classLikeDeclaration: FirClassLikeDeclaration,
resolvedSupertypes: List<FirResolvedTypeRef> resolvedSupertypes: List<FirResolvedTypeRef>
@@ -59,7 +58,6 @@ class SerializationFirSupertypesExtension(session: FirSession) : FirSupertypeGen
// Function helps to resolve class call from annotation argument to `ConeKotlinType` // Function helps to resolve class call from annotation argument to `ConeKotlinType`
context(TypeResolveServiceContainer) context(TypeResolveServiceContainer)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun resolveConeTypeFromArgument(getClassCall: FirGetClassCall): ConeKotlinType { private fun resolveConeTypeFromArgument(getClassCall: FirGetClassCall): ConeKotlinType {
val typeToResolve = buildUserTypeFromQualifierParts(isMarkedNullable = false) { val typeToResolve = buildUserTypeFromQualifierParts(isMarkedNullable = false) {
fun visitQualifiers(expression: FirExpression) { fun visitQualifiers(expression: FirExpression) {
@@ -8,29 +8,21 @@ package org.jetbrains.kotlinx.serialization.compiler.fir
import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.fir.FirAnnotationContainer import org.jetbrains.kotlin.fir.FirAnnotationContainer
import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.builder.FirAnnotationContainerBuilder
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.utils.*
import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.arguments
import org.jetbrains.kotlin.fir.resolve.createSubstitutionForSupertype
import org.jetbrains.kotlin.fir.expressions.builder.buildAnnotationCall import org.jetbrains.kotlin.fir.expressions.builder.buildAnnotationCall
import org.jetbrains.kotlin.fir.extensions.FirExtension import org.jetbrains.kotlin.fir.extensions.FirExtension
import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider import org.jetbrains.kotlin.fir.extensions.predicateBasedProvider
import org.jetbrains.kotlin.fir.moduleData import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference import org.jetbrains.kotlin.fir.references.builder.buildResolvedNamedReference
import org.jetbrains.kotlin.fir.resolve.createSubstitutionForSupertype
import org.jetbrains.kotlin.fir.resolve.defaultType import org.jetbrains.kotlin.fir.resolve.defaultType
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
import org.jetbrains.kotlin.fir.resolve.providers.FirSymbolProvider import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
import org.jetbrains.kotlin.fir.resolve.substitution.ChainedSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.ChainedSubstitutor
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
import org.jetbrains.kotlin.fir.scopes.platformSpecificOverridabilityRules
import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirConstructorSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
@@ -79,7 +71,6 @@ fun FirBasedSymbol<*>.getSerialTransientAnnotation(session: FirSession): FirAnno
getAnnotationByClassId(SerializationAnnotations.serialTransientClassId, session) getAnnotationByClassId(SerializationAnnotations.serialTransientClassId, session)
context(FirSession) context(FirSession)
@Suppress("IncorrectFormatting") // KTIJ-22227
val FirClassSymbol<*>.hasSerializableAnnotation: Boolean val FirClassSymbol<*>.hasSerializableAnnotation: Boolean
get() = serializableAnnotation(needArguments = false, this@FirSession) != null get() = serializableAnnotation(needArguments = false, this@FirSession) != null
@@ -128,17 +119,14 @@ internal fun FirClassLikeDeclaration.getSerializerFor(session: FirSession): FirG
?.getGetKClassArgument(AnnotationParameterNames.FOR_CLASS) ?.getGetKClassArgument(AnnotationParameterNames.FOR_CLASS)
context(FirSession) context(FirSession)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirClassSymbol<*>.isInternallySerializableObject: Boolean internal val FirClassSymbol<*>.isInternallySerializableObject: Boolean
get() = classKind.isObject && hasSerializableOrMetaAnnotationWithoutArgs get() = classKind.isObject && hasSerializableOrMetaAnnotationWithoutArgs
context(FirSession) context(FirSession)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirClassSymbol<*>.isSerializableObject: Boolean internal val FirClassSymbol<*>.isSerializableObject: Boolean
get() = classKind.isObject && hasSerializableOrMetaAnnotation get() = classKind.isObject && hasSerializableOrMetaAnnotation
context(FirSession) context(FirSession)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirClassSymbol<*>.isSealedSerializableInterface: Boolean internal val FirClassSymbol<*>.isSealedSerializableInterface: Boolean
get() = classKind.isInterface && rawStatus.modality == Modality.SEALED && hasSerializableOrMetaAnnotation get() = classKind.isInterface && rawStatus.modality == Modality.SEALED && hasSerializableOrMetaAnnotation
@@ -151,7 +139,6 @@ val FirClassSymbol<*>.hasMetaSerializableAnnotation: Boolean
get() = predicateBasedProvider.matches(FirSerializationPredicates.hasMetaAnnotation, this) get() = predicateBasedProvider.matches(FirSerializationPredicates.hasMetaAnnotation, this)
context(FirSession) context(FirSession)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirClassSymbol<*>.shouldHaveGeneratedMethodsInCompanion: Boolean internal val FirClassSymbol<*>.shouldHaveGeneratedMethodsInCompanion: Boolean
get() = isSerializableObject get() = isSerializableObject
|| isSerializableEnum || isSerializableEnum
@@ -159,7 +146,6 @@ internal val FirClassSymbol<*>.shouldHaveGeneratedMethodsInCompanion: Boolean
|| isSealedSerializableInterface || isSealedSerializableInterface
context(FirSession) context(FirSession)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirClassSymbol<*>.isInternalSerializable: Boolean internal val FirClassSymbol<*>.isInternalSerializable: Boolean
get() { get() {
if (!classKind.isClass) return false if (!classKind.isClass) return false
@@ -172,7 +158,6 @@ val FirClassSymbol<*>.hasSerializableOrMetaAnnotationWithoutArgs: Boolean
(!hasSerializableAnnotation && hasMetaSerializableAnnotation) (!hasSerializableAnnotation && hasMetaSerializableAnnotation)
context(FirSession) context(FirSession)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirClassSymbol<*>.isAbstractOrSealedSerializableClass: Boolean internal val FirClassSymbol<*>.isAbstractOrSealedSerializableClass: Boolean
get() = isInternalSerializable && (rawStatus.modality == Modality.ABSTRACT || rawStatus.modality == Modality.SEALED) get() = isInternalSerializable && (rawStatus.modality == Modality.ABSTRACT || rawStatus.modality == Modality.SEALED)
@@ -180,7 +165,6 @@ internal val FirClassSymbol<*>.isAbstractOrSealedSerializableClass: Boolean
* Check that class is enum and marked by `Serializable` or meta-serializable annotation. * Check that class is enum and marked by `Serializable` or meta-serializable annotation.
*/ */
context(FirSession) context(FirSession)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirClassSymbol<*>.isSerializableEnum: Boolean internal val FirClassSymbol<*>.isSerializableEnum: Boolean
get() = classKind.isEnumClass && hasSerializableOrMetaAnnotation get() = classKind.isEnumClass && hasSerializableOrMetaAnnotation
@@ -8,7 +8,9 @@ package org.jetbrains.kotlinx.serialization.compiler.fir.checkers
import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.KtSourceElement
import org.jetbrains.kotlin.config.KotlinCompilerVersion import org.jetbrains.kotlin.config.KotlinCompilerVersion
import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.diagnostics.* import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
import org.jetbrains.kotlin.diagnostics.SourceElementPositioningStrategies
import org.jetbrains.kotlin.diagnostics.reportOn
import org.jetbrains.kotlin.fir.analysis.checkers.containsRepeatableAnnotation import org.jetbrains.kotlin.fir.analysis.checkers.containsRepeatableAnnotation
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirClassChecker import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirClassChecker
@@ -22,13 +24,13 @@ import org.jetbrains.kotlin.fir.resolve.defaultType
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.name.* import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.resolve.jvm.annotations.TRANSIENT_ANNOTATION_CLASS_ID import org.jetbrains.kotlin.resolve.jvm.annotations.TRANSIENT_ANNOTATION_CLASS_ID
import org.jetbrains.kotlin.types.AbstractTypeChecker import org.jetbrains.kotlin.types.AbstractTypeChecker
import org.jetbrains.kotlinx.serialization.compiler.diagnostic.RuntimeVersions import org.jetbrains.kotlinx.serialization.compiler.diagnostic.RuntimeVersions
import org.jetbrains.kotlinx.serialization.compiler.fir.* import org.jetbrains.kotlinx.serialization.compiler.fir.*
import org.jetbrains.kotlinx.serialization.compiler.fir.checkers.FirSerializationErrors.EXTERNAL_SERIALIZER_USELESS import org.jetbrains.kotlinx.serialization.compiler.fir.checkers.FirSerializationErrors.EXTERNAL_SERIALIZER_USELESS
import org.jetbrains.kotlinx.serialization.compiler.fir.getSerializerForClass
import org.jetbrains.kotlinx.serialization.compiler.fir.services.dependencySerializationInfoProvider import org.jetbrains.kotlinx.serialization.compiler.fir.services.dependencySerializationInfoProvider
import org.jetbrains.kotlinx.serialization.compiler.fir.services.findTypeSerializerOrContextUnchecked import org.jetbrains.kotlinx.serialization.compiler.fir.services.findTypeSerializerOrContextUnchecked
import org.jetbrains.kotlinx.serialization.compiler.fir.services.serializablePropertiesProvider import org.jetbrains.kotlinx.serialization.compiler.fir.services.serializablePropertiesProvider
@@ -84,7 +86,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkExternalSerializer(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) { private fun checkExternalSerializer(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) {
val serializableKType = classSymbol.getSerializerForClass(session) ?: return val serializableKType = classSymbol.getSerializerForClass(session) ?: return
val serializableClassSymbol = serializableKType.toRegularClassSymbol(session) ?: return val serializableClassSymbol = serializableKType.toRegularClassSymbol(session) ?: return
@@ -128,7 +129,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkInheritedAnnotations(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) { private fun checkInheritedAnnotations(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) {
fun annotationsFilter(annotations: List<FirAnnotation>): List<Pair<ClassId, FirAnnotation>> { fun annotationsFilter(annotations: List<FirAnnotation>): List<Pair<ClassId, FirAnnotation>> {
return annotations return annotations
@@ -158,7 +158,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun FirAnnotation.hasSameArguments(other: FirAnnotation): Boolean { private fun FirAnnotation.hasSameArguments(other: FirAnnotation): Boolean {
val m1 = argumentMapping.mapping val m1 = argumentMapping.mapping
val m2 = other.argumentMapping.mapping val m2 = other.argumentMapping.mapping
@@ -171,7 +170,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun FirExpression.isEqualTo(other: FirExpression): Boolean { private fun FirExpression.isEqualTo(other: FirExpression): Boolean {
return when { return when {
this is FirConstExpression<*> && other is FirConstExpression<*> -> kind == other.kind && value == other.value this is FirConstExpression<*> && other is FirConstExpression<*> -> kind == other.kind && value == other.value
@@ -202,7 +200,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkVersions(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) { private fun checkVersions(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) {
val currentVersions = session.versionReader.runtimeVersions ?: return val currentVersions = session.versionReader.runtimeVersions ?: return
if (!currentVersions.implementationVersionMatchSupported()) { if (!currentVersions.implementationVersionMatchSupported()) {
@@ -226,7 +223,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkCorrectTransientAnnotationIsUsed( private fun checkCorrectTransientAnnotationIsUsed(
classSymbol: FirClassSymbol<*>, classSymbol: FirClassSymbol<*>,
properties: List<FirSerializableProperty>, properties: List<FirSerializableProperty>,
@@ -246,7 +242,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun canBeSerializedInternally(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter): Boolean { private fun canBeSerializedInternally(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter): Boolean {
// if enum has meta or SerialInfo annotation on a class or entries and used plugin-generated serializer // if enum has meta or SerialInfo annotation on a class or entries and used plugin-generated serializer
if (session.dependencySerializationInfoProvider.useGeneratedEnumSerializer && classSymbol.isSerializableEnumWithMissingSerializer) { if (session.dependencySerializationInfoProvider.useGeneratedEnumSerializer && classSymbol.isSerializableEnumWithMissingSerializer) {
@@ -363,7 +358,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkClassWithCustomSerializer(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) { private fun checkClassWithCustomSerializer(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) {
val serializerType = classSymbol.getSerializableWith(session)?.fullyExpandedType(session) ?: return val serializerType = classSymbol.getSerializableWith(session)?.fullyExpandedType(session) ?: return
checkCustomSerializerMatch(classSymbol, source = null, classSymbol.defaultType(), serializerType, reporter) checkCustomSerializerMatch(classSymbol, source = null, classSymbol.defaultType(), serializerType, reporter)
@@ -371,7 +365,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private val FirClassSymbol<*>.isAnonymousObjectOrInsideIt: Boolean private val FirClassSymbol<*>.isAnonymousObjectOrInsideIt: Boolean
get() { get() {
if (this is FirAnonymousObjectSymbol) return true if (this is FirAnonymousObjectSymbol) return true
@@ -379,7 +372,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkEnum(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) { private fun checkEnum(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) {
if (!classSymbol.isEnumClass) return if (!classSymbol.isEnumClass) return
val entryBySerialName = mutableMapOf<String, FirEnumEntrySymbol>() val entryBySerialName = mutableMapOf<String, FirEnumEntrySymbol>()
@@ -403,7 +395,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun buildSerializableProperties(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter): FirSerializableProperties? { private fun buildSerializableProperties(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter): FirSerializableProperties? {
with(session) { with(session) {
if (!classSymbol.hasSerializableOrMetaAnnotation) return null if (!classSymbol.hasSerializableOrMetaAnnotation) return null
@@ -431,7 +422,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkTransients(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) { private fun checkTransients(classSymbol: FirClassSymbol<*>, reporter: DiagnosticReporter) {
for (propertySymbol in classSymbol.declarationSymbols.filterIsInstance<FirPropertySymbol>()) { for (propertySymbol in classSymbol.declarationSymbols.filterIsInstance<FirPropertySymbol>()) {
val isInitialized = propertySymbol.isLateInit || declarationHasInitializer(propertySymbol) val isInitialized = propertySymbol.isLateInit || declarationHasInitializer(propertySymbol)
@@ -455,7 +445,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun analyzePropertiesSerializers( private fun analyzePropertiesSerializers(
classSymbol: FirClassSymbol<*>, classSymbol: FirClassSymbol<*>,
properties: List<FirSerializableProperty>, properties: List<FirSerializableProperty>,
@@ -506,7 +495,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkTypeArguments(type: ConeKotlinType, source: KtSourceElement?, reporter: DiagnosticReporter) { private fun checkTypeArguments(type: ConeKotlinType, source: KtSourceElement?, reporter: DiagnosticReporter) {
for (typeArgument in type.typeArguments) { for (typeArgument in type.typeArguments) {
checkType( checkType(
@@ -518,18 +506,15 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun canSupportInlineClasses(): Boolean { private fun canSupportInlineClasses(): Boolean {
return session.versionReader.canSupportInlineClasses return session.versionReader.canSupportInlineClasses
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private val ConeKotlinType.isUnsupportedInlineType: Boolean private val ConeKotlinType.isUnsupportedInlineType: Boolean
get() = isSingleFieldValueClass(session) && !isPrimitiveOrNullablePrimitive get() = isSingleFieldValueClass(session) && !isPrimitiveOrNullablePrimitive
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkType(type: ConeKotlinType, source: KtSourceElement?, reporter: DiagnosticReporter) { private fun checkType(type: ConeKotlinType, source: KtSourceElement?, reporter: DiagnosticReporter) {
if (type.lowerBoundIfFlexible().isTypeParameter) return // type parameters always have serializer stored in class' field if (type.lowerBoundIfFlexible().isTypeParameter) return // type parameters always have serializer stored in class' field
if (type.isUnsupportedInlineType && !canSupportInlineClasses()) { if (type.isUnsupportedInlineType && !canSupportInlineClasses()) {
@@ -559,7 +544,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkCustomSerializerMatch( private fun checkCustomSerializerMatch(
containingClassSymbol: FirClassSymbol<*>, containingClassSymbol: FirClassSymbol<*>,
source: KtSourceElement?, source: KtSourceElement?,
@@ -583,7 +567,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkCustomSerializerIsNotLocal( private fun checkCustomSerializerIsNotLocal(
source: KtSourceElement?, source: KtSourceElement?,
classSymbol: FirClassSymbol<*>, classSymbol: FirClassSymbol<*>,
@@ -601,7 +584,6 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
private fun checkSerializerNullability( private fun checkSerializerNullability(
classType: ConeKotlinType, classType: ConeKotlinType,
serializerType: ConeKotlinType, serializerType: ConeKotlinType,
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.fir.types.toRegularClassSymbol
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.name.StandardClassIds
import org.jetbrains.kotlinx.serialization.compiler.fir.* import org.jetbrains.kotlinx.serialization.compiler.fir.*
import org.jetbrains.kotlinx.serialization.compiler.fir.getSerializableWith
import org.jetbrains.kotlinx.serialization.compiler.fir.services.dependencySerializationInfoProvider import org.jetbrains.kotlinx.serialization.compiler.fir.services.dependencySerializationInfoProvider
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames import org.jetbrains.kotlinx.serialization.compiler.resolve.SerialEntityNames
import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializationAnnotations import org.jetbrains.kotlinx.serialization.compiler.resolve.SerializationAnnotations
@@ -41,7 +40,6 @@ import org.jetbrains.kotlinx.serialization.compiler.resolve.SpecialBuiltins
// ---------------------- search utils ---------------------- // ---------------------- search utils ----------------------
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirClassSymbol<*>?.classSerializer: FirClassSymbol<*>? internal val FirClassSymbol<*>?.classSerializer: FirClassSymbol<*>?
get() { get() {
if (this == null) return null if (this == null) return null
@@ -61,7 +59,6 @@ internal val FirClassSymbol<*>?.classSerializer: FirClassSymbol<*>?
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
val FirClassSymbol<*>.polymorphicSerializerIfApplicableAutomatically: FirClassSymbol<*>? val FirClassSymbol<*>.polymorphicSerializerIfApplicableAutomatically: FirClassSymbol<*>?
get() { get() {
val serializerName = when { val serializerName = when {
@@ -84,27 +81,23 @@ val FirClassSymbol<*>.polymorphicSerializerIfApplicableAutomatically: FirClassSy
// ---------------------- annotation utils ---------------------- // ---------------------- annotation utils ----------------------
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirAnnotation.annotationClassSymbol: FirRegularClassSymbol? internal val FirAnnotation.annotationClassSymbol: FirRegularClassSymbol?
get() = annotationTypeRef.coneType get() = annotationTypeRef.coneType
.fullyExpandedType(session) .fullyExpandedType(session)
.toRegularClassSymbol(session) .toRegularClassSymbol(session)
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirAnnotation.isMetaSerializableAnnotation: Boolean internal val FirAnnotation.isMetaSerializableAnnotation: Boolean
get() = annotationClassSymbol?.hasAnnotation(SerializationAnnotations.metaSerializableAnnotationClassId, session) ?: false get() = annotationClassSymbol?.hasAnnotation(SerializationAnnotations.metaSerializableAnnotationClassId, session) ?: false
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal fun FirClassSymbol<*>.metaSerializableAnnotation(needArguments: Boolean): FirAnnotation? { internal fun FirClassSymbol<*>.metaSerializableAnnotation(needArguments: Boolean): FirAnnotation? {
val annotations = if (needArguments) resolvedAnnotationsWithClassIds else resolvedAnnotationsWithArguments val annotations = if (needArguments) resolvedAnnotationsWithClassIds else resolvedAnnotationsWithArguments
return annotations.firstOrNull { it.isMetaSerializableAnnotation } return annotations.firstOrNull { it.isMetaSerializableAnnotation }
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirClassSymbol<*>.serializableOrMetaAnnotationSource: KtSourceElement? internal val FirClassSymbol<*>.serializableOrMetaAnnotationSource: KtSourceElement?
get() { get() {
serializableAnnotation(needArguments = false, session)?.source?.let { return it } serializableAnnotation(needArguments = false, session)?.source?.let { return it }
@@ -113,7 +106,6 @@ internal val FirClassSymbol<*>.serializableOrMetaAnnotationSource: KtSourceEleme
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirBasedSymbol<*>.hasAnySerialAnnotation: Boolean internal val FirBasedSymbol<*>.hasAnySerialAnnotation: Boolean
get() = getSerialNameValue(session) != null || resolvedAnnotationsWithClassIds.any { get() = getSerialNameValue(session) != null || resolvedAnnotationsWithClassIds.any {
with(session) { it.annotationClassSymbol?.isSerialInfoAnnotation == true } with(session) { it.annotationClassSymbol?.isSerialInfoAnnotation == true }
@@ -134,7 +126,6 @@ fun FirClassSymbol<*>.getSuperClassOrAny(session: FirSession): FirRegularClassSy
} }
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirClassSymbol<*>.isSerializableEnumWithMissingSerializer: Boolean internal val FirClassSymbol<*>.isSerializableEnumWithMissingSerializer: Boolean
get() { get() {
if (!isEnumClass) return false if (!isEnumClass) return false
@@ -144,7 +135,6 @@ internal val FirClassSymbol<*>.isSerializableEnumWithMissingSerializer: Boolean
} }
context(FirSession) context(FirSession)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val FirClassSymbol<*>.serializableAnnotationIsUseless: Boolean internal val FirClassSymbol<*>.serializableAnnotationIsUseless: Boolean
get() = !classKind.isEnumClass && get() = !classKind.isEnumClass &&
hasSerializableOrMetaAnnotationWithoutArgs && hasSerializableOrMetaAnnotationWithoutArgs &&
@@ -155,13 +145,11 @@ internal val FirClassSymbol<*>.serializableAnnotationIsUseless: Boolean
// ---------------------- type utils ---------------------- // ---------------------- type utils ----------------------
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val ConeKotlinType.serializableWith: ConeKotlinType? internal val ConeKotlinType.serializableWith: ConeKotlinType?
get() = customAnnotations.getSerializableWith(session) ?: toRegularClassSymbol(session)?.getSerializableWith(session) get() = customAnnotations.getSerializableWith(session) ?: toRegularClassSymbol(session)?.getSerializableWith(session)
context(CheckerContext) context(CheckerContext)
@Suppress("IncorrectFormatting") // KTIJ-22227
internal val ConeKotlinType.overriddenSerializer: ConeKotlinType? internal val ConeKotlinType.overriddenSerializer: ConeKotlinType?
get() = toRegularClassSymbol(session)?.getSerializableWith(session) get() = toRegularClassSymbol(session)?.getSerializableWith(session)