| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library analyzer_cli.src.driver; | 5 library analyzer_cli.src.driver; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:convert'; | 8 import 'dart:convert'; |
| 9 import 'dart:io'; | 9 import 'dart:io'; |
| 10 | 10 |
| 11 import 'package:analyzer/file_system/file_system.dart' as fileSystem; | 11 import 'package:analyzer/file_system/file_system.dart' as fileSystem; |
| 12 import 'package:analyzer/file_system/physical_file_system.dart'; | 12 import 'package:analyzer/file_system/physical_file_system.dart'; |
| 13 import 'package:analyzer/plugin/embedded_resolver_provider.dart'; | 13 import 'package:analyzer/plugin/embedded_resolver_provider.dart'; |
| 14 import 'package:analyzer/plugin/options.dart'; | 14 import 'package:analyzer/plugin/options.dart'; |
| 15 import 'package:analyzer/plugin/resolver_provider.dart'; | 15 import 'package:analyzer/plugin/resolver_provider.dart'; |
| 16 import 'package:analyzer/source/analysis_options_provider.dart'; | 16 import 'package:analyzer/source/analysis_options_provider.dart'; |
| 17 import 'package:analyzer/source/embedder.dart'; | 17 import 'package:analyzer/source/embedder.dart'; |
| 18 import 'package:analyzer/source/package_map_provider.dart'; | 18 import 'package:analyzer/source/package_map_provider.dart'; |
| 19 import 'package:analyzer/source/package_map_resolver.dart'; | 19 import 'package:analyzer/source/package_map_resolver.dart'; |
| 20 import 'package:analyzer/source/pub_package_map_provider.dart'; | 20 import 'package:analyzer/source/pub_package_map_provider.dart'; |
| 21 import 'package:analyzer/source/sdk_ext.dart'; | 21 import 'package:analyzer/source/sdk_ext.dart'; |
| 22 import 'package:analyzer/src/generated/constant.dart'; | 22 import 'package:analyzer/src/generated/constant.dart'; |
| 23 import 'package:analyzer/src/generated/engine.dart'; | 23 import 'package:analyzer/src/generated/engine.dart'; |
| 24 import 'package:analyzer/src/generated/error.dart'; | 24 import 'package:analyzer/src/generated/error.dart'; |
| 25 import 'package:analyzer/src/generated/interner.dart'; | 25 import 'package:analyzer/src/generated/interner.dart'; |
| 26 import 'package:analyzer/src/generated/java_engine.dart'; | 26 import 'package:analyzer/src/generated/java_engine.dart'; |
| 27 import 'package:analyzer/src/generated/java_io.dart'; | 27 import 'package:analyzer/src/generated/java_io.dart'; |
| 28 import 'package:analyzer/src/generated/sdk.dart'; |
| 28 import 'package:analyzer/src/generated/sdk_io.dart'; | 29 import 'package:analyzer/src/generated/sdk_io.dart'; |
| 29 import 'package:analyzer/src/generated/source.dart'; | 30 import 'package:analyzer/src/generated/source.dart'; |
| 30 import 'package:analyzer/src/generated/source_io.dart'; | 31 import 'package:analyzer/src/generated/source_io.dart'; |
| 31 import 'package:analyzer/src/generated/utilities_general.dart' | 32 import 'package:analyzer/src/generated/utilities_general.dart' |
| 32 show PerformanceTag; | 33 show PerformanceTag; |
| 33 import 'package:analyzer/src/services/lint.dart'; | 34 import 'package:analyzer/src/services/lint.dart'; |
| 35 import 'package:analyzer/src/summary/summary_sdk.dart' show SummaryBasedDartSdk; |
| 34 import 'package:analyzer/src/task/options.dart'; | 36 import 'package:analyzer/src/task/options.dart'; |
| 35 import 'package:analyzer_cli/src/analyzer_impl.dart'; | 37 import 'package:analyzer_cli/src/analyzer_impl.dart'; |
| 36 import 'package:analyzer_cli/src/build_mode.dart'; | 38 import 'package:analyzer_cli/src/build_mode.dart'; |
| 37 import 'package:analyzer_cli/src/error_formatter.dart'; | 39 import 'package:analyzer_cli/src/error_formatter.dart'; |
| 38 import 'package:analyzer_cli/src/options.dart'; | 40 import 'package:analyzer_cli/src/options.dart'; |
| 39 import 'package:analyzer_cli/src/perf_report.dart'; | 41 import 'package:analyzer_cli/src/perf_report.dart'; |
| 40 import 'package:analyzer_cli/starter.dart'; | 42 import 'package:analyzer_cli/starter.dart'; |
| 41 import 'package:linter/src/plugin/linter_plugin.dart'; | 43 import 'package:linter/src/plugin/linter_plugin.dart'; |
| 42 import 'package:package_config/discovery.dart' as pkgDiscovery; | 44 import 'package:package_config/discovery.dart' as pkgDiscovery; |
| 43 import 'package:package_config/packages.dart' show Packages; | 45 import 'package:package_config/packages.dart' show Packages; |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 84 /// creation. | 86 /// creation. |
| 85 CommandLineOptions _previousOptions; | 87 CommandLineOptions _previousOptions; |
| 86 | 88 |
| 87 @override | 89 @override |
| 88 EmbeddedResolverProvider embeddedUriResolverProvider; | 90 EmbeddedResolverProvider embeddedUriResolverProvider; |
| 89 | 91 |
| 90 @override | 92 @override |
| 91 ResolverProvider packageResolverProvider; | 93 ResolverProvider packageResolverProvider; |
| 92 | 94 |
| 93 /// SDK instance. | 95 /// SDK instance. |
| 94 DirectoryBasedDartSdk sdk; | 96 DartSdk sdk; |
| 95 | 97 |
| 96 /// Collected analysis statistics. | 98 /// Collected analysis statistics. |
| 97 final AnalysisStats stats = new AnalysisStats(); | 99 final AnalysisStats stats = new AnalysisStats(); |
| 98 | 100 |
| 99 /// This Driver's current analysis context. | 101 /// This Driver's current analysis context. |
| 100 /// | 102 /// |
| 101 /// *Visible for testing.* | 103 /// *Visible for testing.* |
| 102 AnalysisContext get context => _context; | 104 AnalysisContext get context => _context; |
| 103 | 105 |
| 104 @override | 106 @override |
| (...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 577 exitCode = errorSeverity.ordinal; | 579 exitCode = errorSeverity.ordinal; |
| 578 } | 580 } |
| 579 if (options.warningsAreFatal && errorSeverity == ErrorSeverity.WARNING) { | 581 if (options.warningsAreFatal && errorSeverity == ErrorSeverity.WARNING) { |
| 580 exitCode = errorSeverity.ordinal; | 582 exitCode = errorSeverity.ordinal; |
| 581 } | 583 } |
| 582 return errorSeverity; | 584 return errorSeverity; |
| 583 } | 585 } |
| 584 | 586 |
| 585 void _setupSdk(CommandLineOptions options) { | 587 void _setupSdk(CommandLineOptions options) { |
| 586 if (sdk == null) { | 588 if (sdk == null) { |
| 587 String dartSdkPath = options.dartSdkPath; | 589 if (options.dartSdkSummaryPath != null) { |
| 588 sdk = new DirectoryBasedDartSdk(new JavaFile(dartSdkPath)); | 590 sdk = new SummaryBasedDartSdk(options.dartSdkSummaryPath); |
| 589 sdk.useSummary = options.sourceFiles.every((String sourcePath) { | 591 } else { |
| 590 sourcePath = path.absolute(sourcePath); | 592 String dartSdkPath = options.dartSdkPath; |
| 591 sourcePath = path.normalize(sourcePath); | 593 DirectoryBasedDartSdk directorySdk = |
| 592 return !path.isWithin(dartSdkPath, sourcePath); | 594 new DirectoryBasedDartSdk(new JavaFile(dartSdkPath)); |
| 593 }); | 595 directorySdk.useSummary = |
| 594 sdk.analysisOptions = context.analysisOptions; | 596 options.sourceFiles.every((String sourcePath) { |
| 597 sourcePath = path.absolute(sourcePath); |
| 598 sourcePath = path.normalize(sourcePath); |
| 599 return !path.isWithin(dartSdkPath, sourcePath); |
| 600 }); |
| 601 directorySdk.analysisOptions = context.analysisOptions; |
| 602 sdk = directorySdk; |
| 603 } |
| 595 } | 604 } |
| 596 } | 605 } |
| 597 | 606 |
| 598 static AnalysisOptionsImpl createAnalysisOptionsForCommandLineOptions( | 607 static AnalysisOptionsImpl createAnalysisOptionsForCommandLineOptions( |
| 599 CommandLineOptions options) { | 608 CommandLineOptions options) { |
| 600 AnalysisOptionsImpl contextOptions = new AnalysisOptionsImpl(); | 609 AnalysisOptionsImpl contextOptions = new AnalysisOptionsImpl(); |
| 601 contextOptions.hint = !options.disableHints; | 610 contextOptions.hint = !options.disableHints; |
| 602 contextOptions.enableStrictCallChecks = options.enableStrictCallChecks; | 611 contextOptions.enableStrictCallChecks = options.enableStrictCallChecks; |
| 603 contextOptions.enableSuperMixins = options.enableSuperMixins; | 612 contextOptions.enableSuperMixins = options.enableSuperMixins; |
| 604 contextOptions.generateImplicitErrors = options.showPackageWarnings; | 613 contextOptions.generateImplicitErrors = options.showPackageWarnings; |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 783 for (var package in packages) { | 792 for (var package in packages) { |
| 784 var packageName = path.basename(package.path); | 793 var packageName = path.basename(package.path); |
| 785 var realPath = package.resolveSymbolicLinksSync(); | 794 var realPath = package.resolveSymbolicLinksSync(); |
| 786 result[packageName] = [ | 795 result[packageName] = [ |
| 787 PhysicalResourceProvider.INSTANCE.getFolder(realPath) | 796 PhysicalResourceProvider.INSTANCE.getFolder(realPath) |
| 788 ]; | 797 ]; |
| 789 } | 798 } |
| 790 return result; | 799 return result; |
| 791 } | 800 } |
| 792 } | 801 } |
| OLD | NEW |