Skip to content

fix: make checkForCyclesAndMarkErrors a pure boolean detector#18

Open
Av1ralS1ngh wants to merge 1 commit intorawBit-io:mainfrom
Av1ralS1ngh:fix/cycle-check-immutable
Open

fix: make checkForCyclesAndMarkErrors a pure boolean detector#18
Av1ralS1ngh wants to merge 1 commit intorawBit-io:mainfrom
Av1ralS1ngh:fix/cycle-check-immutable

Conversation

@Av1ralS1ngh
Copy link
Copy Markdown
Contributor

checkForCyclesAndMarkErrors was mutating node.data.error and node.data.extendedError in-place on the input nodes, i.e. the same pattern fixed in #14 for annotateDirtyNodesWithError.

The mutation was also dead code: the only caller (useCalculation.ts) immediately discards the mutated affectedNodes and applies the error state itself via an immutable setNodes spread.

I removed the forEach mutation block from checkForCyclesAndMarkErrors. The function now purely returns a boolean.

Updated the unit test to assert the new contract: hasCycle is true and the input nodes are left untouched.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant