Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Side by Side Diff: pkg/analyzer_cli/lib/src/options.dart

Issue 2796953002: Add --build-summary-only-unlinked flag, which makes the output summary be an unlinked summary inste… (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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.options; 5 library analyzer_cli.src.options;
6 6
7 import 'dart:io'; 7 import 'dart:io';
8 8
9 import 'package:analyzer/file_system/physical_file_system.dart'; 9 import 'package:analyzer/file_system/physical_file_system.dart';
10 import 'package:analyzer/src/command_line/arguments.dart'; 10 import 'package:analyzer/src/command_line/arguments.dart';
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 /// List of summary file paths to use in build mode. 48 /// List of summary file paths to use in build mode.
49 final List<String> buildSummaryInputs; 49 final List<String> buildSummaryInputs;
50 50
51 /// Whether to skip analysis when creating summaries in build mode. 51 /// Whether to skip analysis when creating summaries in build mode.
52 final bool buildSummaryOnly; 52 final bool buildSummaryOnly;
53 53
54 /// Whether to use diet parsing, i.e. skip function bodies. We don't need to 54 /// Whether to use diet parsing, i.e. skip function bodies. We don't need to
55 /// analyze function bodies to use summaries during future compilation steps. 55 /// analyze function bodies to use summaries during future compilation steps.
56 final bool buildSummaryOnlyDiet; 56 final bool buildSummaryOnlyDiet;
57 57
58 /// Whether to only produce unlinked summaries instead of linked summaries.
59 /// Must be used in combination with `buildSummaryOnly`.
60 final bool buildSummaryOnlyUnlinked;
61
58 /// The path to output the summary when creating summaries in build mode. 62 /// The path to output the summary when creating summaries in build mode.
59 final String buildSummaryOutput; 63 final String buildSummaryOutput;
60 64
61 /// The path to output the semantic-only summary when creating summaries in 65 /// The path to output the semantic-only summary when creating summaries in
62 /// build mode. 66 /// build mode.
63 final String buildSummaryOutputSemantic; 67 final String buildSummaryOutputSemantic;
64 68
65 /// Whether to suppress a nonzero exit code in build mode. 69 /// Whether to suppress a nonzero exit code in build mode.
66 final bool buildSuppressExitCode; 70 final bool buildSuppressExitCode;
67 71
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
148 final bool color; 152 final bool color;
149 153
150 /// Initialize options from the given parsed [args]. 154 /// Initialize options from the given parsed [args].
151 CommandLineOptions._fromArgs(ArgResults args) 155 CommandLineOptions._fromArgs(ArgResults args)
152 : buildAnalysisOutput = args['build-analysis-output'], 156 : buildAnalysisOutput = args['build-analysis-output'],
153 buildMode = args['build-mode'], 157 buildMode = args['build-mode'],
154 buildModePersistentWorker = args['persistent_worker'], 158 buildModePersistentWorker = args['persistent_worker'],
155 buildSummaryInputs = args['build-summary-input'] as List<String>, 159 buildSummaryInputs = args['build-summary-input'] as List<String>,
156 buildSummaryOnly = args['build-summary-only'], 160 buildSummaryOnly = args['build-summary-only'],
157 buildSummaryOnlyDiet = args['build-summary-only-diet'], 161 buildSummaryOnlyDiet = args['build-summary-only-diet'],
162 buildSummaryOnlyUnlinked = args['build-summary-only-unlinked'],
158 buildSummaryOutput = args['build-summary-output'], 163 buildSummaryOutput = args['build-summary-output'],
159 buildSummaryOutputSemantic = args['build-summary-output-semantic'], 164 buildSummaryOutputSemantic = args['build-summary-output-semantic'],
160 buildSuppressExitCode = args['build-suppress-exit-code'], 165 buildSuppressExitCode = args['build-suppress-exit-code'],
161 contextBuilderOptions = createContextBuilderOptions(args), 166 contextBuilderOptions = createContextBuilderOptions(args),
162 dartSdkPath = args['dart-sdk'], 167 dartSdkPath = args['dart-sdk'],
163 dartSdkSummaryPath = args['dart-sdk-summary'], 168 dartSdkSummaryPath = args['dart-sdk-summary'],
164 disableCacheFlushing = args['disable-cache-flushing'], 169 disableCacheFlushing = args['disable-cache-flushing'],
165 disableHints = args['no-hints'], 170 disableHints = args['no-hints'],
166 displayVersion = args['version'], 171 displayVersion = args['version'],
167 enableTypeChecks = args['enable_type_checks'], 172 enableTypeChecks = args['enable_type_checks'],
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 printAndFail('The option --persisten_worker can be used only ' 261 printAndFail('The option --persisten_worker can be used only '
257 'together with --build-mode.'); 262 'together with --build-mode.');
258 return null; // Only reachable in testing. 263 return null; // Only reachable in testing.
259 } 264 }
260 if (options.buildSummaryOnlyDiet && !options.buildSummaryOnly) { 265 if (options.buildSummaryOnlyDiet && !options.buildSummaryOnly) {
261 printAndFail('The option --build-summary-only-diet can be used only ' 266 printAndFail('The option --build-summary-only-diet can be used only '
262 'together with --build-summary-only.'); 267 'together with --build-summary-only.');
263 return null; // Only reachable in testing. 268 return null; // Only reachable in testing.
264 } 269 }
265 270
271 if (options.buildSummaryOnlyUnlinked) {
272 if (!options.buildSummaryOnly) {
273 printAndFail(
274 'The option --build-summary-only-unlinked can be used only '
275 'together with --build-summary-only.');
276 return null; // Only reachable in testing.
277 }
278 if (options.buildSummaryInputs.isNotEmpty) {
279 printAndFail('No summaries should be provided in combination with '
280 '--build-summary-only-unlinked, they aren\'t needed.');
281 return null; // Only reachable in testing.
282 }
283 }
284
266 return options; 285 return options;
267 } 286 }
268 287
269 /// The source files to analyze 288 /// The source files to analyze
270 List<String> get sourceFiles => _sourceFiles; 289 List<String> get sourceFiles => _sourceFiles;
271 290
272 /// Replace the sourceFiles parsed from the command line. 291 /// Replace the sourceFiles parsed from the command line.
273 void rewriteSourceFiles(List<String> newSourceFiles) { 292 void rewriteSourceFiles(List<String> newSourceFiles) {
274 _sourceFiles = newSourceFiles; 293 _sourceFiles = newSourceFiles;
275 } 294 }
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 ..addFlag('build-summary-only', 396 ..addFlag('build-summary-only',
378 help: 'Disable analysis (only generate summaries).', 397 help: 'Disable analysis (only generate summaries).',
379 defaultsTo: false, 398 defaultsTo: false,
380 negatable: false, 399 negatable: false,
381 hide: hide) 400 hide: hide)
382 ..addFlag('build-summary-only-diet', 401 ..addFlag('build-summary-only-diet',
383 help: 'Diet parse function bodies.', 402 help: 'Diet parse function bodies.',
384 defaultsTo: false, 403 defaultsTo: false,
385 negatable: false, 404 negatable: false,
386 hide: hide) 405 hide: hide)
406 ..addFlag('build-summary-only-unlinked',
407 help: 'Only output the unlinked summary.',
408 defaultsTo: false,
409 negatable: false,
410 hide: hide)
387 ..addFlag('build-suppress-exit-code', 411 ..addFlag('build-suppress-exit-code',
388 help: 'Exit with code 0 even if errors are found.', 412 help: 'Exit with code 0 even if errors are found.',
389 defaultsTo: false, 413 defaultsTo: false,
390 negatable: false, 414 negatable: false,
391 hide: hide) 415 hide: hide)
392 ..addFlag('color', 416 ..addFlag('color',
393 help: 'Use asni colors when printing messages.', 417 help: 'Use asni colors when printing messages.',
394 defaultsTo: ansi.terminalSupportsAnsi(), 418 defaultsTo: ansi.terminalSupportsAnsi(),
395 hide: hide); 419 hide: hide);
396 420
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 'Usage: $_binaryName [options...] <directory or list of files>'); 549 'Usage: $_binaryName [options...] <directory or list of files>');
526 errorSink.writeln(''); 550 errorSink.writeln('');
527 errorSink.writeln(parser.usage); 551 errorSink.writeln(parser.usage);
528 errorSink.writeln(''); 552 errorSink.writeln('');
529 errorSink.writeln(''' 553 errorSink.writeln('''
530 Run "dartanalyzer -h -v" for verbose help output, including less commonly used o ptions. 554 Run "dartanalyzer -h -v" for verbose help output, including less commonly used o ptions.
531 For more information, see http://www.dartlang.org/tools/analyzer. 555 For more information, see http://www.dartlang.org/tools/analyzer.
532 '''); 556 ''');
533 } 557 }
534 } 558 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698