void (@NotNull PsiPrefixExpression expression) { super.visitPrefixExpression(expression); PsiExpression complemented = unwrapComplement(expression); if (complemented == null) return; if (extractDecrementedValue(complemented) != null) { registerError(expression, expression); } else { PsiExpression twiceComplemented = unwrapComplement(complemented); if (twiceComplemented != null && unwrapComplement(twiceComplemented) == null) { // In case of triple or more complements report innermost only to avoid overlapping reports registerError(expression, expression); } } }