IDEA-175510 "Constant conditions & exceptions" inspection provides non-sensical quick fix in some cases

This commit is contained in:
peter
2017-07-07 17:13:12 +02:00
parent 4402e56003
commit 03ddb122a8
3 changed files with 16 additions and 0 deletions
@@ -293,6 +293,7 @@ public class DataFlowInspectionBase extends BaseJavaBatchLocalInspectionTool {
}
private static boolean isNullLiteral(PsiExpression qualifier) {
if (qualifier instanceof PsiTypeCastExpression) return isNullLiteral(((PsiTypeCastExpression)qualifier).getOperand());
return qualifier instanceof PsiLiteralExpression && ((PsiLiteralExpression)qualifier).getValue() == null;
}
@@ -0,0 +1,9 @@
import org.jetbrains.annotations.NotNull;
class Foo {
void main() {
foo(<warning descr="Argument '(String) null' might be null">(String) nu<caret>ll</warning>);
}
static void foo(@NotNull String s) {}
}
@@ -23,6 +23,7 @@ import com.intellij.psi.PsiField;
import com.intellij.testFramework.LightProjectDescriptor;
import com.intellij.testFramework.PlatformTestUtil;
import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
/**
@@ -524,4 +525,9 @@ public class DataFlowInspectionTest extends DataFlowInspectionTestCase {
doTest();
}
public void testNoNonSensicalFixesOnCastedNull() {
doTest();
assertEmpty(ContainerUtil.findAll(myFixture.getAvailableIntentions(), i -> i.getText().contains("null")));
}
}