[FIR] Introduce isRealOwnerOf utility function

This commit is contained in:
Ivan Kochurkin
2023-10-06 20:37:44 +02:00
committed by Space Team
parent bfc0126105
commit 7ce0284e81
6 changed files with 25 additions and 18 deletions
@@ -18,11 +18,11 @@ import org.jetbrains.kotlin.fir.analysis.checkers.toRegularClassSymbol
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.annotationPlatformSupport
import org.jetbrains.kotlin.fir.declarations.utils.*
import org.jetbrains.kotlin.fir.dispatchReceiverClassLookupTagOrNull
import org.jetbrains.kotlin.fir.expressions.*
import org.jetbrains.kotlin.fir.moduleData
import org.jetbrains.kotlin.fir.resolve.defaultType
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
import org.jetbrains.kotlin.fir.resolve.isRealOwnerOf
import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.name.ClassId
@@ -453,9 +453,10 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
properties: List<FirSerializableProperty>,
reporter: DiagnosticReporter
) {
val classLookupTag = classSymbol.toLookupTag()
for (property in properties) {
// Don't report anything on properties from supertypes
if (property.propertySymbol.dispatchReceiverClassLookupTagOrNull() != classSymbol.toLookupTag()) continue
if (!classLookupTag.isRealOwnerOf(property.propertySymbol)) continue
val customSerializerType = property.serializableWith
val serializerSymbol = customSerializerType?.toRegularClassSymbol(session)
val propertySymbol = property.propertySymbol