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) reporter.reportOn(annotation.source, FirErrors.OPT_IN_MARKER_ON_WRONG_TARGET, "getter", context)
} }
if (useSiteTarget == SETTER_PARAMETER || if (useSiteTarget == SETTER_PARAMETER ||
(useSiteTarget != PROPERTY && declaration is FirValueParameter && (useSiteTarget != PROPERTY && useSiteTarget != PROPERTY_SETTER && declaration is FirValueParameter &&
KotlinTarget.VALUE_PARAMETER in annotationClass.getAllowedAnnotationTargets()) KotlinTarget.VALUE_PARAMETER in annotationClass.getAllowedAnnotationTargets())
) { ) {
reporter.reportOn(annotation.source, FirErrors.OPT_IN_MARKER_ON_WRONG_TARGET, "parameter", context) 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() {} 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 final class Wrapper {
public constructor Wrapper(/*0*/ foo: kotlin.Int) public constructor Wrapper(/*0*/ foo: kotlin.Int)
@api.E6 public final val foo: kotlin.Int @api.E6 public final val foo: kotlin.Int