Index: pkg/analyzer_cli/lib/src/driver.dart |
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart |
index e72435f901f9ecdd11b8c9e7587d4250595e166d..ab624daf9a3a0d380ec7d5093beac463f770fcbf 100644 |
--- a/pkg/analyzer_cli/lib/src/driver.dart |
+++ b/pkg/analyzer_cli/lib/src/driver.dart |
@@ -25,12 +25,14 @@ import 'package:analyzer/src/generated/error.dart'; |
import 'package:analyzer/src/generated/interner.dart'; |
import 'package:analyzer/src/generated/java_engine.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'; |
import 'package:analyzer/src/generated/utilities_general.dart' |
show PerformanceTag; |
import 'package:analyzer/src/services/lint.dart'; |
+import 'package:analyzer/src/summary/summary_sdk.dart' show SummaryBasedDartSdk; |
import 'package:analyzer/src/task/options.dart'; |
import 'package:analyzer_cli/src/analyzer_impl.dart'; |
import 'package:analyzer_cli/src/build_mode.dart'; |
@@ -91,7 +93,7 @@ class Driver implements CommandLineStarter { |
ResolverProvider packageResolverProvider; |
/// SDK instance. |
- DirectoryBasedDartSdk sdk; |
+ DartSdk sdk; |
/// Collected analysis statistics. |
final AnalysisStats stats = new AnalysisStats(); |
@@ -584,14 +586,21 @@ class Driver implements CommandLineStarter { |
void _setupSdk(CommandLineOptions options) { |
if (sdk == null) { |
- String dartSdkPath = options.dartSdkPath; |
- sdk = new DirectoryBasedDartSdk(new JavaFile(dartSdkPath)); |
- sdk.useSummary = options.sourceFiles.every((String sourcePath) { |
- sourcePath = path.absolute(sourcePath); |
- sourcePath = path.normalize(sourcePath); |
- return !path.isWithin(dartSdkPath, sourcePath); |
- }); |
- sdk.analysisOptions = context.analysisOptions; |
+ if (options.dartSdkSummaryPath != null) { |
+ sdk = new SummaryBasedDartSdk(options.dartSdkSummaryPath); |
+ } else { |
+ String dartSdkPath = options.dartSdkPath; |
+ DirectoryBasedDartSdk directorySdk = |
+ new DirectoryBasedDartSdk(new JavaFile(dartSdkPath)); |
+ directorySdk.useSummary = |
+ options.sourceFiles.every((String sourcePath) { |
+ sourcePath = path.absolute(sourcePath); |
+ sourcePath = path.normalize(sourcePath); |
+ return !path.isWithin(dartSdkPath, sourcePath); |
+ }); |
+ directorySdk.analysisOptions = context.analysisOptions; |
+ sdk = directorySdk; |
+ } |
} |
} |