boolean (PsiExpression expression) { final PsiElement parent = PsiUtil.skipParenthesizedExprUp(expression.getParent()); if (!(parent instanceof PsiPolyadicExpression polyadicExpression)) { return false; } if (!JavaTokenType.PLUS.equals(polyadicExpression.getOperationTokenType())) { return false; } final PsiExpression[] operands = polyadicExpression.getOperands(); if (operands.length < 2) { return false; } for (int i = 0; i < operands.length; i++) { final PsiExpression operand = operands[i]; if (PsiUtil.skipParenthesizedExprDown(operand) == expression) { return i == 0 && TypeUtils.isJavaLangString(operands[1].getType()); } final PsiType type = operand.getType(); if (TypeUtils.isJavaLangString(type)) { return true; } } return false; }