| // TARGET_BACKEND: JVM |
| // WITH_REFLECT |
| // IGNORE_INLINER_K2: IR |
| // FILE: 1.kt |
| |
| package test |
| |
| inline fun inf(crossinline cif: Any.() -> String): () -> String { |
| // Approximate the types manually to avoid running into KT-30696 |
| val factory: () -> () -> String = { |
| object : () -> String { |
| override fun invoke() = cif() |
| } |
| } |
| return factory() |
| } |
| // FILE: 2.kt |
| |
| import test.* |
| |
| fun box(): String { |
| val simpleName = inf { |
| javaClass.simpleName |
| }() |
| |
| if (simpleName != "" ) return "fail 1: $simpleName" |
| |
| val name = inf { |
| javaClass.name |
| }() |
| |
| if (name != "_2Kt\$box$\$inlined\$inf$2$1" ) return "fail 2: $name" |
| |
| |
| return "OK" |
| } |