Skip to content

Commit

Permalink
merge-merge-conflict.ts -- fix merge onMergeConflict
Browse files Browse the repository at this point in the history
  • Loading branch information
xieyuheng committed Sep 5, 2024
1 parent 57eb656 commit 93dd63a
Show file tree
Hide file tree
Showing 7 changed files with 26 additions and 8 deletions.
2 changes: 0 additions & 2 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

> https://github.com/cicada-lang/propagator/issues/9
fix `merge` on`MergeConflict`

# 4.4 Dependencies Improve Search

> https://github.com/cicada-lang/propagator/issues/4
Expand Down
4 changes: 4 additions & 0 deletions src/merge-conflict/MergeConflict.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@ export type MergeConflict = {
export const theMergeConflict: MergeConflict = {
"@type": "MergeConflict",
}

export function isMergeConflict(x: any): x is MergeConflict {
return x === theMergeConflict
}
4 changes: 2 additions & 2 deletions src/merge-conflict/detectMergeConflict.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { isBelief } from "../belief/index.js"
import { defineGeneric } from "../generic/defineGeneric.js"
import { defineHandler } from "../generic/index.js"
import { theMergeConflict } from "./MergeConflict.js"
import { isMergeConflict } from "./MergeConflict.js"

export const detectMergeConflict = defineGeneric({
default: (x) => x === theMergeConflict,
default: isMergeConflict,
})

// If it so happens that two supported values contradict each other,
Expand Down
1 change: 1 addition & 0 deletions src/merge/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
export * from "./merge-belief-system.js"
export * from "./merge-belief.js"
export * from "./merge-interval.js"
export * from "./merge-merge-conflict.js"
export * from "./merge-nothing.js"
export * from "./merge-number.js"
export * from "./merge.js"
3 changes: 3 additions & 0 deletions src/merge/isAnything.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export function isAnything(_: any): true {
return true
}
15 changes: 15 additions & 0 deletions src/merge/merge-merge-conflict.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { defineHandler } from "../generic/index.js"
import { isMergeConflict, theMergeConflict } from "../merge-conflict/index.js"
import { isAnything } from "./isAnything.js"
import { merge } from "./merge.js"

defineHandler(
merge,
[isAnything, isMergeConflict],
(content, increment) => theMergeConflict,
)
defineHandler(
merge,
[isMergeConflict, isAnything],
(content, increment) => theMergeConflict,
)
5 changes: 1 addition & 4 deletions src/merge/merge-nothing.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import { defineHandler } from "../generic/index.js"
import { isNothing } from "../nothing/index.js"
import { isAnything } from "./isAnything.js"
import { merge } from "./merge.js"

function isAnything(x: any): true {
return true
}

defineHandler(merge, [isAnything, isNothing], (content, increment) => content)
defineHandler(merge, [isNothing, isAnything], (content, increment) => increment)

0 comments on commit 93dd63a

Please sign in to comment.