boolean (@Nullable PsiExpression expression) { if (expression instanceof PsiParenthesizedExpression parenthesizedExpression) { return containsNonConstantConcatenation(parenthesizedExpression.getExpression()); } else if (expression instanceof PsiPolyadicExpression polyadicExpression) { if (!ExpressionUtils.hasStringType(polyadicExpression)) { return false; } if (!JavaTokenType.PLUS.equals(polyadicExpression.getOperationTokenType())) { return false; } final PsiExpression[] operands = polyadicExpression.getOperands(); for (PsiExpression operand : operands) { if (!ExpressionUtils.isEvaluatedAtCompileTime(operand)) { return true; } } } return false; }