[FIR, Parcelize] Fix checkers after primary ctor annotation changes

KT-56177
This commit is contained in:
Kirill Rakhman
2023-02-13 10:15:47 +01:00
committed by Space Team
parent eee66ab43f
commit c9d68f6d3e
2 changed files with 5 additions and 5 deletions
@@ -11,8 +11,7 @@ import org.jetbrains.kotlin.diagnostics.reportOn
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirAnnotationCallChecker
import org.jetbrains.kotlin.fir.analysis.checkers.findClosestClassOrObject
import org.jetbrains.kotlin.fir.correspondingProperty
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.declarations.FirProperty
import org.jetbrains.kotlin.fir.declarations.hasAnnotation
import org.jetbrains.kotlin.fir.declarations.toAnnotationClassId
import org.jetbrains.kotlin.fir.declarations.toAnnotationClassLikeType
@@ -89,9 +88,9 @@ object FirParcelizeAnnotationChecker : FirAnnotationCallChecker() {
checkIfTheContainingClassIsParcelize(annotationCall, context, reporter)
// If we are looking at a parameter of the primary constructor of a class, check that the
// If we are looking at a property defined in the primary constructor of a class, check that the
// enclosing class doesn't have the same TypeParceler annotation.
if (annotationContainer is FirValueParameter && annotationContainer.correspondingProperty?.fromPrimaryConstructor == true) {
if (annotationContainer is FirProperty && annotationContainer.fromPrimaryConstructor == true) {
val enclosingClass = context.findClosestClassOrObject() ?: return
val annotationType = annotationCall.toAnnotationClassLikeType(context.session) ?: return
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.diagnostics.hasValOrVar
import org.jetbrains.kotlin.diagnostics.reportOn
import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirConstructorChecker
import org.jetbrains.kotlin.fir.correspondingProperty
import org.jetbrains.kotlin.fir.declarations.FirConstructor
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.toAnnotationClassId
@@ -37,7 +38,7 @@ object FirParcelizeConstructorChecker : FirConstructorChecker() {
)
}
if (valueParameter.defaultValue == null) {
val illegalAnnotation = valueParameter.annotations.firstOrNull {
val illegalAnnotation = valueParameter.correspondingProperty?.annotations?.firstOrNull {
it.toAnnotationClassId(context.session) in ParcelizeNames.IGNORED_ON_PARCEL_CLASS_IDS
}
if (illegalAnnotation != null) {