void (@NotNull PsiPolyadicExpression expression) { super.visitPolyadicExpression(expression); final IElementType tokenType = expression.getOperationTokenType(); if (!JavaTokenType.PLUS.equals(tokenType) || !ExpressionUtils.hasStringType(expression)) { return; } final boolean formatCall = FormatUtils.isFormatCallArgument(expression); final PsiExpression[] operands = expression.getOperands(); PsiExpression lhs = operands[0]; for (int i = 1; i < operands.length; i++) { final PsiExpression rhs = operands[i]; if (isMissingWhitespace(lhs, rhs, formatCall)) { final PsiJavaToken token = expression.getTokenBeforeOperand(rhs); if (token != null) { registerError(token); } } lhs = rhs; } }