[Serialization] Don't report errors on properties from supertypes
^KT-53926 Fixed
This commit is contained in:
committed by
Space Team
parent
b4bc659008
commit
e4a51dfa1b
+1
-1
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.extensions.FirPredicateBasedProvider
|
|||||||
* to create predicate with meta annotations, and [LookupPredicate] allows to use only annotations with predefined
|
* to create predicate with meta annotations, and [LookupPredicate] allows to use only annotations with predefined
|
||||||
* qualified names
|
* qualified names
|
||||||
*
|
*
|
||||||
* Note that predicates can not be used for matching or looking up for local declarations (local functions, local classes, anonymous objects
|
* Note that predicates can not be used for matching or looking up local declarations (local functions, local classes, anonymous objects
|
||||||
* and their members). The only exception is matching local classes/anonymous objects with [AbstractPredicate.AnnotatedWith] and
|
* and their members). The only exception is matching local classes/anonymous objects with [AbstractPredicate.AnnotatedWith] and
|
||||||
* [AbstractPredicate.MetaAnnotatedWith] by [FirPredicateBasedProvider.matches]
|
* [AbstractPredicate.MetaAnnotatedWith] by [FirPredicateBasedProvider.matches]
|
||||||
*/
|
*/
|
||||||
|
|||||||
+3
-1
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.isSingleFieldValueClass
|
|||||||
import org.jetbrains.kotlin.fir.analysis.checkers.toRegularClassSymbol
|
import org.jetbrains.kotlin.fir.analysis.checkers.toRegularClassSymbol
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||||
|
import org.jetbrains.kotlin.fir.dispatchReceiverClassLookupTagOrNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.*
|
import org.jetbrains.kotlin.fir.expressions.*
|
||||||
import org.jetbrains.kotlin.fir.moduleData
|
import org.jetbrains.kotlin.fir.moduleData
|
||||||
import org.jetbrains.kotlin.fir.resolve.defaultType
|
import org.jetbrains.kotlin.fir.resolve.defaultType
|
||||||
@@ -453,7 +454,8 @@ object FirSerializationPluginClassChecker : FirClassChecker() {
|
|||||||
reporter: DiagnosticReporter
|
reporter: DiagnosticReporter
|
||||||
) {
|
) {
|
||||||
for (property in properties) {
|
for (property in properties) {
|
||||||
// TODO: reporting diagnostics on properties from superclasses looks a bad idea
|
// Don't report anything on properties from supertypes
|
||||||
|
if (property.propertySymbol.dispatchReceiverClassLookupTagOrNull() != classSymbol.toLookupTag()) continue
|
||||||
val customSerializerType = property.serializableWith
|
val customSerializerType = property.serializableWith
|
||||||
val serializerSymbol = customSerializerType?.toRegularClassSymbol(session)
|
val serializerSymbol = customSerializerType?.toRegularClassSymbol(session)
|
||||||
val propertySymbol = property.propertySymbol
|
val propertySymbol = property.propertySymbol
|
||||||
|
|||||||
Reference in New Issue
Block a user