| Index: pkg/analyzer_cli/lib/src/options.dart
|
| diff --git a/pkg/analyzer_cli/lib/src/options.dart b/pkg/analyzer_cli/lib/src/options.dart
|
| index 2b75a64825abc32a08542423a3e8a618f50ea59e..c83cffcf2554d9c9d455a724cb093f2b2113e8a8 100644
|
| --- a/pkg/analyzer_cli/lib/src/options.dart
|
| +++ b/pkg/analyzer_cli/lib/src/options.dart
|
| @@ -8,6 +8,7 @@ import 'dart:io';
|
|
|
| import 'package:analyzer/file_system/physical_file_system.dart';
|
| import 'package:analyzer/src/command_line/arguments.dart';
|
| +import 'package:analyzer/src/context/builder.dart';
|
| import 'package:analyzer_cli/src/driver.dart';
|
| import 'package:args/args.dart';
|
| import 'package:cli_util/cli_util.dart' show getSdkDir;
|
| @@ -32,9 +33,6 @@ typedef void ExitHandler(int code);
|
|
|
| /// Analyzer commandline configuration options.
|
| class CommandLineOptions {
|
| - /// The path to an analysis options file
|
| - final String analysisOptionsFile;
|
| -
|
| /// The path to output analysis results when in build mode.
|
| final String buildAnalysisOutput;
|
|
|
| @@ -67,15 +65,15 @@ class CommandLineOptions {
|
| /// Whether to suppress a nonzero exit code in build mode.
|
| final bool buildSuppressExitCode;
|
|
|
| + /// The options defining the context in which analysis is performed.
|
| + final ContextBuilderOptions contextBuilderOptions;
|
| +
|
| /// The path to the dart SDK.
|
| String dartSdkPath;
|
|
|
| /// The path to the dart SDK summary file.
|
| String dartSdkSummaryPath;
|
|
|
| - /// A table mapping the names of defined variables to their values.
|
| - final Map<String, String> definedVariables;
|
| -
|
| /// Whether to disable cache flushing. This option can improve analysis
|
| /// speed at the expense of memory usage. It may also be useful for working
|
| /// around bugs.
|
| @@ -90,13 +88,6 @@ class CommandLineOptions {
|
| /// Whether to enable null-aware operators (DEP 9).
|
| final bool enableNullAwareOperators;
|
|
|
| - /// Whether to strictly follow the specification when generating warnings on
|
| - /// "call" methods (fixes dartbug.com/21938).
|
| - final bool enableStrictCallChecks;
|
| -
|
| - /// Whether to relax restrictions on mixins (DEP 34).
|
| - final bool enableSuperMixins;
|
| -
|
| /// Whether to treat type mismatches found during constant evaluation as
|
| /// errors.
|
| final bool enableTypeChecks;
|
| @@ -116,12 +107,6 @@ class CommandLineOptions {
|
| /// Whether to use machine format for error display
|
| final bool machineFormat;
|
|
|
| - /// The path to the package root
|
| - final String packageRootPath;
|
| -
|
| - /// The path to a `.packages` configuration file
|
| - final String packageConfigPath;
|
| -
|
| /// The path to a file to write a performance log.
|
| /// (Or null if not enabled.)
|
| final String perfReport;
|
| @@ -157,8 +142,7 @@ class CommandLineOptions {
|
| final bool lintsAreFatal;
|
|
|
| /// Initialize options from the given parsed [args].
|
| - CommandLineOptions._fromArgs(
|
| - ArgResults args, Map<String, String> definedVariables)
|
| + CommandLineOptions._fromArgs(ArgResults args)
|
| : buildAnalysisOutput = args['build-analysis-output'],
|
| buildMode = args['build-mode'],
|
| buildModePersistentWorker = args['persistent_worker'],
|
| @@ -170,24 +154,19 @@ class CommandLineOptions {
|
| buildSummaryOutput = args['build-summary-output'],
|
| buildSummaryOutputSemantic = args['build-summary-output-semantic'],
|
| buildSuppressExitCode = args['build-suppress-exit-code'],
|
| + contextBuilderOptions = createContextBuilderOptions(args),
|
| dartSdkPath = args['dart-sdk'],
|
| dartSdkSummaryPath = args['dart-sdk-summary'],
|
| - definedVariables = definedVariables,
|
| - analysisOptionsFile = args['options'],
|
| disableCacheFlushing = args['disable-cache-flushing'],
|
| disableHints = args['no-hints'],
|
| displayVersion = args['version'],
|
| enableNullAwareOperators = args['enable-null-aware-operators'],
|
| - enableStrictCallChecks = args['enable-strict-call-checks'],
|
| - enableSuperMixins = args['supermixin'],
|
| enableTypeChecks = args['enable_type_checks'],
|
| hintsAreFatal = args['fatal-hints'],
|
| ignoreUnrecognizedFlags = args['ignore-unrecognized-flags'],
|
| lints = args['lints'],
|
| log = args['log'],
|
| machineFormat = args['machine'] || args['format'] == 'machine',
|
| - packageConfigPath = args['packages'],
|
| - packageRootPath = args['package-root'],
|
| perfReport = args['x-perf-report'],
|
| shouldBatch = args['batch'],
|
| showPackageWarnings = args['show-package-warnings'] ||
|
| @@ -202,6 +181,30 @@ class CommandLineOptions {
|
| implicitDynamic = !args['no-implicit-dynamic'],
|
| lintsAreFatal = args['fatal-lints'];
|
|
|
| + /// The path to an analysis options file
|
| + String get analysisOptionsFile =>
|
| + contextBuilderOptions.defaultAnalysisOptionsFilePath;
|
| +
|
| + /// A table mapping the names of defined variables to their values.
|
| + Map<String, String> get definedVariables =>
|
| + contextBuilderOptions.declaredVariables;
|
| +
|
| + /// Whether to strictly follow the specification when generating warnings on
|
| + /// "call" methods (fixes dartbug.com/21938).
|
| + bool get enableStrictCallChecks =>
|
| + contextBuilderOptions.defaultOptions.enableStrictCallChecks;
|
| +
|
| + /// Whether to relax restrictions on mixins (DEP 34).
|
| + bool get enableSuperMixins =>
|
| + contextBuilderOptions.defaultOptions.enableSuperMixins;
|
| +
|
| + /// The path to the package root
|
| + String get packageRootPath =>
|
| + contextBuilderOptions.defaultPackagesDirectoryPath;
|
| +
|
| + /// The path to a `.packages` configuration file
|
| + String get packageConfigPath => contextBuilderOptions.defaultPackageFilePath;
|
| +
|
| /// Parse [args] into [CommandLineOptions] describing the specified
|
| /// analyzer options. In case of a format error, calls [printAndFail], which
|
| /// by default prints an error message to stderr and exits.
|
| @@ -454,8 +457,6 @@ class CommandLineOptions {
|
| // TODO(scheglov) https://code.google.com/p/dart/issues/detail?id=11061
|
| args =
|
| args.map((String arg) => arg == '-batch' ? '--batch' : arg).toList();
|
| - Map<String, String> definedVariables = <String, String>{};
|
| - args = extractDefinedVariables(args, definedVariables);
|
| if (args.contains('--$ignoreUnrecognizedFlagsFlag')) {
|
| args = filterUnknownArguments(args, parser);
|
| }
|
| @@ -479,7 +480,7 @@ class CommandLineOptions {
|
| 'option. Got: $args');
|
| return null; // Only reachable in testing.
|
| }
|
| - return new CommandLineOptions._fromArgs(results, definedVariables);
|
| + return new CommandLineOptions._fromArgs(results);
|
| }
|
|
|
| // Help requests.
|
| @@ -515,7 +516,7 @@ class CommandLineOptions {
|
| return null; // Only reachable in testing.
|
| }
|
| }
|
| - return new CommandLineOptions._fromArgs(results, definedVariables);
|
| + return new CommandLineOptions._fromArgs(results);
|
| } on FormatException catch (e) {
|
| errorSink.writeln(e.message);
|
| _showUsage(parser);
|
|
|