redhat-developer / redhat-developer/vscode-java
Refactoring extraction methods leads to inconsistent code behavior
Dieses Issue hat noch niemand übernommen.
- 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
- select "switch (value) {...return result;"
- 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:
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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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