redhat-developer / redhat-developer/vscode-java

Extracting local variables and refactoring leads to naming conflicts

Open
#3,594 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

upstream
Dominant language
TypeScript
Stars
2.3k
Forks
546
Avg merge
20h 1m
Merged PRs (30d)
11

Description

[provide a description of the issue]

Environment

Operating System: Windows11
JDK version: 17
Visual Studio Code version: 1.88
Java extension version: 1.29

Steps To Reproduce
  1. select "20"
  2. click “Refacator-Extract local variable”
  3. new variable name " existingVariable"

public class OriginalClass {
public void method() {
int existingVariable = 10;
// extract variable "20" , name :"existingVariable"
System.out.println(20);
}
}

refactoring result:
image

Reason: When extracting local variables, there was no detection of naming conflicts between the new variable name and the context

Expected behavior: Check for naming conflicts before and after refactoring, and provide warning prompts

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the reported Extract local variable refactoring in VS Code with the Java and extension versions listed, using the provided OriginalClass example and an existingVariable name. Trace the refactoring entry point to determine where conflicts are checked. Done means the conflict is detected before or after refactoring and a warning is shown instead of silently producing the conflicting result.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, typescript, vscode
Domain
developer-experience, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.