Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(657)

Unified Diff: pkg/analyzer/lib/src/dart/analysis/driver.dart

Issue 2653683004: Stop using SDK summary bundle. Analyze dart:xxx as any other libraries. (Closed)
Patch Set: Restore optional SDK bundle. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/lib/src/dart/analysis/driver.dart
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 95a026a29a2ee3877651b67136857082dc655081..d1497604c790bcda30aa9250479d31fca7b1157b 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -74,7 +74,7 @@ class AnalysisDriver {
/**
* The version of data format, should be incremented on every format change.
*/
- static const int DATA_VERSION = 11;
+ static const int DATA_VERSION = 12;
/**
* The name of the driver, e.g. the name of the folder.
@@ -116,6 +116,11 @@ class AnalysisDriver {
AnalysisOptions _analysisOptions;
/**
+ * The optional SDK bundle, used when the client cannot read SDK files.
+ */
+ final PackageBundle _sdkBundle;
+
+ /**
* The [SourceFactory] is used to resolve URIs to paths and restore URIs
* from file paths.
*/
@@ -137,12 +142,6 @@ class AnalysisDriver {
FileSystemState _fsState;
/**
- * The combined unlinked and linked package for the SDK, extracted from
- * the given [sourceFactory].
- */
- PackageBundle _sdkBundle;
-
- /**
* The set of added files.
*/
final _addedFiles = new LinkedHashSet<String>();
@@ -247,26 +246,14 @@ class AnalysisDriver {
this._contentOverlay,
this.name,
SourceFactory sourceFactory,
- this._analysisOptions)
- : _sourceFactory = sourceFactory.clone() {
+ this._analysisOptions,
+ {PackageBundle sdkBundle})
+ : _sourceFactory = sourceFactory.clone(),
+ _sdkBundle = sdkBundle {
_testView = new AnalysisDriverTestView(this);
_fillSalt();
- _sdkBundle = sourceFactory.dartSdk.getLinkedBundle();
- if (_sdkBundle == null) {
- Type sdkType = sourceFactory.dartSdk.runtimeType;
- String message = 'DartSdk ($sdkType) for $name does not have summary.';
- AnalysisEngine.instance.logger.logError(message);
- throw new StateError(message);
- }
- _fsState = new FileSystemState(
- _logger,
- _byteStore,
- _contentOverlay,
- _resourceProvider,
- sourceFactory,
- _analysisOptions,
- _salt,
- _sdkBundle.apiSignature);
+ _fsState = new FileSystemState(_logger, _byteStore, _contentOverlay,
+ _resourceProvider, sourceFactory, _analysisOptions, _salt);
_scheduler._add(this);
_search = new Search(this);
}
@@ -480,18 +467,10 @@ class AnalysisDriver {
}
if (sourceFactory != null) {
_sourceFactory = sourceFactory;
- _sdkBundle = sourceFactory.dartSdk.getLinkedBundle();
}
_fillSalt();
- _fsState = new FileSystemState(
- _logger,
- _byteStore,
- _contentOverlay,
- _resourceProvider,
- _sourceFactory,
- _analysisOptions,
- _salt,
- _sdkBundle.apiSignature);
+ _fsState = new FileSystemState(_logger, _byteStore, _contentOverlay,
+ _resourceProvider, _sourceFactory, _analysisOptions, _salt);
_filesToAnalyze.addAll(_addedFiles);
_statusSupport.transitionToAnalyzing();
_scheduler._notify(this);
@@ -780,15 +759,18 @@ class AnalysisDriver {
return _logger.run('Create library context', () {
Map<String, FileState> libraries = <String, FileState>{};
SummaryDataStore store = new SummaryDataStore(const <String>[]);
- store.addBundle(null, _sdkBundle);
- void appendLibraryFiles(FileState library) {
- // URIs with the 'dart:' scheme are served from the SDK bundle.
- if (library.uri.scheme == 'dart') {
- return null;
- }
+ if (_sdkBundle != null) {
+ store.addBundle(null, _sdkBundle);
+ }
+ void appendLibraryFiles(FileState library) {
if (!libraries.containsKey(library.uriStr)) {
+ // Serve 'dart:' URIs from the SDK bundle.
+ if (_sdkBundle != null && library.uri.scheme == 'dart') {
+ return;
+ }
+
libraries[library.uriStr] = library;
// Append the defining unit.
« no previous file with comments | « pkg/analysis_server/test/services/search/search_engine2_test.dart ('k') | pkg/analyzer/lib/src/dart/analysis/file_state.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698