Skip to content

Commit a0d6b2d

Browse files
DanTupCommit Queue
authored andcommitted
[analysis_server] Switch some code from package:collection to Dart 3 APIs
- change forEachIndexed to `.indexed` - remove `package:collection` imports for files only using `.firstOrNull`, `.singleOrNull`, `.lastOrNull` that is now available in `dart:core` - switch from `Pair` to records - use switch expressions Change-Id: Id1ae22db427b4cd955f26e0d6c852944a540a05f Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/298061 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Brian Wilkerson <[email protected]>
1 parent 528c75a commit a0d6b2d

21 files changed

+22
-44
lines changed

pkg/analysis_server/lib/src/computer/computer_folding.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import 'package:analyzer/dart/ast/token.dart';
77
import 'package:analyzer/dart/ast/visitor.dart';
88
import 'package:analyzer/source/line_info.dart';
99
import 'package:analyzer_plugin/protocol/protocol_common.dart';
10-
import 'package:collection/collection.dart';
1110

1211
/// A computer for [CompilationUnit] folding.
1312
class DartUnitFoldingComputer {

pkg/analysis_server/lib/src/computer/computer_lazy_type_hierarchy.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import 'package:analyzer/source/source_range.dart';
1111
import 'package:analyzer/src/dart/element/element.dart';
1212
import 'package:analyzer/src/utilities/extensions/analysis_session.dart';
1313
import 'package:analyzer/src/utilities/extensions/ast.dart';
14-
import 'package:collection/collection.dart';
1514

1615
/// A lazy computer for Type Hierarchies.
1716
///
@@ -156,7 +155,7 @@ class DartLazyTypeHierarchyComputer {
156155
];
157156

158157
if (anchor != null) {
159-
supertypes.forEachIndexed((index, item) {
158+
for (final (index, item) in supertypes.indexed) {
160159
// We only need to carry the anchor along if the supertype has type
161160
// arguments that we may be populating.
162161
if (item._type.typeArguments.isNotEmpty) {
@@ -165,7 +164,7 @@ class DartLazyTypeHierarchyComputer {
165164
path: [...anchor.path, index],
166165
);
167166
}
168-
});
167+
}
169168
}
170169

171170
return supertypes;

pkg/analysis_server/lib/src/lsp/handlers/handler_text_document_changes.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class TextDocumentChangeHandler
4747
failureIsCritical: true);
4848
return newContents.mapResult((result) {
4949
server.documentVersions[path] = params.textDocument;
50-
server.onOverlayUpdated(path, result.last, newContent: result.first);
50+
server.onOverlayUpdated(path, result.edits, newContent: result.content);
5151
return success(null);
5252
});
5353
}

pkg/analysis_server/lib/src/lsp/mapping.dart

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import 'package:analyzer/src/dart/analysis/search.dart' as server
2727
show DeclarationKind;
2828
import 'package:analyzer/src/error/codes.dart';
2929
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
30-
import 'package:analyzer_plugin/utilities/pair.dart';
3130
import 'package:collection/collection.dart';
3231

