Skip to content

Commit

Permalink
improve rendering of parallel causes (#8438)
Browse files Browse the repository at this point in the history
  • Loading branch information
adamgfraser committed Sep 21, 2023
1 parent da6b6d9 commit 05c0818
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion core/shared/src/main/scala/zio/Cause.scala
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,19 @@ sealed abstract class Cause[+E] extends Product with Serializable { self =>
unified.trace.foreach(trace => append(s"${traceIndent}at ${trace}"))
}

self.linearize.foreach(appendCause)
val (die, fail, interrupt) =
self.linearize.foldLeft((Set.empty[Cause[E]], Set.empty[Cause[E]], Set.empty[Cause[E]])) {
case ((die, fail, interrupt), cause) =>
cause.find {
case Die(_, _) => (die + cause, fail, interrupt)
case Fail(_, _) => (die, fail + cause, interrupt)
case Interrupt(_, _) => (die, fail, interrupt + cause)
}.getOrElse((die, fail, interrupt))
}

die.foreach(appendCause)
fail.foreach(appendCause)
interrupt.foreach(appendCause)
builder.result.mkString("\n")
}

Expand Down

0 comments on commit 05c0818

Please sign in to comment.