redhat-developer / redhat-developer/vscode-java
Refactoring extraction methods leads to inconsistent code behavior
Personne n'a encore pris cette issue.
- Langage dominant
- TypeScript
- Étoiles
- 2.3k
- Forks
- 546
- Merge moyen
- 20 h 1 min
- PR mergées (30 j)
- 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
- 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
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Aucun fichier source ni aucun test n’est mentionné dans le rapport. Reproduisez le cas Extract to method sous Windows 11 avec JDK 17, puis comparez le comportement d’origine, du code extrait et du code refactorisé inline. Le travail est considéré comme terminé lorsqu’un comportement incohérent est détecté et qu’un avertissement approprié est affiché avant ou après le refactoring.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java, vscode
- Domaine
- devtools
- Type d'issue
- Refactorisation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100