From eeb06ae85c9e3f1e2012ca1fca651b5d228e58de Mon Sep 17 00:00:00 2001 From: 0xh3x Date: Thu, 23 Oct 2025 14:59:29 +0400 Subject: [PATCH 1/2] Result considers waiting flag in equality --- packages/atom/src/Result.ts | 2 +- packages/atom/test/Result.test.ts | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/atom/src/Result.ts b/packages/atom/src/Result.ts index f1c3e2c8..181accf5 100644 --- a/packages/atom/src/Result.ts +++ b/packages/atom/src/Result.ts @@ -84,7 +84,7 @@ const ResultProto = { return pipeArguments(this, arguments) }, [Equal.symbol](this: Result, that: Result): boolean { - if (this._tag !== that._tag && this.waiting !== that.waiting) { + if (this._tag !== that._tag || this.waiting !== that.waiting) { return false } switch (this._tag) { diff --git a/packages/atom/test/Result.test.ts b/packages/atom/test/Result.test.ts index 36ca33d1..648eab24 100644 --- a/packages/atom/test/Result.test.ts +++ b/packages/atom/test/Result.test.ts @@ -1,5 +1,5 @@ import * as _ from "@effect-atom/atom/Result" -import { Cause } from "effect" +import { Cause, Equal } from "effect" import { describe, expect, it } from "vitest" describe("Result", () => { @@ -14,4 +14,14 @@ describe("Result", () => { expect(matcher(_.failure(Cause.empty))).toEqual("fail") expect(matcher(_.success(1))).toEqual(1) }) + + it("considers waiting flag in equality", () => { + const success = _.success("value") + const waiting = _.waiting(success) + + expect(Equal.isEqual(success)).toBe(true) + expect(Equal.isEqual(waiting)).toBe(true) + expect(Equal.equals(success, waiting)).toBe(false) + expect((success as any)[Equal.symbol](waiting)).toBe(false) + }) }) From bc4977d4ca73143b8db8198e56c0aff384c5a00a Mon Sep 17 00:00:00 2001 From: 0xh3x Date: Mon, 27 Oct 2025 00:43:33 +0400 Subject: [PATCH 2/2] add changeset --- .changeset/bumpy-pears-push.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/bumpy-pears-push.md diff --git a/.changeset/bumpy-pears-push.md b/.changeset/bumpy-pears-push.md new file mode 100644 index 00000000..495947d5 --- /dev/null +++ b/.changeset/bumpy-pears-push.md @@ -0,0 +1,5 @@ +--- +"@effect-atom/atom": patch +--- + +fix Result to consider waiting flag in equality