InstanceofCatchParameter inspection should not report instanceof check on marker interfaces (ex: ControlFlowException)

This commit is contained in:
Dmitry Batkovich
2018-05-16 15:50:31 +03:00
parent 9899644304
commit cf67614f85
@@ -16,6 +16,7 @@
package com.siyeh.ig.errorhandling;
import com.intellij.psi.*;
import com.intellij.psi.util.InheritanceUtil;
import com.siyeh.InspectionGadgetsBundle;
import com.siyeh.ig.BaseInspection;
import com.siyeh.ig.BaseInspectionVisitor;
@@ -47,12 +48,15 @@ public class InstanceofCatchParameterInspection extends BaseInspection {
extends BaseInspectionVisitor {
@Override
public void visitInstanceOfExpression(
@NotNull PsiInstanceOfExpression exp) {
public void visitInstanceOfExpression(@NotNull PsiInstanceOfExpression exp) {
super.visitInstanceOfExpression(exp);
if (!ControlFlowUtils.isInCatchBlock(exp)) {
return;
}
PsiTypeElement typeElement = exp.getCheckType();
if (typeElement == null || !InheritanceUtil.isInheritor(typeElement.getType(), CommonClassNames.JAVA_LANG_THROWABLE)) {
return;
}
final PsiExpression operand = exp.getOperand();
if (!(operand instanceof PsiReferenceExpression)) {
return;