kirillrakhman
05/09/2016, 1:20 PMinterface Foo {
fun duStuff()
}
interface FooCompanion<T: Foo> {
fun create() : T
}
class FooX : Foo {
companion object : FooCompanion<FooX> {
override fun create() = FooX()
}
override fun duStuff() {
}
}
fun <T : Foo> FooCompanion<T>.doStuff() = create().duStuff()