PsiField (PsiExpression condition) { condition = PsiUtil.deparenthesizeExpression(condition); if (condition == null) { return null; } final PsiField field = getFieldIfSimpleFieldAccess(condition); if (field != null) { return field; } if (condition instanceof PsiPrefixExpression prefixExpression) { IElementType type = prefixExpression.getOperationTokenType(); if(!type.equals(JavaTokenType.PLUSPLUS) && !type.equals(JavaTokenType.MINUSMINUS)) { final PsiExpression operand = prefixExpression.getOperand(); return getFieldIfSimpleFieldComparison(operand); } } if (condition instanceof PsiBinaryExpression binaryExpression) { final PsiExpression lOperand = binaryExpression.getLOperand(); final PsiExpression rOperand = binaryExpression.getROperand(); if (ExpressionUtils.isLiteral(rOperand)) { return getFieldIfSimpleFieldComparison(lOperand); } else if (ExpressionUtils.isLiteral(lOperand)) { return getFieldIfSimpleFieldComparison(rOperand); } else { return null; } } return null; }