InstanceOfUtils#findInstanceOf: null-check

GitOrigin-RevId: 3665bff967f078080d9da9edbdeb584f990acdc2
This commit is contained in:
Tagir Valeev
2020-02-04 09:38:28 +00:00
committed by intellij-monorepo-bot
parent 70d36bf478
commit 7389b1ded7
2 changed files with 14 additions and 1 deletions
@@ -0,0 +1,8 @@
// "Fix all 'Pattern variable can be used' problems in file" "false"
class X {
void test(Object obj) {
if() {
String <caret>s = (String) obj;
}
}
}
@@ -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);
}