Remove dependency on quiver. (#82)
The dart2js_info package is included in the Dart SDK. This reduces the dependencies on other third-party packages.
diff --git a/lib/deferred_library_check.dart b/lib/deferred_library_check.dart
index bd698c7..8a7e98b 100644
--- a/lib/deferred_library_check.dart
+++ b/lib/deferred_library_check.dart
@@ -38,20 +38,18 @@
/// 'baz'.
library dart2js_info.deferred_library_check;
-import 'package:quiver/collection.dart';
-
import 'info.dart';
List<ManifestComplianceFailure> checkDeferredLibraryManifest(
AllInfo info, Map manifest) {
- var includedPackages = new Multimap<String, String>();
- var excludedPackages = new Multimap<String, String>();
+ var includedPackages = new Map<String, Set<String>>();
+ var excludedPackages = new Map<String, Set<String>>();
for (var part in manifest.keys) {
for (var package in manifest[part]['include'] ?? []) {
- includedPackages.add(part, package);
+ (includedPackages[part] ??= {}).add(package);
}
for (var package in manifest[part]['exclude'] ?? []) {
- excludedPackages.add(part, package);
+ (excludedPackages[part] ??= {}).add(package);
}
}
@@ -77,10 +75,11 @@
return partNameFailures;
}
- var mentionedPackages = new Set()
- ..addAll(includedPackages.values)
- ..addAll(excludedPackages.values);
- var actualIncludedPackages = new Multimap<String, String>();
+ var mentionedPackages = {
+ for (var values in includedPackages.values) ...values,
+ for (var values in excludedPackages.values) ...values
+ };
+ var actualIncludedPackages = new Map<String, Set<String>>();
var failures = <ManifestComplianceFailure>[];
@@ -97,7 +96,7 @@
containingParts.addAll(info.outputUnit.imports);
}
for (var part in containingParts) {
- actualIncludedPackages.add(part, packageName);
+ (actualIncludedPackages[part] ??= {}).add(packageName);
if (excludedPackages[part].contains(packageName)) {
failures
.add(new _PartContainedExcludedPackage(part, packageName, info));
@@ -109,10 +108,12 @@
info.functions.forEach(checkInfo);
info.fields.forEach(checkInfo);
- includedPackages.forEach((part, package) {
- if (!actualIncludedPackages.containsKey(part) ||
- !actualIncludedPackages[part].contains(package)) {
- failures.add(new _PartDidNotContainPackage(part, package));
+ includedPackages.forEach((part, packages) {
+ for (var package in packages) {
+ if (!actualIncludedPackages.containsKey(part) ||
+ !actualIncludedPackages[part].contains(package)) {
+ failures.add(new _PartDidNotContainPackage(part, package));
+ }
}
});
return failures;
diff --git a/pubspec.yaml b/pubspec.yaml
index 0e6e222..2d00e84 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -17,7 +17,6 @@
fixnum: ^0.10.5
path: ^1.3.6
protobuf: ^1.0.1
- quiver: '>=0.29.0 <3.0.0'
shelf: ^0.7.3
shelf_static: ^0.2.4
yaml: ^2.1.0