( causes: Chunk.Chunk<Cause.Cause<unknown>>, flattened: Chunk.Chunk<HashSet.HashSet<unknown>> )
| 478 | |
| 479 | /** @internal */ |
| 480 | const flattenCauseLoop = ( |
| 481 | causes: Chunk.Chunk<Cause.Cause<unknown>>, |
| 482 | flattened: Chunk.Chunk<HashSet.HashSet<unknown>> |
| 483 | ): Chunk.Chunk<HashSet.HashSet<unknown>> => { |
| 484 | // eslint-disable-next-line no-constant-condition |
| 485 | while (1) { |
| 486 | const [parallel, sequential] = pipe( |
| 487 | causes, |
| 488 | Arr.reduce( |
| 489 | [HashSet.empty<unknown>(), Chunk.empty<Cause.Cause<unknown>>()] as const, |
| 490 | ([parallel, sequential], cause) => { |
| 491 | const [par, seq] = evaluateCause(cause) |
| 492 | return [ |
| 493 | pipe(parallel, HashSet.union(par)), |
| 494 | pipe(sequential, Chunk.appendAll(seq)) |
| 495 | ] |
| 496 | } |
| 497 | ) |
| 498 | ) |
| 499 | const updated = HashSet.size(parallel) > 0 ? |
| 500 | pipe(flattened, Chunk.prepend(parallel)) : |
| 501 | flattened |
| 502 | if (Chunk.isEmpty(sequential)) { |
| 503 | return Chunk.reverse(updated) |
| 504 | } |
| 505 | causes = sequential |
| 506 | flattened = updated |
| 507 | } |
| 508 | throw new Error(getBugErrorMessage("Cause.flattenCauseLoop")) |
| 509 | } |
| 510 | |
| 511 | // ----------------------------------------------------------------------------- |
| 512 | // Finding |
no test coverage detected