| Index: pkg/analyzer/lib/src/summary/package_bundle_reader.dart
|
| diff --git a/pkg/analyzer/lib/src/summary/package_bundle_reader.dart b/pkg/analyzer/lib/src/summary/package_bundle_reader.dart
|
| index 1e443ede7d5842a2ed517e83f544fe0fce2d108a..616863fd8f94073679ec3fdd8c09cced3019aeb9 100644
|
| --- a/pkg/analyzer/lib/src/summary/package_bundle_reader.dart
|
| +++ b/pkg/analyzer/lib/src/summary/package_bundle_reader.dart
|
| @@ -1,5 +1,4 @@
|
| import 'dart:io' as io;
|
| -import 'dart:math' show min;
|
|
|
| import 'package:analyzer/dart/element/element.dart';
|
| import 'package:analyzer/file_system/file_system.dart';
|
| @@ -307,56 +306,6 @@ class StoreBasedSummaryResynthesizer extends SummaryResynthesizer {
|
| }
|
|
|
| /**
|
| - * A [ConflictingSummaryException] indicates that two different summaries
|
| - * provided to a [SummaryDataStore] conflict.
|
| - */
|
| -class ConflictingSummaryException implements Exception {
|
| - final String duplicatedUri;
|
| - final String summary1Uri;
|
| - final String summary2Uri;
|
| - String _message;
|
| -
|
| - ConflictingSummaryException(Iterable<String> summaryPaths, this.duplicatedUri,
|
| - this.summary1Uri, this.summary2Uri) {
|
| - // Paths are often quite long. Find and extract out a common prefix to
|
| - // build a more readable error message.
|
| - var prefix = _commonPrefix(summaryPaths.toList());
|
| - _message = '''
|
| -These summaries conflict because they overlap:
|
| -- ${summary1Uri.substring(prefix)}
|
| -- ${summary2Uri.substring(prefix)}
|
| -Both contain the file: ${duplicatedUri}.
|
| -This typically indicates an invalid build rule where two or more targets
|
| -include the same source.
|
| - ''';
|
| - }
|
| -
|
| - /// Given a set of file paths, find a common prefix.
|
| - int _commonPrefix(List<String> strings) {
|
| - if (strings.isEmpty) return 0;
|
| - var first = strings.first;
|
| - int common = first.length;
|
| - for (int i = 1; i < strings.length; ++i) {
|
| - var current = strings[i];
|
| - common = min(common, current.length);
|
| - for (int j = 0; j < common; ++j) {
|
| - if (first[j] != current[j]) {
|
| - common = j;
|
| - if (common == 0) return 0;
|
| - break;
|
| - }
|
| - }
|
| - }
|
| - // The prefix should end with a file separator.
|
| - var last =
|
| - first.substring(0, common).lastIndexOf(io.Platform.pathSeparator);
|
| - return last < 0 ? 0 : last + 1;
|
| - }
|
| -
|
| - String toString() => _message;
|
| -}
|
| -
|
| -/**
|
| * A [SummaryDataStore] is a container for the data extracted from a set of
|
| * summary package bundles. It contains maps which can be used to find linked
|
| * and unlinked summaries by URI.
|
| @@ -393,11 +342,6 @@ class SummaryDataStore {
|
| final Map<String, String> uriToSummaryPath = <String, String>{};
|
|
|
| /**
|
| - * List of summary paths.
|
| - */
|
| - final Iterable<String> _summaryPaths;
|
| -
|
| - /**
|
| * Create a [SummaryDataStore] and populate it with the summaries in
|
| * [summaryPaths]. If [recordDependencyInfo] is `true`, record
|
| * [PackageDependencyInfo] for each summary, for later access via
|
| @@ -405,8 +349,7 @@ class SummaryDataStore {
|
| */
|
| SummaryDataStore(Iterable<String> summaryPaths,
|
| {bool recordDependencyInfo: false, ResourceProvider resourceProvider})
|
| - : _summaryPaths = summaryPaths,
|
| - dependencies =
|
| + : dependencies =
|
| recordDependencyInfo ? <PackageDependencyInfoBuilder>[] : null {
|
| summaryPaths.forEach((String path) => _fillMaps(path, resourceProvider));
|
| }
|
| @@ -441,11 +384,6 @@ class SummaryDataStore {
|
| }
|
| for (int i = 0; i < bundle.unlinkedUnitUris.length; i++) {
|
| String uri = bundle.unlinkedUnitUris[i];
|
| - if (uriToSummaryPath.containsKey(uri) &&
|
| - (uriToSummaryPath[uri] != path)) {
|
| - throw new ConflictingSummaryException(
|
| - _summaryPaths, uri, uriToSummaryPath[uri], path);
|
| - }
|
| uriToSummaryPath[uri] = path;
|
| addUnlinkedUnit(uri, bundle.unlinkedUnits[i]);
|
| }
|
|
|