@Override
  protected void processIntention(@NotNull PsiElement element, @NotNull ActionContext context, @NotNull ModPsiUpdater updater) {
    final GrIndexProperty arrayIndexExpression = (GrIndexProperty)element;

    final GrArgumentList argList = (GrArgumentList)arrayIndexExpression.getLastChild();

    assert argList != null;
    final GrExpression[] arguments = argList.getExpressionArguments();

    final PsiElement parent = element.getParent();
    final GrExpression arrayExpression = arrayIndexExpression.getInvokedExpression();
    if (!(parent instanceof GrAssignmentExpression assignmentExpression)) {
      rewriteAsGetAt(arrayIndexExpression, arrayExpression, arguments[0]);
      return;
    }
    final GrExpression rhs = assignmentExpression.getRValue();
    if (rhs.equals(element)) {
      rewriteAsGetAt(arrayIndexExpression, arrayExpression, arguments[0]);
    }
    else {
      rewriteAsSetAt(assignmentExpression, arrayExpression, arguments[0], rhs);
    }
  }
@Override
  protected void processIntention(@NotNull PsiElement element, @NotNull ActionContext context, @NotNull ModPsiUpdater updater)