3332
const languageSourceName = 'dart';
@@ -638,20 +637,16 @@ lsp.DiagnosticRelatedInformation? pluginToDiagnosticRelatedInformation(
638637

639638
lsp.DiagnosticSeverity pluginToDiagnosticSeverity(
640639
plugin.AnalysisErrorSeverity severity) {
641-
switch (severity) {
642-
case plugin.AnalysisErrorSeverity.ERROR:
643-
return lsp.DiagnosticSeverity.Error;
644-
case plugin.AnalysisErrorSeverity.WARNING:
645-
return lsp.DiagnosticSeverity.Warning;
646-
case plugin.AnalysisErrorSeverity.INFO:
647-
return lsp.DiagnosticSeverity.Information;
640+
return switch (severity) {
641+
plugin.AnalysisErrorSeverity.ERROR => lsp.DiagnosticSeverity.Error,
642+
plugin.AnalysisErrorSeverity.WARNING => lsp.DiagnosticSeverity.Warning,
643+
plugin.AnalysisErrorSeverity.INFO => lsp.DiagnosticSeverity.Information,
648644
// Note: LSP also supports "Hint", but they won't render in things like the
649645
// VS Code errors list as they're apparently intended to communicate
650646
// non-visible diagnostics back (for example, if you wanted to grey out
651647
// unreachable code without producing an item in the error list).
652-
default:
653-
throw 'Unknown AnalysisErrorSeverity: $severity';
654-
}
648+
_ => throw 'Unknown AnalysisErrorSeverity: $severity'
649+
};
655650
}
656651

657652
/// Converts a numeric relevance to a sortable string.
@@ -965,8 +960,8 @@ lsp.CompletionItem toCompletionItem(
965960
selectionOffset: suggestion.selectionOffset,
966961
selectionLength: suggestion.selectionLength,
967962
);
968-
final insertText = insertTextInfo.first;
969-
final insertTextFormat = insertTextInfo.last;
963+
final insertText = insertTextInfo.text;
964+
final insertTextFormat = insertTextInfo.format;
970965
final isMultilineCompletion = insertText.contains('\n');
971966

972967
final rawDoc = includeDocumentation == DocumentationPreference.full
@@ -1425,7 +1420,7 @@ lsp.MarkupContent _asMarkup(
14251420
return lsp.MarkupContent(kind: format, value: content);
14261421
}
14271422

1428-
Pair<String, lsp.InsertTextFormat> _buildInsertText({
1423+
({String text, lsp.InsertTextFormat format}) _buildInsertText({
14291424
required bool supportsSnippets,
14301425
required bool commitCharactersEnabled,
14311426
required bool completeFunctionCalls,
@@ -1481,7 +1476,7 @@ Pair<String, lsp.InsertTextFormat> _buildInsertText({
14811476
}
14821477
}
14831478

1484-
return Pair(insertText, insertTextFormat);
1479+
return (text: insertText, format: insertTextFormat);
14851480
}
14861481

14871482
String _errorCode(server.ErrorCode code) => code.name.toLowerCase();

pkg/analysis_server/lib/src/lsp/source_edits.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import 'package:analyzer/src/dart/scanner/reader.dart';
1414
import 'package:analyzer/src/dart/scanner/scanner.dart';
1515
import 'package:analyzer/src/generated/source.dart';
1616
import 'package:analyzer_plugin/protocol/protocol_common.dart' as plugin;
17-
import 'package:analyzer_plugin/utilities/pair.dart';
1817
import 'package:dart_style/dart_style.dart';
1918

2019
DartFormatter formatter = DartFormatter();
@@ -24,7 +23,8 @@ DartFormatter formatter = DartFormatter();
2423
///
2524
/// Since the translation from line/characters to offsets needs to take previous
2625
/// changes into account, this will also apply the edits to [oldContent].
27-
ErrorOr<Pair<String, List<plugin.SourceEdit>>> applyAndConvertEditsToServer(
26+
ErrorOr<({String content, List<plugin.SourceEdit> edits})>
27+
applyAndConvertEditsToServer(
2828
String oldContent,
2929
List<TextDocumentContentChangeEvent> changes, {
3030
bool failureIsCritical = false,
@@ -69,7 +69,7 @@ ErrorOr<Pair<String, List<plugin.SourceEdit>>> applyAndConvertEditsToServer(
6969
return ErrorOr.error(result.error);
7070
}
7171
}
72-
return ErrorOr.success(Pair(newContent, serverEdits));
72+
return ErrorOr.success((content: newContent, edits: serverEdits));
7373
}
7474

7575
ErrorOr<List<TextEdit>?> generateEditsForFormatting(

pkg/analysis_server/lib/src/services/completion/dart/feature_computer.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import 'package:analyzer/src/dart/element/inheritance_manager3.dart';
2525
import 'package:analyzer/src/dart/resolver/body_inference_context.dart';
2626
import 'package:analyzer/src/utilities/extensions/object.dart';
2727
import 'package:analyzer_plugin/utilities/range_factory.dart';
28-
import 'package:collection/collection.dart';
2928

3029
const List<String> intNames = ['i', 'j', 'index', 'length'];
3130
const List<String> listNames = ['list', 'items'];

pkg/analysis_server/lib/src/services/completion/dart/fuzzy_filter_sort.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import 'package:analysis_server/src/protocol_server.dart';
66
import 'package:analysis_server/src/services/completion/dart/suggestion_builder.dart';
77
import 'package:analysis_server/src/services/completion/filtering/fuzzy_matcher.dart';
8-
import 'package:collection/collection.dart';
98

109
final _identifierPattern = RegExp(r'([_a-zA-Z][_a-zA-Z0-9]*)');
1110

pkg/analysis_server/lib/src/services/completion/dart/super_formal_contributor.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import 'package:analysis_server/src/provisional/completion/dart/completion_dart.
66
import 'package:analyzer/dart/ast/ast.dart';
77
import 'package:analyzer/src/dart/element/element.dart';
88
import 'package:analyzer/src/util/performance/operation_performance.dart';
9-
import 'package:collection/collection.dart';
109

1110
/// A contributor that produces suggestions for super formal parameters that
1211
/// are based on the parameters declared by the invoked super-constructor.

pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,12 @@ class TypeMemberContributor extends DartCompletionContributor {
103103
required RecordType type,
104104
required Set<String> excludedFields,
105105
}) {
106-
type.positionalFields.forEachIndexed((index, field) {
106+
for (final (index, field) in type.positionalFields.indexed) {
107107
builder.suggestRecordField(
108108
field: field,
109109
name: '\$${index + 1}',
110110
);
111-
});
111+
}
112112

113113
for (final field in type.namedFields) {
114114
if (!excludedFields.contains(field.name)) {

pkg/analysis_server/lib/src/services/correction/dart/add_await.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import 'package:analyzer/dart/ast/ast.dart';
88
import 'package:analyzer/dart/element/type.dart';
99
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
1010
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
11-
import 'package:collection/collection.dart';
1211

1312
class AddAwait extends CorrectionProducer {
1413
/// The kind of correction to be made.

pkg/analysis_server/lib/src/services/correction/dart/add_diagnostic_property_reference.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import 'package:analyzer_plugin/utilities/assist/assist.dart';
1212
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
1313
import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dart';
1414
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
15-
import 'package:collection/collection.dart';
1615

1716
class AddDiagnosticPropertyReference extends CorrectionProducer {
1817
@override

pkg/analysis_server/lib/src/services/correction/dart/change_to.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import 'package:analyzer/dart/element/element.dart';
1414
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
1515
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
1616
import 'package:analyzer_plugin/utilities/range_factory.dart';
17-
import 'package:collection/collection.dart';
1817

1918
/// A predicate is a one-argument function that returns a boolean value.
2019
typedef _ElementPredicate = bool Function(Element argument);

pkg/analysis_server/lib/src/services/correction/dart/convert_to_switch_expression.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import 'package:analyzer_plugin/utilities/assist/assist.dart';
1313
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
1414
import 'package:analyzer_plugin/utilities/change_builder/change_builder_dart.dart';
1515
import 'package:analyzer_plugin/utilities/range_factory.dart';
16-
import 'package:collection/collection.dart';
1716

1817
class ConvertToSwitchExpression extends CorrectionProducer {
1918
/// Local variable reference used in assignment switch expression generation.

pkg/analysis_server/lib/src/services/correction/dart/flutter_convert_to_stateless_widget.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import 'package:analyzer_plugin/protocol/protocol_common.dart' hide Element;
1616
import 'package:analyzer_plugin/utilities/assist/assist.dart';
1717
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
1818
import 'package:analyzer_plugin/utilities/range_factory.dart';
19-
import 'package:collection/collection.dart';
2019

2120
class FlutterConvertToStatelessWidget extends CorrectionProducer {
2221
@override

pkg/analysis_server/lib/src/services/correction/dart/flutter_remove_widget.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import 'package:analyzer_plugin/utilities/assist/assist.dart';
1313
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
1414
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
1515
import 'package:analyzer_plugin/utilities/range_factory.dart';
16-
import 'package:collection/collection.dart';
1716

1817
class FlutterRemoveWidget extends CorrectionProducer {
1918
@override

pkg/analysis_server/lib/src/services/correction/dart/move_doc_comment_to_library_directive.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import 'package:analyzer/source/source_range.dart';
1212
import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dart';
1313
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
1414
import 'package:analyzer_plugin/utilities/range_factory.dart';
15-
import 'package:collection/collection.dart';
1615

1716
class MoveDocCommentToLibraryDirective extends CorrectionProducer {
1817
@override

pkg/analysis_server/lib/src/services/correction/organize_imports.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import 'package:analyzer/src/error/codes.dart';
1414
import 'package:analyzer/src/ignore_comments/ignore_info.dart';
1515
import 'package:analyzer_plugin/protocol/protocol_common.dart'
1616
hide AnalysisError, Element;
17-
import 'package:collection/collection.dart';
1817
import 'package:meta/meta_meta.dart';
1918

2019
/// Organizer of imports (and other directives) in the [unit].

pkg/analysis_server/lib/src/services/correction/util.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import 'package:analyzer_plugin/protocol/protocol_common.dart'
2828
show SourceChange, SourceEdit;
2929
import 'package:analyzer_plugin/src/utilities/string_utilities.dart';
3030
import 'package:analyzer_plugin/utilities/range_factory.dart';
31-
import 'package:collection/collection.dart';
3231
import 'package:path/path.dart' as path;
3332

3433
/// Adds edits to the given [change] that ensure that all the [libraries] are

pkg/analysis_server/test/lsp/pub_package_service_test.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import 'package:analysis_server/src/services/pub/pub_command.dart';
1010
import 'package:analysis_server/src/services/pub/pub_package_service.dart';
1111
import 'package:analyzer/instrumentation/service.dart';
1212
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
13-
import 'package:collection/collection.dart';
1413
import 'package:http/http.dart';
1514
import 'package:path/path.dart' as path;
1615
import 'package:test/test.dart';
@@ -252,13 +251,13 @@ class PubCommandTest with ResourceProviderMixin {
252251
(executable, args, {dir, env}) => MockProcess(1, 0, validJson, '');
253252
final result = await pubCommand.outdatedVersions(pubspecPath);
254253
expect(result, hasLength(2));
255-
result.forEachIndexed((index, package) {
254+
for (final (index, package) in result.indexed) {
256255
expect(package.packageName, equals(index == 0 ? 'foo' : 'bar'));
257256
expect(package.currentVersion, equals('1.0.0'));
258257
expect(package.upgradableVersion, equals('2.0.0'));
259258
expect(package.resolvableVersion, equals('3.0.0'));
260259
expect(package.latestVersion, equals('4.0.0'));
261-
});
260+
}
262261
}
263262
}
264263

pkg/analysis_server/test/lsp/type_hierarchy_test.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import 'package:analysis_server/lsp_protocol/protocol_generated.dart';
66
import 'package:analyzer/src/test_utilities/test_code_format.dart';
7-
import 'package:collection/collection.dart';
87
import 'package:test/test.dart';
98
import 'package:test_reflective_loader/test_reflective_loader.dart';
109

pkg/analysis_server/test/src/computer/color_computer_test.dart

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import 'package:analysis_server/src/computer/computer_color.dart';
66
import 'package:analyzer/dart/analysis/results.dart';
77
import 'package:analyzer/diagnostic/diagnostic.dart';
8-
import 'package:collection/collection.dart';
98
import 'package:test/test.dart';
109
import 'package:test_reflective_loader/test_reflective_loader.dart';
1110

@@ -148,7 +147,7 @@ class ColorComputerTest extends AbstractContextTest {
148147
'$dartCode',
149148
);
150149

151-
expectedColorValues.entries.forEachIndexed((i, expectedColor) {
150+
for (final (i, expectedColor) in expectedColorValues.entries.indexed) {
152151
final color = colors[i];
153152
final expectedColorCode = expectedColor.key;
154153
final expectedColorValue = expectedColor.value;
@@ -175,7 +174,7 @@ class ColorComputerTest extends AbstractContextTest {
175174
expectComponent(color.color.red, expectedRed, 'Red');
176175
expectComponent(color.color.green, expectedGreen, 'Green');
177176
expectComponent(color.color.blue, expectedBlue, 'Blue');
178-
});
177+
}
179178
}
180179

181180
void expectNoErrors(ResolvedUnitResult result) {

0 commit comments

Comments
 (0)