public override SyntaxList <StatementSyntax> VisitRedimClause(VBSyntax.RedimClauseSyntax node)
            {
                bool preserve = node.Parent is VBSyntax.ReDimStatementSyntax rdss && rdss.PreserveKeyword.IsKind(VBasic.SyntaxKind.PreserveKeyword);

                var csTargetArrayExpression = (ExpressionSyntax)node.Expression.Accept(_nodesVisitor);
                var convertedBounds         = CommonConversions.ConvertArrayBounds(node.ArrayBounds).ToList();

                var newArrayAssignment = CreateNewArrayAssignment(node.Expression, csTargetArrayExpression, convertedBounds, node.SpanStart);

                if (!preserve)
                {
                    return(SingleStatement(newArrayAssignment));
                }

                var oldTargetName      = GetUniqueVariableNameInScope(node, "old" + csTargetArrayExpression.ToString().ToPascalCase());
                var oldArrayAssignment = CreateLocalVariableDeclarationAndAssignment(oldTargetName, csTargetArrayExpression);

                var oldTargetExpression = SyntaxFactory.IdentifierName(oldTargetName);
                var arrayCopyIfNotNull  = CreateConditionalArrayCopy(node, oldTargetExpression, csTargetArrayExpression, convertedBounds);

                return(SyntaxFactory.List(new StatementSyntax[] { oldArrayAssignment, newArrayAssignment, arrayCopyIfNotNull }));
            }
 // RedimClause is implemented in MethodBodyVisitor, but is not an executable statement
 public override SyntaxList <StatementSyntax> VisitRedimClause(VBSyntax.RedimClauseSyntax node) => _wrappedVisitor.Visit(node);