FIR: fix OPT_IN_MARKER_ON_WRONG_TARGET (setter via parameter case)

This commit fixes FIR bootstrap compilation
This commit is contained in:
Mikhail Glukhikh
2021-09-30 11:45:55 +03:00
committed by TeamCityServer
parent aa247726b6
commit d3662b48a2
3 changed files with 10 additions and 1 deletions
@@ -29,7 +29,7 @@ object FirOptInMarkedDeclarationChecker : FirAnnotatedDeclarationChecker() {
reporter.reportOn(annotation.source, FirErrors.OPT_IN_MARKER_ON_WRONG_TARGET, "getter", context)
}
if (useSiteTarget == SETTER_PARAMETER ||
(useSiteTarget != PROPERTY && declaration is FirValueParameter &&
(useSiteTarget != PROPERTY && useSiteTarget != PROPERTY_SETTER && declaration is FirValueParameter &&
KotlinTarget.VALUE_PARAMETER in annotationClass.getAllowedAnnotationTargets())
) {
reporter.reportOn(annotation.source, FirErrors.OPT_IN_MARKER_ON_WRONG_TARGET, "parameter", context)
@@ -146,3 +146,4 @@ class Z(b: B) : Y(b) {
override fun f() {}
}
class WithSetter(@set:E6 var withSetter: String)
@@ -159,6 +159,14 @@ package api {
}
}
public final class WithSetter {
public constructor WithSetter(/*0*/ withSetter: kotlin.String)
@set:api.E6 public final var withSetter: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Wrapper {
public constructor Wrapper(/*0*/ foo: kotlin.Int)
@api.E6 public final val foo: kotlin.Int