redhat-developer / redhat-developer/vscode-java
Extract method refactoring 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 "return;"
- click “Refacator-Extract to method”
public class OriginalClass {
public void foo() {
Object runnable= null;
Object[] disposeList= null;
for (int i=0; i < disposeList.length; i++) {
if (disposeList [i] == null) {
disposeList [i] = runnable;
// extract method
return;
}
}
}
}
refactoring result:
Reason: The extraction method does not contain a return statement. If inline refactoring is performed on the extraction method, the behavior of the statement before and after refactoring is inconsistent.
Expected behavior: Check for statements like return, provide a prompt before refactoring, and do not allow extraction method refactoring.
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
Reproduisez le cas dans l’extension Java en utilisant l’exemple OriginalClass fourni et les versions indiquées de VS Code et JDK. Suivez le point d’entrée de la refactorisation Extract to method ; le travail est terminé lorsque la refactorisation détecte l’instruction return, demande ce qui est nécessaire le cas échéant et n’autorise pas une extraction non sûre.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java, typescript, vscode
- Domaine
- tooling
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100