From 661004f4bf5f8b25f5a0678c21a3a822188ce461 Mon Sep 17 00:00:00 2001 From: Patrick Roza Date: Sat, 27 Apr 2024 14:38:57 +0200 Subject: [PATCH] fix: Effect.forEach overload (#2640) --- .changeset/spicy-wolves-sip.md | 5 +++++ packages/effect/dtslint/Effect.ts | 2 +- packages/effect/src/Effect.ts | 17 ++++------------- 3 files changed, 10 insertions(+), 14 deletions(-) create mode 100644 .changeset/spicy-wolves-sip.md diff --git a/.changeset/spicy-wolves-sip.md b/.changeset/spicy-wolves-sip.md new file mode 100644 index 0000000000..a960fb4801 --- /dev/null +++ b/.changeset/spicy-wolves-sip.md @@ -0,0 +1,5 @@ +--- +"effect": patch +--- + +fix: forEach NonEmpty overload causing inference issues for Iterables diff --git a/packages/effect/dtslint/Effect.ts b/packages/effect/dtslint/Effect.ts index eec0f4881c..d88fe765f4 100644 --- a/packages/effect/dtslint/Effect.ts +++ b/packages/effect/dtslint/Effect.ts @@ -62,7 +62,7 @@ pipe( // ------------------------------------------------------------------------------------- // $ExpectType Effect<[string, ...string[]], "err-1", "dep-1"> -Effect.forEach(["a", "b"], ( +Effect.forEach(["a", "b"] as NonEmptyReadonlyArray, ( // $ExpectType string _a, // $ExpectType number diff --git a/packages/effect/src/Effect.ts b/packages/effect/src/Effect.ts index be87c87c6e..35484423b4 100644 --- a/packages/effect/src/Effect.ts +++ b/packages/effect/src/Effect.ts @@ -673,24 +673,15 @@ export const forEach: { readonly discard: true } ): (self: Iterable) => Effect - ( - self: RA.NonEmptyReadonlyArray, - f: (a: A, i: number) => Effect, - options?: { - readonly concurrency?: Concurrency | undefined - readonly batching?: boolean | "inherit" | undefined - readonly discard?: false | undefined - } | undefined - ): Effect, E, R> - ( - self: Iterable, - f: (a: A, i: number) => Effect, + >( + self: S, + f: (a: RA.ReadonlyArray.Infer, i: number) => Effect, options?: { readonly concurrency?: Concurrency | undefined readonly batching?: boolean | "inherit" | undefined readonly discard?: false | undefined } | undefined - ): Effect, E, R> + ): Effect, E, R> ( self: Iterable, f: (a: A, i: number) => Effect,