diff --git a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/VoidConversionRule.java b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/VoidConversionRule.java index 6385b079f450..748e49e02da6 100644 --- a/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/VoidConversionRule.java +++ b/java/typeMigration/src/com/intellij/refactoring/typeMigration/rules/VoidConversionRule.java @@ -15,12 +15,14 @@ */ package com.intellij.refactoring.typeMigration.rules; +import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.refactoring.typeMigration.TypeConversionDescriptorBase; import com.intellij.refactoring.typeMigration.TypeEvaluator; import com.intellij.refactoring.typeMigration.TypeMigrationLabeler; import com.intellij.util.IncorrectOperationException; import com.siyeh.ig.controlflow.UnnecessaryReturnInspection; +import com.siyeh.ig.fixes.DeleteUnnecessaryStatementFix; import com.siyeh.ig.psiutils.SideEffectChecker; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -43,10 +45,11 @@ public class VoidConversionRule extends TypeConversionRule { @Override public PsiExpression replace(PsiExpression expression, @NotNull TypeEvaluator evaluator) throws IncorrectOperationException { final PsiElement parent = expression.getParent(); + final Project project = expression.getProject(); if (parent instanceof PsiReturnStatement) { - expression.delete(); - if (UnnecessaryReturnInspection.isReturnRedundant((PsiReturnStatement)parent, false, null)) { - parent.delete(); + final PsiReturnStatement replaced = (PsiReturnStatement)parent.replace(JavaPsiFacade.getElementFactory(project).createStatementFromText("return;", null)); + if (UnnecessaryReturnInspection.isReturnRedundant(replaced, false, null)) { + DeleteUnnecessaryStatementFix.deleteUnnecessaryStatement(replaced); } } return null; diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/fixes/DeleteUnnecessaryStatementFix.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/fixes/DeleteUnnecessaryStatementFix.java index deb46eccd664..f05aa239df8e 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/fixes/DeleteUnnecessaryStatementFix.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/fixes/DeleteUnnecessaryStatementFix.java @@ -56,6 +56,10 @@ public class DeleteUnnecessaryStatementFix extends InspectionGadgetsFix { if (statement == null) { return; } + deleteUnnecessaryStatement(statement); + } + + public static void deleteUnnecessaryStatement(PsiStatement statement) { final PsiElement parent = statement.getParent(); if (parent instanceof PsiIfStatement || parent instanceof PsiWhileStatement ||