Index: pkg/analyzer_cli/lib/src/build_mode.dart |
diff --git a/pkg/analyzer_cli/lib/src/build_mode.dart b/pkg/analyzer_cli/lib/src/build_mode.dart |
index d49a5198c88de8fc4c4442b4cd939db9ee60df54..f01502e134412c07a2a90f4361f982509a67206f 100644 |
--- a/pkg/analyzer_cli/lib/src/build_mode.dart |
+++ b/pkg/analyzer_cli/lib/src/build_mode.dart |
@@ -14,6 +14,7 @@ import 'package:analyzer/file_system/physical_file_system.dart'; |
import 'package:analyzer/src/generated/engine.dart'; |
import 'package:analyzer/src/generated/error.dart'; |
import 'package:analyzer/src/generated/java_io.dart'; |
+import 'package:analyzer/src/generated/sdk.dart'; |
import 'package:analyzer/src/generated/sdk_io.dart'; |
import 'package:analyzer/src/generated/source.dart'; |
import 'package:analyzer/src/generated/source_io.dart'; |
@@ -23,6 +24,7 @@ import 'package:analyzer/src/summary/link.dart'; |
import 'package:analyzer/src/summary/package_bundle_reader.dart'; |
import 'package:analyzer/src/summary/summarize_ast.dart'; |
import 'package:analyzer/src/summary/summarize_elements.dart'; |
+import 'package:analyzer/src/summary/summary_sdk.dart' show SummaryBasedDartSdk; |
import 'package:analyzer/task/dart.dart'; |
import 'package:analyzer_cli/src/analyzer_impl.dart'; |
import 'package:analyzer_cli/src/driver.dart'; |
@@ -237,18 +239,29 @@ class BuildMode { |
} |
void _createContext() { |
- DirectoryBasedDartSdk sdk = |
- new DirectoryBasedDartSdk(new JavaFile(options.dartSdkPath)); |
- sdk.analysisOptions = |
- Driver.createAnalysisOptionsForCommandLineOptions(options); |
- sdk.useSummary = !options.buildSummaryOnlyAst; |
- |
// Read the summaries. |
summaryDataStore = new SummaryDataStore(options.buildSummaryInputs); |
+ DartSdk sdk; |
+ PackageBundle sdkBundle; |
+ if (options.dartSdkSummaryPath != null) { |
+ SummaryBasedDartSdk summarySdk = |
+ new SummaryBasedDartSdk(options.dartSdkSummaryPath); |
+ sdk = summarySdk; |
+ sdkBundle = summarySdk.bundle; |
+ } else { |
+ DirectoryBasedDartSdk directorySdk = |
+ new DirectoryBasedDartSdk(new JavaFile(options.dartSdkPath)); |
+ directorySdk.analysisOptions = |
+ Driver.createAnalysisOptionsForCommandLineOptions(options); |
+ directorySdk.useSummary = !options.buildSummaryOnlyAst; |
+ sdk = directorySdk; |
+ sdkBundle = directorySdk.getSummarySdkBundle(); |
+ } |
+ |
// In AST mode include SDK bundle to avoid parsing SDK sources. |
if (options.buildSummaryOnlyAst) { |
- summaryDataStore.addBundle(null, sdk.getSummarySdkBundle()); |
+ summaryDataStore.addBundle(null, sdkBundle); |
} |
// Create the context. |