private static LocalQuickFix createReplaceParentOperatorFix(@NotNull PsiPrefixExpression prefixExpr) {
      final PsiElement parent = prefixExpr.getParent();
      if (parent instanceof PsiPolyadicExpression polyadicExpression) {
        if (ExpressionUtils.hasType(polyadicExpression, CommonClassNames.JAVA_LANG_STRING)) {
          return null;
        }
        final PsiJavaToken token = polyadicExpression.getTokenBeforeOperand(prefixExpr);
        if (token == null) {
          return null;
        }
        final IElementType tokenType = token.getTokenType();
        if (!JavaTokenType.PLUS.equals(tokenType) && !JavaTokenType.MINUS.equals(tokenType)) {
          return null;
        }
        return new ReplaceParentOperatorFix();
      }
      else if (parent instanceof PsiAssignmentExpression assignmentExpression) {
        if (ExpressionUtils.hasType(assignmentExpression, CommonClassNames.JAVA_LANG_STRING)) {
          return null;
        }
        final IElementType assignmentTokenType = assignmentExpression.getOperationTokenType();
        if (!JavaTokenType.PLUSEQ.equals(assignmentTokenType)) {
          return null;
        }
        final PsiExpression rhs = assignmentExpression.getRExpression();
        if (!prefixExpr.equals(rhs)) {
          // don't warn on broken code.
          return null;
        }
        return new ReplaceParentOperatorFix();
      }
      return null;
    }
private static LocalQuickFix createReplaceParentOperatorFix(@NotNull PsiPrefixExpression prefixExpr)