From f6db09e65ae9658d08f90be9e7f2cb0410bf0b47 Mon Sep 17 00:00:00 2001 From: Giulio Canti Date: Fri, 8 Mar 2024 10:42:35 +0100 Subject: [PATCH] =?UTF-8?q?Either:=20fix=20`getEquivalence`=20parameter=20?= =?UTF-8?q?order=20from=20`Either.getEquivale=E2=80=A6=20(#2243)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .changeset/strong-falcons-exercise.md | 5 +++++ packages/effect/src/Either.ts | 12 ++++++------ packages/effect/test/Either.test.ts | 2 +- packages/schema/src/Schema.ts | 2 +- 4 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 .changeset/strong-falcons-exercise.md diff --git a/.changeset/strong-falcons-exercise.md b/.changeset/strong-falcons-exercise.md new file mode 100644 index 0000000000..4e2e3688b6 --- /dev/null +++ b/.changeset/strong-falcons-exercise.md @@ -0,0 +1,5 @@ +--- +"effect": minor +--- + +Either: fix `getEquivalence` parameter order from `Either.getEquivalence(left, right)` to `Either.getEquivalence({ left, right })` diff --git a/packages/effect/src/Either.ts b/packages/effect/src/Either.ts index ba37261459..13974f6159 100644 --- a/packages/effect/src/Either.ts +++ b/packages/effect/src/Either.ts @@ -287,15 +287,15 @@ export const getLeft: (self: Either) => Option = either.getLeft * @category equivalence * @since 2.0.0 */ -export const getEquivalence = ( - EquivalenceL: Equivalence.Equivalence, - EquivalenceR: Equivalence.Equivalence -): Equivalence.Equivalence> => +export const getEquivalence = ({ left, right }: { + right: Equivalence.Equivalence + left: Equivalence.Equivalence +}): Equivalence.Equivalence> => Equivalence.make((x, y) => x === y || (isLeft(x) ? - isLeft(y) && EquivalenceL(x.left, y.left) : - isRight(y) && EquivalenceR(x.right, y.right)) + isLeft(y) && left(x.left, y.left) : + isRight(y) && right(x.right, y.right)) ) /** diff --git a/packages/effect/test/Either.test.ts b/packages/effect/test/Either.test.ts index f8448f0239..158b492114 100644 --- a/packages/effect/test/Either.test.ts +++ b/packages/effect/test/Either.test.ts @@ -177,7 +177,7 @@ describe("Either", () => { }) it("getEquivalence", () => { - const isEquivalent = Either.getEquivalence(S.Equivalence, N.Equivalence) + const isEquivalent = Either.getEquivalence({ right: N.Equivalence, left: S.Equivalence }) Util.deepStrictEqual(isEquivalent(Either.right(1), Either.right(1)), true) Util.deepStrictEqual(isEquivalent(Either.right(1), Either.right(2)), false) Util.deepStrictEqual(isEquivalent(Either.right(1), Either.left("foo")), false) diff --git a/packages/schema/src/Schema.ts b/packages/schema/src/Schema.ts index a71c2fd103..3cc21caf45 100644 --- a/packages/schema/src/Schema.ts +++ b/packages/schema/src/Schema.ts @@ -5315,7 +5315,7 @@ export const eitherFromSelf = ({ lef description: `Either<${format(right)}, ${format(left)}>`, pretty: eitherPretty, arbitrary: eitherArbitrary, - equivalence: (right, left) => Either.getEquivalence(left, right) + equivalence: (right, left) => Either.getEquivalence({ left, right }) } ) }