mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-11 15:53:46 +00:00
Most of these tests used this directive as a way to opt in to a new language feature, and most of those features are already stable for a long time, so no opt-in is needed. Some other tests used the directive to opt out from a language feature, replace those by the `LANGUAGE` directive. One test used the directive to test behavior that actually depended on the API version; use `API_VERSION` directive there instead.
30 lines
573 B
Kotlin
Vendored
30 lines
573 B
Kotlin
Vendored
// IGNORE_BACKEND: JVM_IR
|
|
// TARGET_BACKEND: JVM
|
|
// WITH_RUNTIME
|
|
// FILE: test.kt
|
|
|
|
import kotlin.test.*
|
|
|
|
var component1Evaluated = false
|
|
|
|
// NB extension receiver is nullable
|
|
operator fun J?.component1() = 1.also { component1Evaluated = true }
|
|
|
|
private operator fun J.component2() = 2
|
|
|
|
fun use(x: Any) {}
|
|
|
|
fun box(): String {
|
|
assertFailsWith<IllegalArgumentException> {
|
|
val (a, b) = J.j()
|
|
}
|
|
if (!component1Evaluated) return "component1 should be evaluated"
|
|
return "OK"
|
|
}
|
|
|
|
|
|
// FILE: J.java
|
|
public class J {
|
|
public static J j() { return null; }
|
|
}
|