Added tests on class delegation

This commit is contained in:
Igor Chevdar
2017-02-21 17:23:09 +03:00
parent dd350f88c8
commit bb82109ded
5 changed files with 107 additions and 0 deletions
@@ -0,0 +1,21 @@
open class Content() {
override fun toString() = "OK"
}
interface Box<E> {
fun get(): E
}
interface ContentBox<T : Content> : Box<T>
object Impl : ContentBox<Content> {
override fun get(): Content = Content()
}
class ContentBoxDelegate<T : Content>() : ContentBox<T> by (Impl as ContentBox<T>)
fun box() = ContentBoxDelegate<Content>().get().toString()
fun main(args: Array<String>) {
println(box())
}