boolean (PsiExpression rhs) { if (!(rhs instanceof PsiLiteralExpression literal)) { return false; } final Object value = literal.getValue(); if (!(value instanceof Number)) { return false; } if (value instanceof Double || value instanceof Float) { return false; } int intValue = ((Number)value).intValue(); if (intValue <= 0) { return false; } while (intValue % 2 == 0) { intValue >>= 1; } return intValue == 1; }