DAS: Move CorrectionUtils.indentLeft and indentRight near their call sites

Cq-Include-Trybots: luci.dart.try:flutter-analyze-try,analyzer-win-release-try,pkg-win-release-try
Bug: https://github.com/dart-lang/sdk/issues/53402
Change-Id: Id62b06f3419820d4a74b34b51a6022792bcef7ab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/363404
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_switch_expression.dart b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_switch_expression.dart
index 9d080ad..430be45 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/convert_to_switch_expression.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/convert_to_switch_expression.dart
@@ -270,6 +270,21 @@
     return deletion;
   }
 
+  /// Adds [level] indents to each line.
+  String indentRight(String text, {int level = 1}) {
+    var buffer = StringBuffer();
+    var indent = utils.oneIndent * level;
+    var eol = utils.endOfLine;
+    var lines = text.split(eol);
+    for (var line in lines) {
+      if (buffer.isNotEmpty) {
+        buffer.write(eol);
+      }
+      buffer.write('$indent$line');
+    }
+    return buffer.toString();
+  }
+
   bool isEffectivelyExhaustive(SwitchStatement node, DartType? expressionType) {
     if (expressionType == null) return false;
     if ((typeSystem as TypeSystemImpl).isAlwaysExhaustive(expressionType)) {
@@ -420,7 +435,7 @@
 
     switch (indentation) {
       case _IndentationFullFirstRightAll():
-        var indentedText = utils.indentRight(
+        var indentedText = indentRight(
           nextLinePrefix + text,
           level: indentation.level,
         );
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/remove_comparison.dart b/pkg/analysis_server/lib/src/services/correction/dart/remove_comparison.dart
index a9f0b03..b08b2a5 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/remove_comparison.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/remove_comparison.dart
@@ -86,10 +86,33 @@
     }
   }
 
+  /// Splits [text] into lines, and removes one level of indent from each line.
+  ///
+  /// Lines that don't start with indentation are left as is.
+  String indentLeft(String text) {
+    var buffer = StringBuffer();
+    var indent = utils.oneIndent;
+    var eol = utils.endOfLine;
+    var lines = text.split(eol);
+    for (var line in lines) {
+      if (buffer.isNotEmpty) {
+        buffer.write(eol);
+      }
+      String updatedLine;
+      if (line.startsWith(indent)) {
+        updatedLine = line.substring(indent.length);
+      } else {
+        updatedLine = line;
+      }
+      buffer.write(updatedLine);
+    }
+    return buffer.toString();
+  }
+
   Future<void> _ifElement(IfElement node, ChangeBuilder builder) async {
     Future<void> replaceWithElement(CollectionElement element) async {
       var text = _textWithLeadingComments(element);
-      var unIndented = utils.indentLeft(text);
+      var unIndented = indentLeft(text);
       await builder.addDartFileEdit(file, (builder) {
         builder.addSimpleReplacement(range.node(node), unIndented);
       });
@@ -123,7 +146,7 @@
           ),
         ),
       );
-      var unIndented = utils.indentLeft(text);
+      var unIndented = indentLeft(text);
       await builder.addDartFileEdit(file, (builder) {
         builder.addSimpleReplacement(
           utils.getLinesRangeStatements([node]),
@@ -134,7 +157,7 @@
 
     Future<void> replaceWithStatement(Statement replacement) async {
       var text = _textWithLeadingComments(replacement);
-      var unIndented = utils.indentLeft(text);
+      var unIndented = indentLeft(text);
       await builder.addDartFileEdit(file, (builder) {
         builder.addSimpleReplacement(range.node(node), unIndented);
       });
diff --git a/pkg/analysis_server/lib/src/services/correction/util.dart b/pkg/analysis_server/lib/src/services/correction/util.dart
index 6278715..e71c93a 100644
--- a/pkg/analysis_server/lib/src/services/correction/util.dart
+++ b/pkg/analysis_server/lib/src/services/correction/util.dart
@@ -393,14 +393,14 @@
 
   static const String _twoIndents = _oneIndent + _oneIndent;
 
-  final CompilationUnit unit;
+  final CompilationUnit _unit;
 
   final String _buffer;
 
   String? _endOfLine;
 
   CorrectionUtils(ParsedUnitResult result)
-      : unit = result.unit,
+      : _unit = result.unit,
         _buffer = result.content;
 
   /// The EOL sequence to use for this [CompilationUnit].
@@ -426,7 +426,7 @@
   String get twoIndents => _twoIndents;
 
   /// Returns the [AstNode] that encloses the given offset.
-  AstNode? findNode(int offset) => NodeLocator(offset).searchWithin(unit);
+  AstNode? findNode(int offset) => NodeLocator(offset).searchWithin(_unit);
 
   /// Skips whitespace characters and single EOL on the right from [index].
   ///
@@ -524,7 +524,7 @@
     // end
     var endOffset = sourceRange.end;
     var afterEndLineOffset = endOffset;
-    var lineInfo = unit.lineInfo;
+    var lineInfo = _unit.lineInfo;
     var lineStart = lineInfo
         .getOffsetOfLine(lineInfo.getLocation(startLineOffset).lineNumber - 1);
     if (lineStart == startLineOffset) {
@@ -597,43 +597,6 @@
     return _buffer.substring(offset, offset + length);
   }
 
-  /// Splits [text] into lines, and removes one level of indent from each line.
-  /// Lines that don't start with indentation are left as is.
-  String indentLeft(String text) {
-    var buffer = StringBuffer();
-    var indent = oneIndent;
-    var eol = endOfLine;
-    var lines = text.split(eol);
-    for (var line in lines) {
-      if (buffer.isNotEmpty) {
-        buffer.write(eol);
-      }
-      String updatedLine;
-      if (line.startsWith(indent)) {
-        updatedLine = line.substring(indent.length);
-      } else {
-        updatedLine = line;
-      }
-      buffer.write(updatedLine);
-    }
-    return buffer.toString();
-  }
-
-  /// Adds [level] indents to each line.
-  String indentRight(String text, {int level = 1}) {
-    var buffer = StringBuffer();
-    var indent = _oneIndent * level;
-    var eol = endOfLine;
-    var lines = text.split(eol);
-    for (var line in lines) {
-      if (buffer.isNotEmpty) {
-        buffer.write(eol);
-      }
-      buffer.write('$indent$line');
-    }
-    return buffer.toString();
-  }
-
   /// Indents given source left or right.
   String indentSourceLeftRight(String source, {bool indentLeft = true}) {
     var sb = StringBuffer();
@@ -682,7 +645,7 @@
     // prepare STRING token ranges
     var lineRanges = <SourceRange>[];
     {
-      var tokens = TokenUtils.getTokens(source, unit.featureSet);
+      var tokens = TokenUtils.getTokens(source, _unit.featureSet);
       for (var token in tokens) {
         if (token.type == TokenType.STRING) {
           lineRanges.add(range.token(token));
@@ -838,7 +801,7 @@
       return true;
     }
     // may be comment
-    return TokenUtils.getTokens(trimmedText, unit.featureSet).isEmpty;
+    return TokenUtils.getTokens(trimmedText, _unit.featureSet).isEmpty;
   }
 
   /// Return `true` if [selection] covers [range] and there are any