[K/N][K2] K2 behavioral difference with inconsistent inheritance of ObjCName

When a declaration with an ObjC annotation is stored in a different
module, the annotation arguments are not resolved by default. This leads
to a bug in the checker. Before attempting to find the objCName, it is
necessary to resolve the annotation first.

#KT-64276
This commit is contained in:
Anastasia.Nekrasova
2024-02-12 19:19:29 +03:00
committed by Space Team
parent 700432e111
commit bb8c7dd04c
5 changed files with 67 additions and 8 deletions
@@ -0,0 +1,38 @@
// FIR_IDENTICAL
// MODULE: lib
// FILE: kotlin1.kt
@file:OptIn(ExperimentalObjCName::class)
package example
import kotlin.experimental.ExperimentalObjCName
interface BaseInterface {
@kotlin.native.ObjCName("getValue")
fun getValue(): Int
}
// MODULE: main(lib)
// FILE: kotlin2.kt
@file:OptIn(ExperimentalObjCName::class)
package example
import kotlin.experimental.ExperimentalObjCName
open class BaseClass {
@kotlin.native.ObjCName("getValue")
fun getValue(): Int {
return 0
}
}
// FILE: kotlin3.kt
@file:OptIn(ExperimentalObjCName::class)
package example
import kotlin.experimental.ExperimentalObjCName
class Derived: BaseClass(), BaseInterface {}