Skip to content

Commit

Permalink
Improve implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
serras committed Jan 26, 2025
1 parent 0f17fe7 commit 0ffc4ff
Show file tree
Hide file tree
Showing 6 changed files with 8 additions and 46 deletions.
12 changes: 0 additions & 12 deletions arrow-libs/core/arrow-core/api/android/arrow-core.api
Original file line number Diff line number Diff line change
Expand Up @@ -928,11 +928,6 @@ public final class arrow/core/raise/IorRaise : arrow/core/raise/Raise {
public final fun recover (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
}

public final class arrow/core/raise/NoTrace : arrow/core/raise/RaiseCancellationException {
public fun <init> (Ljava/lang/Object;Larrow/core/raise/Raise;)V
public fun fillInStackTrace ()Ljava/lang/Throwable;
}

public abstract interface class arrow/core/raise/Raise {
public abstract fun bind (Larrow/core/Either;)Ljava/lang/Object;
public abstract fun bind (Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
Expand Down Expand Up @@ -1172,10 +1167,3 @@ public final class arrow/core/raise/Trace {
public final synthetic fun unbox-impl ()Ljava/util/concurrent/CancellationException;
}

public final class arrow/core/raise/Traced : arrow/core/raise/RaiseCancellationException {
public fun <init> (Ljava/lang/Object;Larrow/core/raise/Raise;Larrow/core/raise/Traced;)V
public synthetic fun <init> (Ljava/lang/Object;Larrow/core/raise/Raise;Larrow/core/raise/Traced;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun getCause ()Larrow/core/raise/Traced;
public synthetic fun getCause ()Ljava/lang/Throwable;
}

11 changes: 0 additions & 11 deletions arrow-libs/core/arrow-core/api/arrow-core.klib.api
Original file line number Diff line number Diff line change
Expand Up @@ -321,10 +321,6 @@ final class arrow.core.raise/DefaultRaise : arrow.core.raise/Raise<kotlin/Any?>
final fun raise(kotlin/Any?): kotlin/Nothing // arrow.core.raise/DefaultRaise.raise|raise(kotlin.Any?){}[0]
}

final class arrow.core.raise/NoTrace : arrow.core.raise/RaiseCancellationException { // arrow.core.raise/NoTrace|null[0]
constructor <init>(kotlin/Any?, arrow.core.raise/Raise<kotlin/Any?>) // arrow.core.raise/NoTrace.<init>|<init>(kotlin.Any?;arrow.core.raise.Raise<kotlin.Any?>){}[0]
}

final class arrow.core.raise/ResultRaise : arrow.core.raise/Raise<kotlin/Throwable> { // arrow.core.raise/ResultRaise|null[0]
constructor <init>(arrow.core.raise/Raise<kotlin/Throwable>) // arrow.core.raise/ResultRaise.<init>|<init>(arrow.core.raise.Raise<kotlin.Throwable>){}[0]

Expand All @@ -346,13 +342,6 @@ final class arrow.core.raise/ResultRaise : arrow.core.raise/Raise<kotlin/Throwab
final suspend fun <#A1: kotlin/Any?> (kotlin.coroutines/SuspendFunction1<arrow.core.raise/Raise<kotlin/Throwable>, #A1>).invoke(): #A1 // arrow.core.raise/ResultRaise.invoke|[email protected]<arrow.core.raise.Raise<kotlin.Throwable>,0:0>(){0§<kotlin.Any?>}[0]
}

final class arrow.core.raise/Traced : arrow.core.raise/RaiseCancellationException { // arrow.core.raise/Traced|null[0]
constructor <init>(kotlin/Any?, arrow.core.raise/Raise<kotlin/Any?>, arrow.core.raise/Traced? = ...) // arrow.core.raise/Traced.<init>|<init>(kotlin.Any?;arrow.core.raise.Raise<kotlin.Any?>;arrow.core.raise.Traced?){}[0]

final val cause // arrow.core.raise/Traced.cause|{}cause[0]
final fun <get-cause>(): arrow.core.raise/Traced? // arrow.core.raise/Traced.cause.<get-cause>|<get-cause>(){}[0]
}

final value class <#A: kotlin/Any?, #B: kotlin/Any?> arrow.core/AtomicMemoizationCache : arrow.core/MemoizationCache<#A, #B> { // arrow.core/AtomicMemoizationCache|null[0]
constructor <init>(arrow.atomic/Atomic<kotlin.collections/Map<#A, #B>> = ...) // arrow.core/AtomicMemoizationCache.<init>|<init>(arrow.atomic.Atomic<kotlin.collections.Map<1:0,1:1>>){}[0]

Expand Down
12 changes: 0 additions & 12 deletions arrow-libs/core/arrow-core/api/jvm/arrow-core.api
Original file line number Diff line number Diff line change
Expand Up @@ -928,11 +928,6 @@ public final class arrow/core/raise/IorRaise : arrow/core/raise/Raise {
public final fun recover (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
}

public final class arrow/core/raise/NoTrace : arrow/core/raise/RaiseCancellationException {
public fun <init> (Ljava/lang/Object;Larrow/core/raise/Raise;)V
public fun fillInStackTrace ()Ljava/lang/Throwable;
}

public abstract interface class arrow/core/raise/Raise {
public abstract fun bind (Larrow/core/Either;)Ljava/lang/Object;
public abstract fun bind (Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
Expand Down Expand Up @@ -1172,10 +1167,3 @@ public final class arrow/core/raise/Trace {
public final synthetic fun unbox-impl ()Ljava/util/concurrent/CancellationException;
}

public final class arrow/core/raise/Traced : arrow/core/raise/RaiseCancellationException {
public fun <init> (Ljava/lang/Object;Larrow/core/raise/Raise;Larrow/core/raise/Traced;)V
public synthetic fun <init> (Ljava/lang/Object;Larrow/core/raise/Raise;Larrow/core/raise/Traced;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
public fun getCause ()Larrow/core/raise/Traced;
public synthetic fun getCause ()Ljava/lang/Throwable;
}

Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ package arrow.core.raise
"EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING",
"SEALED_INHERITOR_IN_DIFFERENT_MODULE"
)
@PublishedApi
internal actual class NoTrace actual constructor(raised: Any?, raise: Raise<Any?>) : RaiseCancellationException(raised, raise) {
override fun fillInStackTrace(): Throwable {
// Prevent Android <= 6.0 bug.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -190,15 +190,16 @@ public inline fun <Error, OtherError, A> Raise<Error>.withError(
val raise = DefaultRaise(false)
return try {
block(raise).also { raise.complete() }
} catch (e: RaiseCancellationException) {
} catch (innerException: RaiseCancellationException) {
raise.complete()
val error = transform(e.raisedOrRethrow(raise))
when {
this is RaiseAccumulate -> raise(error)
e is Traced -> throw Traced(error, this as Raise<Any?>, e.cause).also {
it.copyStacktrace(e)
val error = transform(innerException.raisedOrRethrow(raise))
try {
raise(error)
} catch (outerException: RaiseCancellationException) {
throw when (outerException) {
is Traced -> outerException.apply { copyStacktrace(innerException) }
else -> outerException
}
else -> throw NoTrace(error, this as Raise<Any?>)
}
} catch (e: Throwable) {
raise.complete()
Expand Down Expand Up @@ -318,11 +319,9 @@ public sealed class RaiseCancellationException(

@DelicateRaiseApi
@Suppress("EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING")
@PublishedApi
internal expect class NoTrace(raised: Any?, raise: Raise<Any?>) : RaiseCancellationException

@DelicateRaiseApi
@PublishedApi
internal class Traced(raised: Any?, raise: Raise<Any?>, override val cause: Traced? = null): RaiseCancellationException(raised, raise)

@PublishedApi
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ package arrow.core.raise
"EXPECT_ACTUAL_CLASSIFIERS_ARE_IN_BETA_WARNING",
"SEALED_INHERITOR_IN_DIFFERENT_MODULE"
)
@PublishedApi
internal actual class NoTrace actual constructor(raised: Any?, raise: Raise<Any?>) : RaiseCancellationException(raised, raise)

@PublishedApi
Expand Down

0 comments on commit 0ffc4ff

Please sign in to comment.