<@U0BDMQTHS>, <@U0ANSGGVC>: FWIW, there are plenty...
# language-proposals
m
@mikehearn, @kirillrakhman: FWIW, there are plenty of alternatives when using a factory instead:
Copy code
fun main(args: Array<String>) {
    SomeType() { "" }
    
    SomeType<String>()
    
    SomeType(::String)
}

class SomeType<T: Any>(factory : () -> T) {
    val instance = factory()
    
    companion object {
        inline operator fun <reified T: Any> invoke() = SomeType() {
            T::class.java.newInstance()
        }
    }
}