Some minor List to Set improvements (#2914)
diff --git a/lib/src/dartdoc_options.dart b/lib/src/dartdoc_options.dart
index 6529a28..52dfb7e 100644
--- a/lib/src/dartdoc_options.dart
+++ b/lib/src/dartdoc_options.dart
@@ -1253,14 +1253,16 @@
CategoryConfiguration get categories =>
optionSet['categories'].valueAt(context);
- List<String> get dropTextFrom => optionSet['dropTextFrom'].valueAt(context);
+ late final Set<String> dropTextFrom =
+ Set.of(optionSet['dropTextFrom'].valueAt(context));
String? get examplePathPrefix =>
optionSet['examplePathPrefix'].valueAt(context);
// TODO(srawlins): This memoization saved a lot of time in unit testing, but
// is the first value in this class to be memoized. Memoize others?
- late final List<String> exclude = optionSet['exclude'].valueAt(context);
+ late final Set<String> exclude =
+ Set.of(optionSet['exclude'].valueAt(context));
List<String> get excludePackages =>
optionSet['excludePackages'].valueAt(context);
@@ -1269,7 +1271,8 @@
bool get hideSdkText => optionSet['hideSdkText'].valueAt(context);
- List<String> get include => optionSet['include'].valueAt(context);
+ late final Set<String> include =
+ Set.of(optionSet['include'].valueAt(context));
List<String> get includeExternal =>
optionSet['includeExternal'].valueAt(context);
diff --git a/lib/src/element_type.dart b/lib/src/element_type.dart
index 984cacd..63ee6aa 100644
--- a/lib/src/element_type.dart
+++ b/lib/src/element_type.dart
@@ -137,7 +137,7 @@
@override
String get name {
if (type.isVoid) return 'void';
- assert({'Never', 'void', 'dynamic'}.contains(type.element!.name),
+ assert((const {'Never', 'void', 'dynamic'}).contains(type.element!.name),
'Unrecognized type for UndefinedElementType: ${type.toString()}');
return type.element!.name!;
}
diff --git a/lib/src/model/documentation_comment.dart b/lib/src/model/documentation_comment.dart
index 9c70d24..5aa082b 100644
--- a/lib/src/model/documentation_comment.dart
+++ b/lib/src/model/documentation_comment.dart
@@ -146,7 +146,7 @@
ModelElementRenderer get modelElementRenderer;
- static const _allDirectiveNames = [
+ static const _allDirectiveNames = {
'animation',
'end-inject-html',
'end-tool',
@@ -169,7 +169,7 @@
// Common Dart annotations which may decorate named parameters:
'deprecated',
'required',
- ];
+ };
static final _nameBreak = RegExp('[\\s}]');
diff --git a/lib/src/model/package_builder.dart b/lib/src/model/package_builder.dart
index 20af7c5..c2c7dd4 100644
--- a/lib/src/model/package_builder.dart
+++ b/lib/src/model/package_builder.dart
@@ -401,9 +401,9 @@
foundLibraries, files, isLibraryIncluded);
if (config.include.isNotEmpty) {
var knownLibraryNames = foundLibraries.map((l) => l.name);
- var notFound = Set<String>.from(config.include)
+ var notFound = config.include
.difference(Set.from(knownLibraryNames))
- .difference(Set.from(config.exclude));
+ .difference(config.exclude);
if (notFound.isNotEmpty) {
throw 'Did not find: [${notFound.join(', ')}] in '
'known libraries: [${knownLibraryNames.join(', ')}]';
diff --git a/lib/src/model/package_graph.dart b/lib/src/model/package_graph.dart
index c9d2fe3..117d97c 100644
--- a/lib/src/model/package_graph.dart
+++ b/lib/src/model/package_graph.dart
@@ -482,11 +482,11 @@
late final List<Package> publicPackages = () {
assert(allLibrariesAdded);
// Help the user if they pass us a package that doesn't exist.
+ var packageNames = packages.map((p) => p.name).toSet();
for (var packageName in config.packageOrder) {
- if (!packages.map((p) => p.name).contains(packageName)) {
+ if (!packageNames.contains(packageName)) {
warnOnElement(null, PackageWarning.packageOrderGivesMissingPackageName,
- message:
- "$packageName, packages: ${packages.map((p) => p.name).join(',')}");
+ message: "$packageName, packages: ${packageNames.join(',')}");
}
}
return packages.where((p) => p.isPublic).toList()..sort();