Files
kotlin-fork/compiler/testData/codegen/box/involvesIrInterpreter/intrinsicConst/kCallableNameWithSideEffect.kt
T

46 lines
1.1 KiB
Kotlin
Vendored

// !LANGUAGE: +IntrinsicConstEvaluation
// DONT_TARGET_EXACT_BACKEND: JVM
// DONT_TARGET_EXACT_BACKEND: JS
// WITH_STDLIB
fun <T> T.id() = this
fun someSideEffect(value: Any?) = {}
class A {
val a = ""
fun b() = ""
init {
someSideEffect("A init")
}
fun test() {
val a = A::a.<!EVALUATED("a")!>name<!>
val b = A::b.<!EVALUATED("b")!>name<!>
val c = ::A.<!EVALUATED("<init>")!>name<!>
val d = this::a.<!EVALUATED("a")!>name<!>
val e = A()::b.<!EVALUATED("b")!>name<!>
val f = getA()::b.<!EVALUATED("b")!>name<!>
val temp = A()
val g = temp::b.<!EVALUATED("b")!>name<!>
val insideStringConcat = "${temp::b.<!EVALUATED("b")!>name<!>}"
val complexExpression1 = A()::a.<!EVALUATED("a")!>name<!> + A()::b.<!EVALUATED("b")!>name<!>
val complexExpression2 = <!EVALUATED("ab")!>A::a.name + A::b.name<!>
var recursive = ::test.<!EVALUATED("test")!>name<!>
}
fun getA(): A = A()
}
// STOP_EVALUATION_CHECKS
fun box(): String {
A().test()
return "OK"
}