ExtractSideEffectsFix -> DeleteSideEffectsAwareFix; i18n

Now intention availability logic is moved from HighlightUtil to DeleteSideEffectsAwareFix
Review: IDEA-CR-21623
This commit is contained in:
Tagir Valeev
2017-06-08 12:15:20 +07:00
parent 4596de53f6
commit fb6965b6b9
16 changed files with 60 additions and 35 deletions

View File

@@ -69,7 +69,6 @@ import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.hash.HashSet;
import com.intellij.util.ui.UIUtil;
import com.intellij.xml.util.XmlStringUtil;
import com.siyeh.ig.psiutils.SideEffectChecker;
import gnu.trove.THashMap;
import org.intellij.lang.annotations.Language;
import org.jetbrains.annotations.*;
@@ -1421,19 +1420,8 @@ public class HighlightUtil extends HighlightUtilBase {
HighlightInfo error =
HighlightInfo.newHighlightInfo(HighlightInfoType.ERROR).range(statement).descriptionAndTooltip(description).create();
if (statement instanceof PsiExpressionStatement) {
PsiExpressionStatement expressionStatement = (PsiExpressionStatement)statement;
PsiExpression expression = expressionStatement.getExpression();
List<PsiExpression> sideEffects = SideEffectChecker.extractSideEffectExpressions(expression);
if (sideEffects.isEmpty()) {
QuickFixAction.registerQuickFixAction(error, QuickFixFactory.getInstance().createDeleteFix(statement));
}
else {
// "Remove unnecessary parentheses" action is already present which will do the same
if(sideEffects.size() != 1 || sideEffects.get(0) != PsiUtil.skipParenthesizedExprDown(expression)) {
QuickFixAction
.registerQuickFixAction(error, QuickFixFactory.getInstance().createExtractSideEffectsFix(expressionStatement, sideEffects));
}
}
QuickFixAction
.registerQuickFixAction(error, QuickFixFactory.getInstance().createDeleteSideEffectAwareFix((PsiExpressionStatement)statement));
}
return error;
}

View File

@@ -696,7 +696,7 @@ public class EmptyQuickFixFactory extends QuickFixFactory {
@NotNull
@Override
public IntentionAction createExtractSideEffectsFix(@NotNull PsiExpressionStatement statement, @NotNull List<PsiExpression> sideEffects) {
public IntentionAction createDeleteSideEffectAwareFix(@NotNull PsiExpressionStatement statement) {
return QuickFixes.EMPTY_FIX;
}
}