| 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 |
| (...skipping 570 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 581 } | 581 } |
| 582 return errorSeverity; | 582 return errorSeverity; |
| 583 } | 583 } |
| 584 | 584 |
| 585 void _setupEnv(CommandLineOptions options) { | 585 void _setupEnv(CommandLineOptions options) { |
| 586 // In batch mode, SDK is specified on the main command line rather than in | 586 // In batch mode, SDK is specified on the main command line rather than in |
| 587 // the command lines sent to stdin. So process it before deciding whether | 587 // the command lines sent to stdin. So process it before deciding whether |
| 588 // to activate batch mode. | 588 // to activate batch mode. |
| 589 if (sdk == null) { | 589 if (sdk == null) { |
| 590 sdk = new DirectoryBasedDartSdk(new JavaFile(options.dartSdkPath)); | 590 sdk = new DirectoryBasedDartSdk(new JavaFile(options.dartSdkPath)); |
| 591 sdk.analysisOptions = createAnalysisOptionsForCommandLineOptions(options); |
| 591 } | 592 } |
| 592 _isBatch = options.shouldBatch; | 593 _isBatch = options.shouldBatch; |
| 593 } | 594 } |
| 594 | 595 |
| 596 static AnalysisOptionsImpl createAnalysisOptionsForCommandLineOptions( |
| 597 CommandLineOptions options) { |
| 598 AnalysisOptionsImpl contextOptions = new AnalysisOptionsImpl(); |
| 599 contextOptions.hint = !options.disableHints; |
| 600 contextOptions.enableStrictCallChecks = options.enableStrictCallChecks; |
| 601 contextOptions.enableSuperMixins = options.enableSuperMixins; |
| 602 contextOptions.enableConditionalDirectives = |
| 603 options.enableConditionalDirectives; |
| 604 contextOptions.generateImplicitErrors = options.showPackageWarnings; |
| 605 contextOptions.generateSdkErrors = options.showSdkWarnings; |
| 606 contextOptions.lint = options.lints; |
| 607 contextOptions.strongMode = options.strongMode; |
| 608 return contextOptions; |
| 609 } |
| 610 |
| 595 static void setAnalysisContextOptions( | 611 static void setAnalysisContextOptions( |
| 596 AnalysisContext context, | 612 AnalysisContext context, |
| 597 CommandLineOptions options, | 613 CommandLineOptions options, |
| 598 void configureContextOptions(AnalysisOptionsImpl contextOptions)) { | 614 void configureContextOptions(AnalysisOptionsImpl contextOptions)) { |
| 599 Map<String, String> definedVariables = options.definedVariables; | 615 Map<String, String> definedVariables = options.definedVariables; |
| 600 if (!definedVariables.isEmpty) { | 616 if (!definedVariables.isEmpty) { |
| 601 DeclaredVariables declaredVariables = context.declaredVariables; | 617 DeclaredVariables declaredVariables = context.declaredVariables; |
| 602 definedVariables.forEach((String variableName, String value) { | 618 definedVariables.forEach((String variableName, String value) { |
| 603 declaredVariables.define(variableName, value); | 619 declaredVariables.define(variableName, value); |
| 604 }); | 620 }); |
| 605 } | 621 } |
| 606 | 622 |
| 607 if (options.log) { | 623 if (options.log) { |
| 608 AnalysisEngine.instance.logger = new StdLogger(); | 624 AnalysisEngine.instance.logger = new StdLogger(); |
| 609 } | 625 } |
| 610 | 626 |
| 611 // Prepare context options. | 627 // Prepare context options. |
| 612 AnalysisOptionsImpl contextOptions = new AnalysisOptionsImpl(); | 628 AnalysisOptionsImpl contextOptions = |
| 613 contextOptions.hint = !options.disableHints; | 629 createAnalysisOptionsForCommandLineOptions(options); |
| 614 contextOptions.enableStrictCallChecks = options.enableStrictCallChecks; | |
| 615 contextOptions.enableSuperMixins = options.enableSuperMixins; | |
| 616 contextOptions.enableConditionalDirectives = | |
| 617 options.enableConditionalDirectives; | |
| 618 contextOptions.generateImplicitErrors = options.showPackageWarnings; | |
| 619 contextOptions.generateSdkErrors = options.showSdkWarnings; | |
| 620 contextOptions.lint = options.lints; | |
| 621 contextOptions.strongMode = options.strongMode; | |
| 622 configureContextOptions(contextOptions); | 630 configureContextOptions(contextOptions); |
| 623 | 631 |
| 624 // Set context options. | 632 // Set context options. |
| 625 context.analysisOptions = contextOptions; | 633 context.analysisOptions = contextOptions; |
| 626 context.sourceFactory.dartSdk.context.analysisOptions = contextOptions; | |
| 627 | 634 |
| 628 // Process analysis options file (and notify all interested parties). | 635 // Process analysis options file (and notify all interested parties). |
| 629 _processAnalysisOptions(context, options); | 636 _processAnalysisOptions(context, options); |
| 630 } | 637 } |
| 631 | 638 |
| 632 /// Perform a deep comparison of two string maps. | 639 /// Perform a deep comparison of two string maps. |
| 633 static bool _equalMaps(Map<String, String> m1, Map<String, String> m2) { | 640 static bool _equalMaps(Map<String, String> m1, Map<String, String> m2) { |
| 634 if (m1.length != m2.length) { | 641 if (m1.length != m2.length) { |
| 635 return false; | 642 return false; |
| 636 } | 643 } |
| (...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 772 for (var package in packages) { | 779 for (var package in packages) { |
| 773 var packageName = path.basename(package.path); | 780 var packageName = path.basename(package.path); |
| 774 var realPath = package.resolveSymbolicLinksSync(); | 781 var realPath = package.resolveSymbolicLinksSync(); |
| 775 result[packageName] = [ | 782 result[packageName] = [ |
| 776 PhysicalResourceProvider.INSTANCE.getFolder(realPath) | 783 PhysicalResourceProvider.INSTANCE.getFolder(realPath) |
| 777 ]; | 784 ]; |
| 778 } | 785 } |
| 779 return result; | 786 return result; |
| 780 } | 787 } |
| 781 } | 788 } |
| OLD | NEW |