sdeleuze
04/10/2019, 8:02 AMsuspend fun <T : Any> RowsFetchSpec<T>.awaitOne(): T = one().awaitSingle()
but when it used, type inference shows T!
, what did I miss? I have specified that T
extends non nullable Any
so I would expect return type T
.sdeleuze
04/10/2019, 8:02 AMdiesieben07
04/10/2019, 8:05 AMT
is inferred from the RowFetchSpec
instance, which is the Java class, T
automatically becomes a flexible type.sdeleuze
04/10/2019, 8:27 AM<T : Any>
for non suspending extensions to enforce return type non-nullability. And even when I use suspend fun <T> RowsFetchSpec<T>.awaitOne() = one().awaitSingle()!!
the inferred type on usage side is still T!
while it is shown as T
on extension definition side.sdeleuze
04/10/2019, 8:28 AMsdeleuze
04/10/2019, 8:28 AMsuspend fun <T> RowsFetchSpec<T>.awaitOne() = one().awaitSingle()!!
?diesieben07
04/10/2019, 8:31 AMsdeleuze
04/10/2019, 8:54 AMsdeleuze
04/10/2019, 8:59 AM