Paulius Ruminas
04/15/2019, 8:22 PMinterface Command<T>
class TestUnitCommand : Command<Unit>
class TestIntCommand : Command<Int>
class TestStringCommand : Command<String>
class Result<T>
inline fun <reified T : Command<R>, reified R : Any> execute(crossinline block: suspend (T) -> R) {}
fun main() {
execute<TestUnitCommand, Unit> { Result<Unit>() } // OK
execute<TestIntCommand, Int> { Result<Int>() } // Error
execute<TestStringCommand, String> { Result<String>() } // Error
}
Why does it not error when Command
generic parameter is Unit
? Does it implicitly not return anything?karelpeeters
05/26/2019, 4:19 PMUnit
, that's the point.Paulius Ruminas
05/27/2019, 11:45 AMkarelpeeters
05/27/2019, 3:37 PMPaulius Ruminas
05/28/2019, 5:42 PM