From 3dcd60cbb516e28381208731f4fcbbd6e22f335a Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Wed, 13 Jun 2018 19:58:34 +0300 Subject: [PATCH] expand boolean: replace with explicit type (IDEA-193829) --- .../com/siyeh/ipp/trivialif/ExpandBooleanIntention.java | 9 +++++++-- .../com/siyeh/ipp/trivialif/expand_boolean/Braces.java | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ExpandBooleanIntention.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ExpandBooleanIntention.java index 32b39a4909be..ae089a1eeed1 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ExpandBooleanIntention.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/trivialif/ExpandBooleanIntention.java @@ -18,6 +18,7 @@ package com.siyeh.ipp.trivialif; import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; +import com.intellij.psi.util.PsiTypesUtil; import com.siyeh.IntentionPowerPackBundle; import com.siyeh.ig.psiutils.CommentTracker; import com.siyeh.ipp.base.MutablyNamedIntention; @@ -113,8 +114,12 @@ public class ExpandBooleanIntention extends MutablyNamedIntention { final PsiExpression condition = newIfStatement.getCondition(); assert condition != null; condition.replace(initializer); - final PsiElement newElement = declarationStatement.getParent().addAfter(newIfStatement, declarationStatement); - CodeStyleManager.getInstance(project).reformat(newElement); + CodeStyleManager.getInstance(project).reformat(declarationStatement.getParent().addAfter(newIfStatement, declarationStatement)); + PsiTypeElement typeElement = variable.getTypeElement(); + if (typeElement.isInferredType() && + PsiTypesUtil.replaceWithExplicitType(typeElement) == null) { + return; + } initializer.delete(); } } diff --git a/plugins/IntentionPowerPak/test/com/siyeh/ipp/trivialif/expand_boolean/Braces.java b/plugins/IntentionPowerPak/test/com/siyeh/ipp/trivialif/expand_boolean/Braces.java index 0504e77f94d1..2e7d1d865564 100644 --- a/plugins/IntentionPowerPak/test/com/siyeh/ipp/trivialif/expand_boolean/Braces.java +++ b/plugins/IntentionPowerPak/test/com/siyeh/ipp/trivialif/expand_boolean/Braces.java @@ -1,6 +1,6 @@ class Braces { void m() { - final boolean isEqualsVoorSyncResync = this instanceof A ? isEqual2() : isEqual();//keep me + final var isEqualsVoorSyncResync = this instanceof A ? isEqual2() : isEqual();//keep me } private boolean isEqual() {