diff --git a/lib/deferred_library_check.dart b/lib/deferred_library_check.dart index bd698c7c2376..8a7e98bef58d 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 checkDeferredLibraryManifest( AllInfo info, Map manifest) { - var includedPackages = new Multimap(); - var excludedPackages = new Multimap(); + var includedPackages = new Map>(); + var excludedPackages = new Map>(); 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 @@ List checkDeferredLibraryManifest( return partNameFailures; } - var mentionedPackages = new Set() - ..addAll(includedPackages.values) - ..addAll(excludedPackages.values); - var actualIncludedPackages = new Multimap(); + var mentionedPackages = { + for (var values in includedPackages.values) ...values, + for (var values in excludedPackages.values) ...values + }; + var actualIncludedPackages = new Map>(); var failures = []; @@ -97,7 +96,7 @@ List checkDeferredLibraryManifest( 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 @@ List checkDeferredLibraryManifest( 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 0e6e22261242..2d00e8428121 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -17,7 +17,6 @@ dependencies: 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