| Index: pkg/analyzer/lib/options.dart
|
| diff --git a/pkg/analyzer/lib/options.dart b/pkg/analyzer/lib/options.dart
|
| index 4833c3c76655ea7f7cf100b004d938281c635722..7dd0c178716de174d84c7d00a8b783038941920a 100644
|
| --- a/pkg/analyzer/lib/options.dart
|
| +++ b/pkg/analyzer/lib/options.dart
|
| @@ -74,25 +74,27 @@ class CommandLineOptions {
|
| /**
|
| * Initialize options from the given parsed [args].
|
| */
|
| - CommandLineOptions._fromArgs(ArgResults args, Map<String, String> definedVariables)
|
| - : dartSdkPath = args['dart-sdk'],
|
| - this.definedVariables = definedVariables,
|
| - disableHints = args['no-hints'],
|
| - displayVersion = args['version'],
|
| - enableAsync = args['enable-async'],
|
| - enableEnum = args['enable-enum'],
|
| - enableTypeChecks = args['enable_type_checks'],
|
| - ignoreUnrecognizedFlags = args['ignore-unrecognized-flags'],
|
| - log = args['log'],
|
| - machineFormat = args['machine'] || args['format'] == 'machine',
|
| - packageRootPath = args['package-root'],
|
| - perf = args['perf'],
|
| - shouldBatch = args['batch'],
|
| - showPackageWarnings = args['show-package-warnings'] || args['package-warnings'],
|
| - showSdkWarnings = args['show-sdk-warnings'] || args['warnings'],
|
| - sourceFiles = args.rest,
|
| - warmPerf = args['warm-perf'],
|
| - warningsAreFatal = args['fatal-warnings'];
|
| + CommandLineOptions._fromArgs(ArgResults args, Map<String,
|
| + String> definedVariables)
|
| + : dartSdkPath = args['dart-sdk'],
|
| + this.definedVariables = definedVariables,
|
| + disableHints = args['no-hints'],
|
| + displayVersion = args['version'],
|
| + enableAsync = args['enable-async'],
|
| + enableEnum = args['enable-enum'],
|
| + enableTypeChecks = args['enable_type_checks'],
|
| + ignoreUnrecognizedFlags = args['ignore-unrecognized-flags'],
|
| + log = args['log'],
|
| + machineFormat = args['machine'] || args['format'] == 'machine',
|
| + packageRootPath = args['package-root'],
|
| + perf = args['perf'],
|
| + shouldBatch = args['batch'],
|
| + showPackageWarnings = args['show-package-warnings'] ||
|
| + args['package-warnings'],
|
| + showSdkWarnings = args['show-sdk-warnings'] || args['warnings'],
|
| + sourceFiles = args.rest,
|
| + warmPerf = args['warm-perf'],
|
| + warningsAreFatal = args['fatal-warnings'];
|
|
|
| /**
|
| * Parse [args] into [CommandLineOptions] describing the specified
|
| @@ -118,64 +120,131 @@ class CommandLineOptions {
|
| return options;
|
| }
|
|
|
| + static String _getVersion() {
|
| + try {
|
| + // This is relative to bin/snapshot, so ../..
|
| + String versionPath =
|
| + Platform.script.resolve('../../version').toFilePath();
|
| + File versionFile = new File(versionPath);
|
| + return versionFile.readAsStringSync().trim();
|
| + } catch (_) {
|
| + // This happens when the script is not running in the context of an SDK.
|
| + return "<unknown>";
|
| + }
|
| + }
|
| +
|
| static CommandLineOptions _parse(List<String> args) {
|
| args = args.expand((String arg) => arg.split('=')).toList();
|
| var parser = new _CommandLineParser()
|
| - ..addFlag('batch', abbr: 'b', help: 'Run in batch mode',
|
| - defaultsTo: false, negatable: false)
|
| - ..addOption('dart-sdk', help: 'The path to the Dart SDK')
|
| - ..addOption('package-root', abbr: 'p',
|
| - help: 'The path to the package root. The flag package-root is deprecated. Remove to use package information computed by pub.')
|
| - ..addOption('format',
|
| - help: 'Specifies the format in which errors are displayed')
|
| - ..addFlag('machine',
|
| - help: 'Print errors in a format suitable for parsing (deprecated)',
|
| - defaultsTo: false, negatable: false)
|
| - ..addFlag('version', help: 'Print the analyzer version',
|
| - defaultsTo: false, negatable: false)
|
| - ..addFlag('no-hints', help: 'Do not show hint results',
|
| - defaultsTo: false, negatable: false)
|
| - ..addFlag('ignore-unrecognized-flags',
|
| - help: 'Ignore unrecognized command line flags',
|
| - defaultsTo: false, negatable: false)
|
| - ..addFlag('fatal-warnings', help: 'Treat non-type warnings as fatal',
|
| - defaultsTo: false, negatable: false)
|
| - ..addFlag('package-warnings',
|
| - help: 'Show warnings from package: imports',
|
| - defaultsTo: false, negatable: false)
|
| - ..addFlag('show-package-warnings',
|
| - help: 'Show warnings from package: imports (deprecated)',
|
| - defaultsTo: false, negatable: false)
|
| - ..addFlag('perf',
|
| - help: 'Show performance statistics',
|
| - defaultsTo: false, negatable: false)
|
| - ..addFlag('warnings', help: 'Show warnings from SDK imports',
|
| - defaultsTo: false, negatable: false)
|
| - ..addFlag('show-sdk-warnings', help: 'Show warnings from SDK imports (deprecated)',
|
| - defaultsTo: false, negatable: false)
|
| - ..addFlag('help', abbr: 'h', help: 'Display this help message',
|
| - defaultsTo: false, negatable: false)
|
| - //
|
| - // Hidden flags.
|
| - //
|
| - ..addFlag('enable-async',
|
| - help: 'Enable support for the proposed async feature',
|
| - defaultsTo: false, negatable: false, hide: true)
|
| - ..addFlag('enable-enum',
|
| - help: 'Enable support for the proposed enum feature',
|
| - defaultsTo: false, negatable: false, hide: true)
|
| - ..addFlag('log', help: 'Log additional messages and exceptions',
|
| - defaultsTo: false, negatable: false, hide: true)
|
| - ..addFlag('warm-perf',
|
| - help: 'Show both cold and warm performance statistics',
|
| - defaultsTo: false, negatable: false, hide: true)
|
| - ..addFlag('enable_type_checks',
|
| - help: 'Check types in constant evaluation',
|
| - defaultsTo: false, negatable: false, hide: true);
|
| + ..addFlag(
|
| + 'batch',
|
| + abbr: 'b',
|
| + help: 'Run in batch mode',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + ..addOption('dart-sdk', help: 'The path to the Dart SDK')
|
| + ..addOption(
|
| + 'package-root',
|
| + abbr: 'p',
|
| + help:
|
| + 'The path to the package root. The flag package-root is deprecated. Remove to use package information computed by pub.')
|
| + ..addOption(
|
| + 'format',
|
| + help: 'Specifies the format in which errors are displayed')
|
| + ..addFlag(
|
| + 'machine',
|
| + help: 'Print errors in a format suitable for parsing (deprecated)',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + ..addFlag(
|
| + 'version',
|
| + help: 'Print the analyzer version',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + ..addFlag(
|
| + 'no-hints',
|
| + help: 'Do not show hint results',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + ..addFlag(
|
| + 'ignore-unrecognized-flags',
|
| + help: 'Ignore unrecognized command line flags',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + ..addFlag(
|
| + 'fatal-warnings',
|
| + help: 'Treat non-type warnings as fatal',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + ..addFlag(
|
| + 'package-warnings',
|
| + help: 'Show warnings from package: imports',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + ..addFlag(
|
| + 'show-package-warnings',
|
| + help: 'Show warnings from package: imports (deprecated)',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + ..addFlag(
|
| + 'perf',
|
| + help: 'Show performance statistics',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + ..addFlag(
|
| + 'warnings',
|
| + help: 'Show warnings from SDK imports',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + ..addFlag(
|
| + 'show-sdk-warnings',
|
| + help: 'Show warnings from SDK imports (deprecated)',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + ..addFlag(
|
| + 'help',
|
| + abbr: 'h',
|
| + help: 'Display this help message',
|
| + defaultsTo: false,
|
| + negatable: false)
|
| + //
|
| + // Hidden flags.
|
| + //
|
| + ..addFlag(
|
| + 'enable-async',
|
| + help: 'Enable support for the proposed async feature',
|
| + defaultsTo: false,
|
| + negatable: false,
|
| + hide: true)
|
| + ..addFlag(
|
| + 'enable-enum',
|
| + help: 'Enable support for the proposed enum feature',
|
| + defaultsTo: false,
|
| + negatable: false,
|
| + hide: true)
|
| + ..addFlag(
|
| + 'log',
|
| + help: 'Log additional messages and exceptions',
|
| + defaultsTo: false,
|
| + negatable: false,
|
| + hide: true)
|
| + ..addFlag(
|
| + 'warm-perf',
|
| + help: 'Show both cold and warm performance statistics',
|
| + defaultsTo: false,
|
| + negatable: false,
|
| + hide: true)
|
| + ..addFlag(
|
| + 'enable_type_checks',
|
| + help: 'Check types in constant evaluation',
|
| + defaultsTo: false,
|
| + negatable: false,
|
| + hide: true);
|
|
|
| try {
|
| // TODO(scheglov) https://code.google.com/p/dart/issues/detail?id=11061
|
| - args = args.map((String arg) => arg == '-batch' ? '--batch' : arg).toList();
|
| + args =
|
| + args.map((String arg) => arg == '-batch' ? '--batch' : arg).toList();
|
| Map<String, String> definedVariables = <String, String>{};
|
| var results = parser.parse(args, definedVariables);
|
| // help requests
|
| @@ -214,19 +283,6 @@ class CommandLineOptions {
|
| print('');
|
| print('For more information, see http://www.dartlang.org/tools/analyzer.');
|
| }
|
| -
|
| - static String _getVersion() {
|
| - try {
|
| - // This is relative to bin/snapshot, so ../..
|
| - String versionPath =
|
| - Platform.script.resolve('../../version').toFilePath();
|
| - File versionFile = new File(versionPath);
|
| - return versionFile.readAsStringSync().trim();
|
| - } catch (_) {
|
| - // This happens when the script is not running in the context of an SDK.
|
| - return "<unknown>";
|
| - }
|
| - }
|
| }
|
|
|
| /**
|
| @@ -242,8 +298,8 @@ class _CommandLineParser {
|
|
|
| /** Creates a new command line parser */
|
| _CommandLineParser()
|
| - : _knownFlags = <String>[],
|
| - _parser = new ArgParser(allowTrailingOptions: true);
|
| + : _knownFlags = <String>[],
|
| + _parser = new ArgParser(allowTrailingOptions: true);
|
|
|
|
|
| /**
|
| @@ -254,8 +310,14 @@ class _CommandLineParser {
|
| void addFlag(String name, {String abbr, String help, bool defaultsTo: false,
|
| bool negatable: true, void callback(bool value), bool hide: false}) {
|
| _knownFlags.add(name);
|
| - _parser.addFlag(name, abbr: abbr, help: help, defaultsTo: defaultsTo,
|
| - negatable: negatable, callback: callback, hide: hide);
|
| + _parser.addFlag(
|
| + name,
|
| + abbr: abbr,
|
| + help: help,
|
| + defaultsTo: defaultsTo,
|
| + negatable: negatable,
|
| + callback: callback,
|
| + hide: hide);
|
| }
|
|
|
| /**
|
| @@ -264,11 +326,17 @@ class _CommandLineParser {
|
| * See [ArgParser.addOption()].
|
| */
|
| void addOption(String name, {String abbr, String help, List<String> allowed,
|
| - Map<String, String> allowedHelp, String defaultsTo,
|
| - void callback(value), bool allowMultiple: false}) {
|
| + Map<String, String> allowedHelp, String defaultsTo, void callback(value),
|
| + bool allowMultiple: false}) {
|
| _knownFlags.add(name);
|
| - _parser.addOption(name, abbr: abbr, help: help, allowed: allowed,
|
| - allowedHelp: allowedHelp, defaultsTo: defaultsTo, callback: callback,
|
| + _parser.addOption(
|
| + name,
|
| + abbr: abbr,
|
| + help: help,
|
| + allowed: allowed,
|
| + allowedHelp: allowedHelp,
|
| + defaultsTo: defaultsTo,
|
| + callback: callback,
|
| allowMultiple: allowMultiple);
|
| }
|
|
|
| @@ -287,9 +355,11 @@ class _CommandLineParser {
|
| *
|
| * See [ArgParser].
|
| */
|
| - ArgResults parse(List<String> args, Map<String, String> definedVariables) => _parser.parse(_filterUnknowns(parseDefinedVariables(args, definedVariables)));
|
| + ArgResults parse(List<String> args, Map<String, String> definedVariables) =>
|
| + _parser.parse(_filterUnknowns(parseDefinedVariables(args, definedVariables)));
|
|
|
| - List<String> parseDefinedVariables(List<String> args, Map<String, String> definedVariables) {
|
| + List<String> parseDefinedVariables(List<String> args, Map<String,
|
| + String> definedVariables) {
|
| int count = args.length;
|
| List<String> remainingArgs = <String>[];
|
| for (int i = 0; i < count; i++) {
|
| @@ -313,14 +383,14 @@ class _CommandLineParser {
|
| if (!args.contains('--ignore-unrecognized-flags')) {
|
| return args;
|
| }
|
| -
|
| - //TODO(pquitslund): replace w/ the following once library skew issues are sorted out
|
| + //TODO(pquitslund): replace w/ the following once library skew issues are
|
| + // sorted out
|
| //return args.where((arg) => !arg.startsWith('--') ||
|
| // _knownFlags.contains(arg.substring(2)));
|
|
|
| // Filter all unrecognized flags and options.
|
| var filtered = <String>[];
|
| - for (var i=0; i < args.length; ++i) {
|
| + for (var i = 0; i < args.length; ++i) {
|
| var arg = args[i];
|
| if (arg.startsWith('--') && arg.length > 2) {
|
| if (!_knownFlags.contains(arg.substring(2))) {
|
|
|