FIR: fix order of property accessor annotations

#KT-57219 Fixed
This commit is contained in:
Alexander Udalov
2023-05-17 23:23:58 +02:00
committed by Space Team
parent 9c995755f0
commit 40c628d431
23 changed files with 54 additions and 367 deletions
@@ -4,9 +4,6 @@
// FULL_JDK
// JVM_TARGET: 1.8
// IGNORE_BACKEND_K2: JVM_IR
// FIR status: KT-57219 K2: incorrect relative order of normal and use-site-targeted annotations on property getter in the resulting bytecode
@Repeatable
annotation class A(val v: String)
@@ -21,5 +18,10 @@ val ef: Int
@A("e") @A("f") get() = 0
@get:A("g")
val ghi: Int
val gh: Int
@A("h") get() = 0
@set:A("i")
var ij: Int
get() = 0
@A("j") set(value) {}
@@ -25,6 +25,8 @@ public final class PropertyGetterUseSiteTargetKt {
public final static @A$Container(value=[A(v="a"), A(v="b")]) method getAb(): int
public final static @A$Container(value=[A(v="c"), A(v="d")]) method getCd(): int
public final static @A$Container(value=[A(v="e"), A(v="f")]) method getEf(): int
public final static @A$Container(value=[A(v="g"), A(v="h")]) method getGhi(): int
public final static @A$Container(value=[A(v="g"), A(v="h")]) method getGh(): int
public final static method getIj(): int
public final static @A$Container(value=[A(v="i"), A(v="j")]) method setIj(p0: int): void
public inner class A$Container
}
@@ -4,19 +4,19 @@
// Ann is not repeatable
annotation class Ann(val x: Int)
<!REPEATED_ANNOTATION!>@get:Ann(10)<!>
@get:Ann(10)
val a: String
@Ann(20) get() = "foo"
<!REPEATED_ANNOTATION!>@Ann(20)<!> get() = "foo"
<!REPEATED_ANNOTATION!>@set:Ann(10)<!>
@set:Ann(10)
var b: String = ""
@Ann(20) set(value) { field = value }
<!REPEATED_ANNOTATION!>@Ann(20)<!> set(value) { field = value }
<!REPEATED_ANNOTATION!>@setparam:Ann(10)<!>
var c = " "
set(@Ann(20) x) {}
<!REPEATED_ANNOTATION!>@get:Ann(10)<!>
@get:Ann(10)
<!REPEATED_ANNOTATION!>@get:Ann(20)<!>
val d: String
@Ann(30) <!REPEATED_ANNOTATION!>@Ann(40)<!> get() = "foo"
<!REPEATED_ANNOTATION!>@Ann(30)<!> <!REPEATED_ANNOTATION!>@Ann(40)<!> get() = "foo"
@@ -0,0 +1,22 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// !LANGUAGE: +ProhibitRepeatedUseSiteTargetAnnotations
// Ann is not repeatable
annotation class Ann(val x: Int)
@get:Ann(10)
val a: String
<!REPEATED_ANNOTATION!>@Ann(20)<!> get() = "foo"
@set:Ann(10)
var b: String = ""
<!REPEATED_ANNOTATION!>@Ann(20)<!> set(value) { field = value }
<!REPEATED_ANNOTATION!>@setparam:Ann(10)<!>
var c = " "
set(@Ann(20) x) {}
@get:Ann(10)
<!REPEATED_ANNOTATION!>@get:Ann(20)<!>
val d: String
<!REPEATED_ANNOTATION!>@Ann(30)<!> <!REPEATED_ANNOTATION!>@Ann(40)<!> get() = "foo"
@@ -1,4 +1,3 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER
// !LANGUAGE: +ProhibitRepeatedUseSiteTargetAnnotations