From efc139e019be7dbed6eb0aecdba4f638efcb8b78 Mon Sep 17 00:00:00 2001 From: Dmitry Batkovich Date: Mon, 7 Nov 2016 12:49:40 +0300 Subject: [PATCH] unused return value fix should replace return-statements in write action --- .../unusedReturnValue/UnusedReturnValue.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInspection/unusedReturnValue/UnusedReturnValue.java b/java/java-impl/src/com/intellij/codeInspection/unusedReturnValue/UnusedReturnValue.java index 5ba6ec614705..b0a240d1822d 100644 --- a/java/java-impl/src/com/intellij/codeInspection/unusedReturnValue/UnusedReturnValue.java +++ b/java/java-impl/src/com/intellij/codeInspection/unusedReturnValue/UnusedReturnValue.java @@ -20,6 +20,7 @@ import com.intellij.codeInsight.daemon.GroupNames; import com.intellij.codeInspection.*; import com.intellij.codeInspection.reference.*; import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel; +import com.intellij.openapi.application.WriteAction; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.WriteExternalException; @@ -214,13 +215,15 @@ public class UnusedReturnValue extends GlobalJavaBatchInspectionTool{ try { final PsiExpression expression = returnStatement.getReturnValue(); if (expression instanceof PsiLiteralExpression || expression instanceof PsiThisExpression) { //avoid side effects - if (returnStatement == lastStatement) { - returnStatement.delete(); - } - else { - returnStatement - .replace(JavaPsiFacade.getInstance(method.getProject()).getElementFactory().createStatementFromText("return;", returnStatement)); - } + WriteAction.run(() -> { + if (returnStatement == lastStatement) { + returnStatement.delete(); + } + else { + returnStatement + .replace(JavaPsiFacade.getInstance(method.getProject()).getElementFactory().createStatementFromText("return;", returnStatement)); + } + }); } } catch (IncorrectOperationException e) {