| // LANGUAGE: +UseGetterNameForPropertyAnnotationsMethodOnJvm |
| // TARGET_BACKEND: JVM |
| // WITH_REFLECT |
| |
| import kotlin.reflect.KProperty2 |
| |
| class C { |
| @Deprecated("int") |
| @get:JvmName("mapIntIntHex") |
| val Map<Int, Int>.hex: String get() = "O" |
| |
| @Deprecated("byte") |
| @get:JvmName("mapIntByteHex") |
| val Map<Int, Byte>.hex: String get() = "K" |
| } |
| |
| fun box(): String { |
| val a1 = C::class.members.single { |
| it is KProperty2<*, *, *> && it.parameters[1].type.arguments[1].type!!.classifier == Int::class |
| }.annotations |
| if ((a1.single() as Deprecated).message != "int") |
| return "Fail annotations on Map<Int, Int>::hex: $a1" |
| |
| val a2 = C::class.members.single { |
| it is KProperty2<*, *, *> && it.parameters[1].type.arguments[1].type!!.classifier == Byte::class |
| }.annotations |
| if ((a2.single() as Deprecated).message != "byte") |
| return "Fail annotations on Map<Int, Byte>::hex: $a2" |
| |
| return with(C()) { mapOf(0 to 0).hex + mapOf(0 to 0.toByte()).hex } |
| } |