blob: cb482e0d566244072434f9f04c0c58a0b986dc41 [file] [log] [blame]
// TARGET_BACKEND: JVM
// WITH_STDLIB
// WITH_REFLECT
// MODULE: lib
// FILE: A.kt
package lib
@JvmName("bar")
fun foo() = "foo"
var v: Int = 1
@JvmName("vget")
get
@JvmName("vset")
set
fun consumeInt(x: Int) {}
open class A {
val OK: String = "OK"
@JvmName("OK") get
@JvmName("g")
fun <T> f(x: T, y: Int = 1) = x
}
annotation class Anno(@get:JvmName("uglyJvmName") val value: String)
// MODULE: main(lib)
// FILE: B.kt
import lib.*
class B : A()
@Anno("OK")
fun annotated() {}
fun box(): String {
foo()
v = 1
consumeInt(v)
val annoValue = (::annotated.annotations.single() as Anno).value
if (annoValue != "OK") return "Fail annotation value: $annoValue"
val b = B()
if (b.f("OK") != "OK") return "Fail call of annotated method"
return A().OK
}