32 lines
691 B
Kotlin
Vendored
32 lines
691 B
Kotlin
Vendored
// IGNORE_INLINER: IR
|
|
|
|
// FILE: 1.kt
|
|
|
|
|
|
package test
|
|
abstract class Introspector {
|
|
abstract inner class SchemaRetriever(val transaction: String) {
|
|
inline fun inSchema(crossinline modifier: (String) -> Unit)
|
|
{ val lambda = { modifier.invoke(transaction) }; lambda() }
|
|
}
|
|
}
|
|
|
|
// FILE: 2.kt
|
|
import test.*
|
|
|
|
var result = "fail"
|
|
|
|
class IntrospectorImpl() : Introspector() {
|
|
inner class SchemaRetriever(transaction: String) : Introspector.SchemaRetriever(transaction) {
|
|
internal fun retrieve() {
|
|
inSchema { schema -> result = schema }
|
|
}
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
IntrospectorImpl().SchemaRetriever("OK").retrieve()
|
|
|
|
return result
|
|
}
|