36 lines
623 B
Kotlin
Vendored
36 lines
623 B
Kotlin
Vendored
// TODO: Investigate ES modules issue
|
|
|
|
// FILE: Outer.kt
|
|
|
|
package another
|
|
open class Outer {
|
|
protected class Stage(val run: () -> Unit)
|
|
protected class My(var stage: Stage? = null) {
|
|
fun initStage(f: () -> Unit): Stage {
|
|
stage = Stage(f)
|
|
return stage!!
|
|
}
|
|
}
|
|
protected fun my(init: My.() -> Unit): My {
|
|
val result = My()
|
|
result.init()
|
|
return result
|
|
}
|
|
}
|
|
|
|
// FILE: Main.kt
|
|
|
|
package other
|
|
class Derived : another.Outer() {
|
|
init {
|
|
my {
|
|
initStage { }
|
|
}
|
|
}
|
|
}
|
|
|
|
fun box(): String {
|
|
Derived()
|
|
return "OK"
|
|
}
|