diff --git a/README.md b/README.md index 45989a4..9ca80af 100644 --- a/README.md +++ b/README.md @@ -187,7 +187,7 @@ suspend fun failsIn5ms(): Result { ... } suspend fun failsIn1ms(): Result { ... } runBlocking { - val result = binding { + val result: Result = binding { val x = async { failsIn5ms().bind() } val y = async { failsIn1ms().bind() } x.await() + y.await() diff --git a/benchmarks/src/commonMain/kotlin/com/github/michaelbull/result/BindingBenchmark.kt b/benchmarks/src/commonMain/kotlin/com/github/michaelbull/result/BindingBenchmark.kt index 2e7aef2..7637d93 100644 --- a/benchmarks/src/commonMain/kotlin/com/github/michaelbull/result/BindingBenchmark.kt +++ b/benchmarks/src/commonMain/kotlin/com/github/michaelbull/result/BindingBenchmark.kt @@ -16,7 +16,7 @@ class BindingBenchmark { @Benchmark fun bindingSuccess(blackhole: Blackhole) { - val result = binding { + val result: Result = binding { val x = provideX().bind() val y = provideY().bind() x + y @@ -27,7 +27,7 @@ class BindingBenchmark { @Benchmark fun bindingFailure(blackhole: Blackhole) { - val result = binding { + val result: Result = binding { val x = provideX().bind() val z = provideZ().bind() x + z diff --git a/benchmarks/src/jvmMain/kotlin/com/github/michaelbull/result/SuspendBindingBenchmark.kt b/benchmarks/src/jvmMain/kotlin/com/github/michaelbull/result/SuspendBindingBenchmark.kt index 30cddd9..ea0f243 100644 --- a/benchmarks/src/jvmMain/kotlin/com/github/michaelbull/result/SuspendBindingBenchmark.kt +++ b/benchmarks/src/jvmMain/kotlin/com/github/michaelbull/result/SuspendBindingBenchmark.kt @@ -42,27 +42,23 @@ class SuspendBindingBenchmark { private val time = 100L - private fun nonSuspend() = binding { + private fun nonSuspend(): Result = binding { val x = provideXBlocking().bind() val y = provideYBlocking().bind() x + y } - private suspend fun withSuspend(): Result { - return coroutineBinding { - val x = provideX().bind() - val y = provideY().bind() - x + y - } + private suspend fun withSuspend(): Result = coroutineBinding { + val x = provideX().bind() + val y = provideY().bind() + x + y } - private suspend fun withAsyncSuspend(): Result { - return coroutineScope { - coroutineBinding { - val x = async { provideX().bind() } - val y = async { provideY().bind() } - x.await() + y.await() - } + private suspend fun withAsyncSuspend(): Result = coroutineScope { + coroutineBinding { + val x = async { provideX().bind() } + val y = async { provideY().bind() } + x.await() + y.await() } } diff --git a/kotlin-result-coroutines/src/commonTest/kotlin/com.github.michaelbull.result.coroutines/binding/SuspendableBindingTest.kt b/kotlin-result-coroutines/src/commonTest/kotlin/com.github.michaelbull.result.coroutines/binding/SuspendableBindingTest.kt index f94f78f..5ccdae0 100644 --- a/kotlin-result-coroutines/src/commonTest/kotlin/com.github.michaelbull.result.coroutines/binding/SuspendableBindingTest.kt +++ b/kotlin-result-coroutines/src/commonTest/kotlin/com.github.michaelbull.result.coroutines/binding/SuspendableBindingTest.kt @@ -28,7 +28,7 @@ class SuspendableBindingTest { return Ok(2) } - val result = binding { + val result: Result = binding { val x = provideX().bind() val y = provideY().bind() x + y @@ -52,7 +52,7 @@ class SuspendableBindingTest { return Ok(x + 2) } - val result = binding { + val result: Result = binding { val x = provideX().bind() val y = provideY(x.toInt()).bind() y @@ -81,7 +81,7 @@ class SuspendableBindingTest { return Ok(2) } - val result = binding { + val result: Result = binding { val x = provideX().bind() val y = provideY().bind() val z = provideZ().bind() @@ -118,7 +118,7 @@ class SuspendableBindingTest { return Err(BindingError) } - val result = binding { + val result: Result = binding { val x = provideX().bind() val y = provideY().bind() val z = provideZ().bind() @@ -152,7 +152,7 @@ class SuspendableBindingTest { return Ok(2) } - val result = binding { + val result: Result = binding { val x = provideX().bind() val y = provideY().bind() val z = provideZ().bind() diff --git a/kotlin-result-coroutines/src/jvmTest/kotlin/com/github/michaelbull/result/coroutines/binding/AsyncSuspendableBindingTest.kt b/kotlin-result-coroutines/src/jvmTest/kotlin/com/github/michaelbull/result/coroutines/binding/AsyncSuspendableBindingTest.kt index ef84555..be37022 100644 --- a/kotlin-result-coroutines/src/jvmTest/kotlin/com/github/michaelbull/result/coroutines/binding/AsyncSuspendableBindingTest.kt +++ b/kotlin-result-coroutines/src/jvmTest/kotlin/com/github/michaelbull/result/coroutines/binding/AsyncSuspendableBindingTest.kt @@ -34,7 +34,7 @@ class AsyncSuspendableBindingTest { return Ok(2) } - val result = binding { + val result: Result = binding { val x = async { provideX().bind() } val y = async { provideY().bind() } x.await() + y.await() @@ -63,7 +63,7 @@ class AsyncSuspendableBindingTest { return Err(BindingError.BindingErrorB) } - val result = binding { + val result: Result = binding { val x = async { provideX().bind() } val y = async { provideY().bind() } val z = async { provideZ().bind() } @@ -96,7 +96,7 @@ class AsyncSuspendableBindingTest { val dispatcherA = StandardTestDispatcher(testScheduler) val dispatcherB = StandardTestDispatcher(testScheduler) - val result = binding { + val result: Result = binding { val x = async(dispatcherA) { provideX().bind() } val y = async(dispatcherB) { provideY().bind() } @@ -143,7 +143,7 @@ class AsyncSuspendableBindingTest { val dispatcherB = StandardTestDispatcher(testScheduler) val dispatcherC = StandardTestDispatcher(testScheduler) - val result = binding { + val result: Result = binding { launch(dispatcherA) { provideX().bind() } testScheduler.advanceTimeBy(20) diff --git a/kotlin-result/src/commonTest/kotlin/com/github/michaelbull/result/BindingTest.kt b/kotlin-result/src/commonTest/kotlin/com/github/michaelbull/result/BindingTest.kt index 4fa9787..ebbfb18 100644 --- a/kotlin-result/src/commonTest/kotlin/com/github/michaelbull/result/BindingTest.kt +++ b/kotlin-result/src/commonTest/kotlin/com/github/michaelbull/result/BindingTest.kt @@ -66,7 +66,7 @@ class BindingTest { fun provideY(): Result = Err(BindingError) fun provideZ(): Result = Ok(2) - val result = binding { + val result: Result = binding { val x = provideX().bind() val y = provideY().bind() val z = provideZ().bind()