| 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;
|
| + }
|
| }
|
| }
|
|
|
|
|