Add SetExtension.addIfNotNull()
Change-Id: I86d412c7eb30968608c845d407b9e8fd665f1997
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249100
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
index cea7103..b42bdf8 100644
--- a/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
+++ b/pkg/analyzer/lib/src/dart/micro/resolve_file.dart
@@ -38,6 +38,7 @@
import 'package:analyzer/src/summary2/linked_element_factory.dart';
import 'package:analyzer/src/task/options.dart';
import 'package:analyzer/src/util/performance/operation_performance.dart';
+import 'package:analyzer/src/utilities/extensions/collection.dart';
import 'package:analyzer/src/utilities/extensions/file_system.dart';
import 'package:analyzer/src/workspace/workspace.dart';
import 'package:collection/collection.dart';
@@ -1030,15 +1031,9 @@
var removedSet = removed.toSet();
- void addIfNotNull(String? key) {
- if (key != null) {
- removedKeys.add(key);
- }
- }
-
loadedBundles.removeWhere((cycle) {
if (cycle.libraries.any(removedSet.contains)) {
- addIfNotNull(cycle.resolutionKey);
+ removedKeys.addIfNotNull(cycle.resolutionKey);
return true;
}
return false;
@@ -1052,14 +1047,8 @@
final keySet = <String>{};
final uriSet = <Uri>{};
- void addIfNotNull(String? key) {
- if (key != null) {
- keySet.add(key);
- }
- }
-
for (var cycle in loadedBundles) {
- addIfNotNull(cycle.resolutionKey);
+ keySet.addIfNotNull(cycle.resolutionKey);
uriSet.addAll(cycle.libraries.map((e) => e.uri));
}
diff --git a/pkg/analyzer/lib/src/utilities/extensions/collection.dart b/pkg/analyzer/lib/src/utilities/extensions/collection.dart
index 091d858..8563d02 100644
--- a/pkg/analyzer/lib/src/utilities/extensions/collection.dart
+++ b/pkg/analyzer/lib/src/utilities/extensions/collection.dart
@@ -9,3 +9,11 @@
}
}
}
+
+extension SetExtension<E> on Set<E> {
+ void addIfNotNull(E? element) {
+ if (element != null) {
+ add(element);
+ }
+ }
+}
diff --git a/pkg/analyzer/test/src/utilities/extensions/collection_test.dart b/pkg/analyzer/test/src/utilities/extensions/collection_test.dart
index ea9231f..0b0f9f2 100644
--- a/pkg/analyzer/test/src/utilities/extensions/collection_test.dart
+++ b/pkg/analyzer/test/src/utilities/extensions/collection_test.dart
@@ -26,3 +26,18 @@
expect(elements, [0, 1]);
}
}
+
+@reflectiveTest
+class SetExtensionTest {
+ test_addIfNotNull_notNull() {
+ var elements = {0, 1};
+ elements.addIfNotNull(2);
+ expect(elements, {0, 1, 2});
+ }
+
+ test_addIfNotNull_null() {
+ var elements = {0, 1};
+ elements.addIfNotNull(null);
+ expect(elements, {0, 1});
+ }
+}