private static boolean instanceofExpressionsAreEquivalent( GrInstanceOfExpression expression1, GrInstanceOfExpression expression2) { final GrExpression operand1 = expression1.getOperand(); final GrExpression operand2 = expression2.getOperand(); if (!expressionsAreEquivalent(operand1, operand2)) { return false; } final PsiType type1 = expression1.getTypeElement().getType(); final PsiType type2 = expression2.getTypeElement().getType(); return typesAreEquivalent(type1, type2); }
@Override public void visitInstanceofExpression(GrInstanceOfExpression expression) { final GrExpression operand = expression.getOperand(); final GrTypeElement typeElement = expression.getTypeElement(); if (typeElement == null) return; if (myExpression == operand) { final PsiType type = typeElement.getType(); myResult = new TypeConstraint[] {new SupertypeConstraint(type, type)}; } }
@Override public void visitInstanceofExpression(GrInstanceOfExpression expression) { expression.getOperand().accept(this); processInstanceOf(expression); }