kierans777
06/29/2021, 4:41 AMfun doSomething(): (Class<T>) -> T {}
However because lambda expressions can't have generic types, this doesn't compile for me.ephemient
06/29/2021, 4:47 AMfun <T> doSomething(): (Class<T>) -> T
would be legalkierans777
06/29/2021, 4:49 AMdoSomething
generic.ephemient
06/29/2021, 4:49 AMkierans777
06/29/2021, 4:50 AMephemient
06/29/2021, 4:50 AMfun interface DoSomething<T> : (Class<T>) -> T
fun doSomething(): DoSomething<*> {}
is also legal, but pretty awkward (it's not the lambda type itself, it's a subtype)ephemient
06/29/2021, 4:56 AMrandomcat
06/30/2021, 12:16 AMrandomcat
06/30/2021, 12:17 AMinterface I {
operator fun <T> invoke(klazz: Class<T>): T
}
kierans777
06/30/2021, 12:47 AMrandomcat
06/30/2021, 12:48 AM