Match (@NotNull PsiTypeCastExpression typeCastExpression1, @NotNull PsiTypeCastExpression typeCastExpression2) { final PsiTypeElement typeElement1 = typeCastExpression1.getCastType(); final PsiTypeElement typeElement2 = typeCastExpression2.getCastType(); if (!typeElementsAreEquivalent(typeElement1, typeElement2).isExactMatch()) { return EXACT_MISMATCH; } final PsiExpression operand1 = typeCastExpression1.getOperand(); final PsiExpression operand2 = typeCastExpression2.getOperand(); if (operand1 instanceof PsiFunctionalExpression || operand2 instanceof PsiFunctionalExpression) { return EXACT_MISMATCH; } return expressionsMatch(operand1, operand2).partialIfExactMismatch(operand1, operand2); }