diff --git a/java/java-tests/testData/inspection/patternVariableCanBeUsed/beforeIncomplete.java b/java/java-tests/testData/inspection/patternVariableCanBeUsed/beforeIncomplete.java new file mode 100644 index 000000000000..7d4bb82b9223 --- /dev/null +++ b/java/java-tests/testData/inspection/patternVariableCanBeUsed/beforeIncomplete.java @@ -0,0 +1,8 @@ +// "Fix all 'Pattern variable can be used' problems in file" "false" +class X { + void test(Object obj) { + if() { + String s = (String) obj; + } + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/InstanceOfUtils.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/InstanceOfUtils.java index ceea98230266..bc8d78db01bc 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/InstanceOfUtils.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/psiutils/InstanceOfUtils.java @@ -27,6 +27,7 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiUtil; import com.intellij.util.ObjectUtils; import com.intellij.util.containers.ContainerUtil; +import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -278,7 +279,11 @@ public class InstanceOfUtils { return startOffset != -1 && endOffset != -1 && ControlFlowUtil.canCompleteNormally(flow, startOffset, endOffset); } - private static PsiInstanceOfExpression findInstanceOf(PsiExpression condition, PsiTypeCastExpression cast, boolean whenTrue) { + @Contract("null, _, _ -> null") + private static PsiInstanceOfExpression findInstanceOf(@Nullable PsiExpression condition, + @NotNull PsiTypeCastExpression cast, + boolean whenTrue) { + if (condition == null) return null; if (condition instanceof PsiParenthesizedExpression) { return findInstanceOf(((PsiParenthesizedExpression)condition).getExpression(), cast, whenTrue); }