Browse Source

Remove unnecessary reification from Kotlin R2DBC extensions.

This allows calling the extensions from generic code that has erased types.

Original pull request #1496
3.0.x
Oleg Oshmyan 3 years ago committed by Jens Schauder
parent
commit
c4741dece2
No known key found for this signature in database
GPG Key ID: 9537B67540F0A581
  1. 3
      spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveInsertOperationExtensions.kt
  2. 9
      spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveSelectOperationExtensions.kt

3
spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveInsertOperationExtensions.kt

@ -21,6 +21,7 @@ import kotlinx.coroutines.reactive.awaitSingle @@ -21,6 +21,7 @@ import kotlinx.coroutines.reactive.awaitSingle
* Extensions for [ReactiveInsertOperation].
*
* @author Mark Paluch
* @author Oleg Oshmyan
* @since 1.1
*/
@ -33,5 +34,5 @@ inline fun <reified T : Any> ReactiveInsertOperation.insert(): ReactiveInsertOpe @@ -33,5 +34,5 @@ inline fun <reified T : Any> ReactiveInsertOperation.insert(): ReactiveInsertOpe
/**
* Coroutines variant of [ReactiveInsertOperation.TerminatingInsert.using].
*/
suspend inline fun <reified T : Any> ReactiveInsertOperation.TerminatingInsert<T>.usingAndAwait(o: T): T =
suspend fun <T : Any> ReactiveInsertOperation.TerminatingInsert<T>.usingAndAwait(o: T): T =
using(o).awaitSingle()

9
spring-data-r2dbc/src/main/kotlin/org/springframework/data/r2dbc/core/ReactiveSelectOperationExtensions.kt

@ -24,6 +24,7 @@ import kotlinx.coroutines.reactive.awaitSingle @@ -24,6 +24,7 @@ import kotlinx.coroutines.reactive.awaitSingle
* Extensions for [ReactiveSelectOperation].
*
* @author Mark Paluch
* @author Oleg Oshmyan
* @since 1.1
*/
@ -42,25 +43,25 @@ inline fun <reified T : Any> ReactiveSelectOperation.SelectWithProjection<*>.asT @@ -42,25 +43,25 @@ inline fun <reified T : Any> ReactiveSelectOperation.SelectWithProjection<*>.asT
/**
* Non-nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.one].
*/
suspend inline fun <reified T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitOne(): T =
suspend fun <T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitOne(): T =
one().awaitSingle()
/**
* Nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.one].
*/
suspend inline fun <reified T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitOneOrNull(): T? =
suspend fun <T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitOneOrNull(): T? =
one().awaitFirstOrNull()
/**
* Non-nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.first].
*/
suspend inline fun <reified T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitFirst(): T =
suspend fun <T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitFirst(): T =
first().awaitSingle()
/**
* Nullable Coroutines variant of [ReactiveSelectOperation.TerminatingSelect.first].
*/
suspend inline fun <reified T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitFirstOrNull(): T? =
suspend fun <T : Any> ReactiveSelectOperation.TerminatingSelect<T>.awaitFirstOrNull(): T? =
first().awaitFirstOrNull()
/**

Loading…
Cancel
Save