File tree Expand file tree Collapse file tree 3 files changed +14
-5
lines changed
integration/kotlinx-coroutines-play-services Expand file tree Collapse file tree 3 files changed +14
-5
lines changed Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ import java.util.zip.ZipFile
77 * Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
88 */
99
10- ext. tasks_version = ' 15 .0.1'
10+ ext. tasks_version = ' 16 .0.1'
1111
1212def attr = Attribute . of(" artifactType" , String . class)
1313configurations {
Original file line number Diff line number Diff line change @@ -50,7 +50,8 @@ public fun <T> Task<T>.asDeferred(): Deferred<T> {
5050 if (isComplete) {
5151 val e = exception
5252 return if (e == null ) {
53- CompletableDeferred <T >().apply { if (isCanceled) cancel() else complete(result) }
53+ @Suppress(" UNCHECKED_CAST" )
54+ CompletableDeferred <T >().apply { if (isCanceled) cancel() else complete(result as T ) }
5455 } else {
5556 CompletableDeferred <T >().apply { completeExceptionally(e) }
5657 }
@@ -60,7 +61,8 @@ public fun <T> Task<T>.asDeferred(): Deferred<T> {
6061 addOnCompleteListener {
6162 val e = it.exception
6263 if (e == null ) {
63- if (isCanceled) result.cancel() else result.complete(it.result)
64+ @Suppress(" UNCHECKED_CAST" )
65+ if (isCanceled) result.cancel() else result.complete(it.result as T )
6466 } else {
6567 result.completeExceptionally(e)
6668 }
@@ -83,7 +85,8 @@ public suspend fun <T> Task<T>.await(): T {
8385 if (isCanceled) {
8486 throw CancellationException (" Task $this was cancelled normally." )
8587 } else {
86- result
88+ @Suppress(" UNCHECKED_CAST" )
89+ result as T
8790 }
8891 } else {
8992 throw e
@@ -94,7 +97,8 @@ public suspend fun <T> Task<T>.await(): T {
9497 addOnCompleteListener {
9598 val e = exception
9699 if (e == null ) {
97- if (isCanceled) cont.cancel() else cont.resume(result)
100+ @Suppress(" UNCHECKED_CAST" )
101+ if (isCanceled) cont.cancel() else cont.resume(result as T )
98102 } else {
99103 cont.resumeWithException(e)
100104 }
Original file line number Diff line number Diff line change @@ -92,6 +92,11 @@ class TaskTest : TestBase() {
9292 assertEquals(42 , deferred.await())
9393 }
9494
95+ @Test
96+ fun testNullResultTaskAsDeferred () = runTest {
97+ assertNull(Tasks .forResult(null ).asDeferred().await())
98+ }
99+
95100 @Test
96101 fun testCancelledTaskAsDeferred () = runTest {
97102 val deferred = Tasks .forCanceled<Int >().asDeferred()
You can’t perform that action at this time.
0 commit comments