Files
kotlin-fork/compiler/testData/codegen/box/delegatedProperty/delegateToAnother/genericJavaProperty.kt
T
Ilya Chernikov 78ca733c38 FIR JS: add K2 variants of all other JS tests
except tests that are not possible to add without some modifications in
the test infra. See todos on the commented-out test declarations
2022-11-12 16:28:24 +01:00

39 lines
1.0 KiB
Kotlin
Vendored

// TARGET_BACKEND: JVM
// IGNORE_BACKEND_K2: JVM_IR, JS_IR
// WITH_REFLECT
// WITH_STDLIB
// FILE: J.java
public interface J<T> {
public T getValue();
}
// FILE: box.kt
class Impl(val x: String) : J<String> {
override fun getValue() = x
}
val j1: J<String> = Impl("O")
// Note that taking a reference to `J<T>::value` is not permitted by the frontend
// in any context except as a direct argument to `by`; e.g. `val x by run { j1::value }`
// would produce an error.
val x by j1::value
@Target(AnnotationTarget.LOCAL_VARIABLE, AnnotationTarget.EXPRESSION, AnnotationTarget.FILE)
@Retention(AnnotationRetention.SOURCE)
annotation class Anno
fun box(): String {
val j2: J<String> = Impl("K")
val y by j2::value
val y1 by @Anno j2::value
val y2 by (j2::value)
val y3 by (j2)::value
val y4 by ((j2)::value)
val y5 by (((j2)::value))
val y6 by @Anno() (((j2)::value))
val y7 by (@Anno() ((j2)::value))
val y8 by ((@Anno() (j2)::value))
val y9 by @Anno() (j2)::value
return x + y
}