f46cf7b8bc
Create a separate `validateMoveStatementGraph` function so that `ValidateMoves` and `ApplyMoves` both check the same conditions. Since we're not using the builtin `graph.Validate` method, because we may have multiple roots and want better cycle diagnostics, we need to add checks for self references too. While multiple roots are an error enforced by `Validate` for the concurrent walk, they are OK when using `TransitiveReduction` and `ReverseDepthFirstWalk`, so we can skip that check. Apply moves must first use `TransitiveReduction` to reduce the graph, otherwise nodes may be skipped if they are passed over by a transitive edge. |
||
---|---|---|
.. | ||
testdata | ||
move_execute.go | ||
move_execute_test.go | ||
move_statement.go | ||
move_statement_test.go | ||
move_validate.go | ||
move_validate_test.go |