[analyzer] Accept optional FileContentCache in `build_resolvers.dart`.
The default `FileContentCache.ephemeral` reads files as bytes then
converts them to `String` and hashes them. `build_runner` does the
same, so by injecting a `FileContentCache` it can deduplicate the
work.
R=scheglov@google.com
Change-Id: Id046fee8c98263719098c77981bbe10bd1b84658
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/408701
Commit-Queue: Morgan :) <davidmorgan@google.com>
Auto-Submit: Morgan :) <davidmorgan@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/clients/build_resolvers/build_resolvers.dart b/pkg/analyzer/lib/src/clients/build_resolvers/build_resolvers.dart
index 30935f0..828948f 100644
--- a/pkg/analyzer/lib/src/clients/build_resolvers/build_resolvers.dart
+++ b/pkg/analyzer/lib/src/clients/build_resolvers/build_resolvers.dart
@@ -13,6 +13,7 @@
import 'package:analyzer/src/dart/analysis/analysis_options_map.dart';
import 'package:analyzer/src/dart/analysis/byte_store.dart';
import 'package:analyzer/src/dart/analysis/driver.dart';
+import 'package:analyzer/src/dart/analysis/file_content_cache.dart';
import 'package:analyzer/src/dart/analysis/performance_logger.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/summary/package_bundle_reader.dart';
@@ -41,6 +42,7 @@
required ResourceProvider resourceProvider,
required Uint8List sdkSummaryBytes,
required AnalysisOptions analysisOptions,
+ FileContentCache? fileContentCache,
required List<UriResolver> uriResolvers,
required Packages packages,
ByteStore? byteStore,
@@ -67,6 +69,7 @@
byteStore: byteStore ?? MemoryByteStore(),
sourceFactory: sourceFactory,
analysisOptionsMap: optionsMap,
+ fileContentCache: fileContentCache,
externalSummaries: dataStore,
packages: packages,
shouldReportInconsistentAnalysisException: false,