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