[FIR] Add companion scope before static scope

Static scope is checked first during resolution
(scopes are in reverse order).
This fixes a difference between how K1 and K2 resolve annotations.

#KT-63249 Fixed
This commit is contained in:
Kirill Rakhman
2023-12-12 18:49:45 +01:00
committed by Space Team
parent 2c74a2356a
commit 44b3c66ad7
10 changed files with 603 additions and 5 deletions
@@ -0,0 +1,74 @@
// FIR_DUMP
class CompanionOnly {
@<!UNRESOLVED_REFERENCE!>Ann<!>
companion object {
annotation class Ann
@Ann
object Foo
}
}
class Test {
annotation class Ann
@Ann
companion object {
annotation class Ann
@Ann
object Foo
}
}
open class Super {
annotation class Ann
}
class TestWithSuperAndOwn : Super() {
annotation class Ann
@Ann
companion object {
annotation class Ann
@Ann
object Foo
}
}
class TestWithSuperOnly : Super() {
@Ann // Change in resolution from K1 to K2, see KT-64299
companion object {
annotation class Ann
@Ann
object Foo
}
}
open class SuperWithCompanion {
companion object {
annotation class Ann
}
}
class TestWithSuperWithCompanionOnly : SuperWithCompanion() {
@<!UNRESOLVED_REFERENCE!>Ann<!>
companion object {
annotation class Ann
@Ann
object Foo
}
}
class TestWithSuperWithCompanionOnly2 : SuperWithCompanion() {
@<!UNRESOLVED_REFERENCE!>Ann<!>
companion object {
@<!UNRESOLVED_REFERENCE!>Ann<!>
object Foo
}
}