void (@NotNull GrUnaryExpression expression) { final IElementType sign = expression.getOperationTokenType(); if (!sign.equals(T_NOT)) { return; } final GrExpression operand = expression.getOperand(); if (isBooleanLiteral(operand)) { final PsiElement parent = expression.getParent(); if (parent instanceof GrExpression && isUnaryNot((GrExpression)parent)) { // don't highlight inner unary in double negation return; } registerError(expression); } else if (isUnaryNot(operand) && isBooleanLiteral(((GrUnaryExpression)operand).getOperand())) { registerError(expression); } }