Skip to content

Refactoring class/record duplicates switch guard clause in case statements #8591

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

homberghp
Copy link
Contributor

Closes #8495.

Added test, to show the problem is real.

Changed org.netbeans.modules.java.source.save.CasualDiff.java

if (Objects.equals(oldT.getCaseKind(), newT.getCaseKind())) {
tokenSequence.moveNext();
copyTo(localPointer, localPointer = tokenSequence.offset());
} else {

Line 2135 copies too much because localPointer is not properly advanced.

Solution: move localPointer to behind token that precedes the COLON od ARROW token.
Then copy, preserving the space that (optionally) precedes the COLON or ARROW from the updated localPointer
to the offset of COLON or ARROW.


^Add meaningful description above

Click to collapse/expand PR instructions

By opening a pull request you confirm that, unless explicitly stated otherwise, the changes -

  • are all your own work, and you have the right to contribute them.
  • are contributed solely under the terms and conditions of the Apache License 2.0 (see section 5 of the license for more information).

Please make sure (eg. git log) that all commits have a valid name and email address for you in the Author field.

If you're a first time contributor, see the Contributing guidelines for more information.

If you're a committer, please label the PR before pressing "Create pull request" so that the right test jobs can run.

PR approval and merge checklist:

  1. Was this PR correctly labeled, did the right tests run? When did they run?
  2. Is this PR squashed?
  3. Are author name / email address correct? Are co-authors correctly listed? Do the commit messages need updates?
  4. Does the PR title and description still fit after the Nth iteration? Is the description sufficient to appear in the release notes?

If this PR targets the delivery branch: don't merge. (full wiki article)

@homberghp homberghp changed the title closes #8495 Refactoring class/record duplicates switch guard clause in case statements Jun 23, 2025
added test to show problem is real
typo in PositionEstimator.java + added `@Override`

solution in CasualDiff, advance localPointer to just before COLON or
ARROW, and pick up optional space before COLON or ARROW.
@homberghp
Copy link
Contributor Author

Cleanup as necessary to prepare the PR for review.

@mbien mbien added the Java [ci] enable extra Java tests (java.completion, java.source.base, java.hints, refactoring.java, form) label Jun 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Java [ci] enable extra Java tests (java.completion, java.source.base, java.hints, refactoring.java, form)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Refactoring class/record name duplicates switch "when" cases if the class/record is instantiated in those cases
2 participants