redhat-developer / redhat-developer/vscode-java

Refactoring extraction methods leads to inconsistent code behavior

Offen
#3,592 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

potential-duplicate
Vorherrschende Sprache
TypeScript
Sterne
2.3k
Forks
546
Ø Merge
20 Std. 1 Min.
Gemergte PRs (30 T.)
11

Beschreibung

[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 "switch (value) {...return result;"
  2. click “Refacator-Extract to method”

class ExtractMethodTest {
private final int value;

public ExtractMethodTest(int value) {
this.value = value;
}

public synchronized int calculate() {
int result;
// extract method
switch (value) {
case 1:
result = value * 2;
break;
case 2:
result = value * 3;
break;
default:
result = value * 4;
break;
}
return result;
// end
}
}

refactoring result:
image

Reason: Local variables have been added to the extraction method, and if the inline method refactoring is performed, it will not match the behavior of the original code

Expected behavior: Check before and after refactoring and provide warning prompts

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Im Bericht wird keine Quelldatei und kein Test genannt. Reproduziere den Fall „Extract to method“ unter Windows 11 mit JDK 17 und vergleiche anschließend das Verhalten der ursprünglichen, extrahierten und inline-refaktorierten Variante. Als abgeschlossen gilt die Aufgabe, wenn inkonsistentes Verhalten erkannt und vor oder nach dem Refactoring eine entsprechende Warnung angezeigt wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java, vscode
Bereich
devtools
Issue-Typ
Refactoring
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.