From f74cd44e784fbb8a1ad2350f6991a0b3a522c2e6 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 9 Dec 2013 21:05:51 +0400 Subject: [PATCH] IDEA-117896 Behavior of variable checked for null inspection is influenced by brackets --- .../siyeh/ig/bugs/VariableNotUsedInsideIfInspection.java | 3 ++- .../VariableNotUsedInsideIf.java | 5 +++++ .../igtest/bugs/variable_not_used_inside_if/expected.xml | 8 ++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/VariableNotUsedInsideIfInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/VariableNotUsedInsideIfInspection.java index bae56e94b550..658835629bcf 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/VariableNotUsedInsideIfInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/bugs/VariableNotUsedInsideIfInspection.java @@ -17,6 +17,7 @@ package com.siyeh.ig.bugs; import com.intellij.psi.*; import com.intellij.psi.tree.IElementType; +import com.intellij.psi.util.PsiUtil; import com.siyeh.InspectionGadgetsBundle; import com.siyeh.ig.BaseInspection; import com.siyeh.ig.BaseInspectionVisitor; @@ -56,7 +57,7 @@ public class VariableNotUsedInsideIfInspection extends BaseInspection { @Override public void visitConditionalExpression(PsiConditionalExpression expression) { super.visitConditionalExpression(expression); - final PsiExpression condition = expression.getCondition(); + final PsiExpression condition = PsiUtil.skipParenthesizedExprDown(expression.getCondition()); if (!(condition instanceof PsiBinaryExpression)) { return; } diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/variable_not_used_inside_if/VariableNotUsedInsideIf.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/variable_not_used_inside_if/VariableNotUsedInsideIf.java index c6d13025555d..33925cea2eec 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/variable_not_used_inside_if/VariableNotUsedInsideIf.java +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/variable_not_used_inside_if/VariableNotUsedInsideIf.java @@ -61,4 +61,9 @@ public class VariableNotUsedInsideIf { private int someValue() { return 0; } + + void perenthesis(String[] args) + { + String message = (args == null) ? "not null" : "null"; + } } \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/variable_not_used_inside_if/expected.xml b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/variable_not_used_inside_if/expected.xml index 603a54209ebd..c3a2f7643220 100644 --- a/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/variable_not_used_inside_if/expected.xml +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/bugs/variable_not_used_inside_if/expected.xml @@ -41,4 +41,12 @@ Reference checked for 'null' is not used inside 'if' <code>x</code> checked for 'null' is not used inside conditional #loc + + + VariableNotUsedInsideIf.java + 67 + Reference checked for 'null' is not used inside 'if' + <code>args</code> checked for 'null' is not used inside conditional #loc + + \ No newline at end of file