Skip to content

report the trailing replacement in ReplacementsFinder - #744

Open
rootvector2 wants to merge 1 commit into
apache:masterfrom
rootvector2:replacements-finder-trailing-block
Open

rootvector2 wants to merge 1 commit into
apache:masterfrom
rootvector2:replacements-finder-trailing-block

Conversation

@rootvector2

Copy link
Copy Markdown
Contributor

ReplacementsFinder flushes its pending deletions and insertions only from visitKeepCommand and EditScript.visit gives the visitor no end-of-script signal, so any script that ends on a modification silently drops that last replacement (abc to abd reports nothing at all, and with no shared element the handler is never called once); EditScript.visit now reports the end of the script through a new CommandVisitor.visitEndOfScript default no-op that ReplacementsFinder overrides to hand over the trailing block, found by replaying the reported replacements back onto the first sequence over randomized pairs.

  • Read the contribution guidelines for this project.
  • Read the ASF Generative Tooling Guidance if you use Artificial Intelligence (AI).
  • I used AI to create any part of, or all of, this pull request. Which AI tool was used to create this pull request, and to what extent did it contribute? Claude Code (Anthropic) was used throughout: to run the randomized differential search that surfaced the defect, to write the patch and the unit test, and to draft this description. I reviewed the result and ran the build locally.
  • Run a successful build using the default Maven goal with mvn; that's mvn on the command line by itself.
  • Write unit tests that match behavioral changes, where the tests fail if the changes to the runtime are not applied. This may not always be possible, but it is a best practice.
  • Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
  • Each commit in the pull request should have a meaningful subject line and body.

Pending insertions and deletions were only flushed from visitKeepCommand, so a script ending on a modification never reached the handler. EditScript.visit now signals the end of the script through a new CommandVisitor.visitEndOfScript default no-op.
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