Skip to content

Commit c23d25c

Browse files
authored
fix Effect.filterOrFail return type inference (#5082)
1 parent bb77c2e commit c23d25c

File tree

3 files changed

+14
-13
lines changed

3 files changed

+14
-13
lines changed

.changeset/five-results-agree.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"effect": patch
3+
---
4+
5+
fix Effect.filterOrFail return type inference

packages/effect/src/Effect.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8476,7 +8476,7 @@ export const filterOrFail: {
84768476
<A, E2, B extends A>(
84778477
refinement: Refinement<NoInfer<A>, B>,
84788478
orFailWith: (a: EqualsWith<A, B, NoInfer<A>, Exclude<NoInfer<A>, B>>) => E2
8479-
): <E, R>(self: Effect<A, E, R>) => Effect<B, E2 | E, R>
8479+
): <E, R>(self: Effect<A, E, R>) => Effect<NoInfer<B>, E2 | E, R>
84808480
<A, E2>(
84818481
predicate: Predicate<NoInfer<A>>,
84828482
orFailWith: (a: NoInfer<A>) => E2
@@ -8485,20 +8485,16 @@ export const filterOrFail: {
84858485
self: Effect<A, E, R>,
84868486
refinement: Refinement<A, B>,
84878487
orFailWith: (a: EqualsWith<A, B, A, Exclude<A, B>>) => E2
8488-
): Effect<B, E2 | E, R>
8488+
): Effect<NoInfer<B>, E2 | E, R>
84898489
<A, E, R, E2>(self: Effect<A, E, R>, predicate: Predicate<A>, orFailWith: (a: A) => E2): Effect<A, E2 | E, R>
84908490
<A, B extends A>(
84918491
refinement: Refinement<NoInfer<A>, B>
8492-
): <E, R>(self: Effect<A, E, R>) => Effect<B, Cause.NoSuchElementException | E, R>
8493-
<A>(predicate: Predicate<NoInfer<A>>): <E, R>(self: Effect<A, E, R>) => Effect<
8494-
A,
8495-
Cause.NoSuchElementException | E,
8496-
R
8497-
>
8492+
): <E, R>(self: Effect<A, E, R>) => Effect<NoInfer<B>, Cause.NoSuchElementException | E, R>
8493+
<A>(predicate: Predicate<NoInfer<A>>): <E, R>(self: Effect<A, E, R>) => Effect<A, Cause.NoSuchElementException | E, R>
84988494
<A, E, R, B extends A>(
84998495
self: Effect<A, E, R>,
85008496
refinement: Refinement<A, B>
8501-
): Effect<B, E | Cause.NoSuchElementException, R>
8497+
): Effect<NoInfer<B>, E | Cause.NoSuchElementException, R>
85028498
<A, E, R>(self: Effect<A, E, R>, predicate: Predicate<A>): Effect<A, E | Cause.NoSuchElementException, R>
85038499
} = effect.filterOrFail
85048500

packages/effect/src/internal/core-effect.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -639,7 +639,7 @@ export const filterOrFail: {
639639
<A, E2, B extends A>(
640640
refinement: Predicate.Refinement<Types.NoInfer<A>, B>,
641641
orFailWith: (a: Types.EqualsWith<A, B, Types.NoInfer<A>, Exclude<Types.NoInfer<A>, B>>) => E2
642-
): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<B, E2 | E, R>
642+
): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Types.NoInfer<B>, E2 | E, R>
643643
<A, E2>(
644644
predicate: Predicate.Predicate<Types.NoInfer<A>>,
645645
orFailWith: (a: Types.NoInfer<A>) => E2
@@ -648,22 +648,22 @@ export const filterOrFail: {
648648
self: Effect.Effect<A, E, R>,
649649
refinement: Predicate.Refinement<A, B>,
650650
orFailWith: (a: Types.EqualsWith<A, B, A, Exclude<A, B>>) => E2
651-
): Effect.Effect<B, E2 | E, R>
651+
): Effect.Effect<Types.NoInfer<B>, E2 | E, R>
652652
<A, E, R, E2>(
653653
self: Effect.Effect<A, E, R>,
654654
predicate: Predicate.Predicate<A>,
655655
orFailWith: (a: A) => E2
656656
): Effect.Effect<A, E2 | E, R>
657657
<A, B extends A>(
658658
refinement: Predicate.Refinement<Types.NoInfer<A>, B>
659-
): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<B, Cause.NoSuchElementException | E, R>
659+
): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Types.NoInfer<B>, Cause.NoSuchElementException | E, R>
660660
<A>(
661661
predicate: Predicate.Predicate<Types.NoInfer<A>>
662662
): <E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, Cause.NoSuchElementException | E, R>
663663
<A, E, R, B extends A>(
664664
self: Effect.Effect<A, E, R>,
665665
refinement: Predicate.Refinement<A, B>
666-
): Effect.Effect<B, E | Cause.NoSuchElementException, R>
666+
): Effect.Effect<Types.NoInfer<B>, E | Cause.NoSuchElementException, R>
667667
<A, E, R>(
668668
self: Effect.Effect<A, E, R>,
669669
predicate: Predicate.Predicate<A>

0 commit comments

Comments
 (0)