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

Side by Side Diff: pkg/analyzer/lib/src/command_line/arguments.dart

Issue 2976963002: Add --no-declaration-casts option to analyzer. (Closed)
Patch Set: Fix comment Created 3 years, 5 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
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/context/context.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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.src.command_line.arguments; 5 library analyzer.src.command_line.arguments;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/file_system/file_system.dart'; 9 import 'package:analyzer/file_system/file_system.dart';
10 import 'package:analyzer/src/context/builder.dart'; 10 import 'package:analyzer/src/context/builder.dart';
11 import 'package:analyzer/src/dart/sdk/sdk.dart'; 11 import 'package:analyzer/src/dart/sdk/sdk.dart';
12 import 'package:analyzer/src/generated/engine.dart'; 12 import 'package:analyzer/src/generated/engine.dart';
13 import 'package:analyzer/src/generated/sdk.dart'; 13 import 'package:analyzer/src/generated/sdk.dart';
14 import 'package:args/args.dart'; 14 import 'package:args/args.dart';
15 import 'package:path/path.dart'; 15 import 'package:path/path.dart';
16 16
17 const String analysisOptionsFileOption = 'options'; 17 const String analysisOptionsFileOption = 'options';
18 const String bazelAnalysisOptionsPath = 18 const String bazelAnalysisOptionsPath =
19 'package:dart.analysis_options/default.yaml'; 19 'package:dart.analysis_options/default.yaml';
20 const String declarationCastsFlag = 'declaration-casts';
20 const String defineVariableOption = 'D'; 21 const String defineVariableOption = 'D';
21 const String enableInitializingFormalAccessFlag = 'initializing-formal-access'; 22 const String enableInitializingFormalAccessFlag = 'initializing-formal-access';
22 const String enableStrictCallChecksFlag = 'enable-strict-call-checks'; 23 const String enableStrictCallChecksFlag = 'enable-strict-call-checks';
23 const String enableSuperMixinFlag = 'supermixin'; 24 const String enableSuperMixinFlag = 'supermixin';
24 const String flutterAnalysisOptionsPath = 25 const String flutterAnalysisOptionsPath =
25 'package:flutter/analysis_options_user.yaml'; 26 'package:flutter/analysis_options_user.yaml';
26 const String ignoreUnrecognizedFlagsFlag = 'ignore-unrecognized-flags'; 27 const String ignoreUnrecognizedFlagsFlag = 'ignore-unrecognized-flags';
28 const String implicitCastsFlag = 'implicit-casts';
27 const String lintsFlag = 'lints'; 29 const String lintsFlag = 'lints';
28 const String noImplicitCastsFlag = 'no-implicit-casts';
29 const String noImplicitDynamicFlag = 'no-implicit-dynamic'; 30 const String noImplicitDynamicFlag = 'no-implicit-dynamic';
30 const String packageDefaultAnalysisOptions = 'package-default-analysis-options'; 31 const String packageDefaultAnalysisOptions = 'package-default-analysis-options';
31 const String packageRootOption = 'package-root'; 32 const String packageRootOption = 'package-root';
32 const String packagesOption = 'packages'; 33 const String packagesOption = 'packages';
33 const String sdkPathOption = 'dart-sdk'; 34 const String sdkPathOption = 'dart-sdk';
34 35
35 const String sdkSummaryPathOption = 'dart-sdk-summary'; 36 const String sdkSummaryPathOption = 'dart-sdk-summary';
36 const String strongModeFlag = 'strong'; 37 const String strongModeFlag = 'strong';
37 38
38 /** 39 /**
39 * Update [options] with the value of each analysis option command line flag. 40 * Update [options] with the value of each analysis option command line flag.
40 */ 41 */
41 void applyAnalysisOptionFlags(AnalysisOptionsImpl options, ArgResults args, 42 void applyAnalysisOptionFlags(AnalysisOptionsImpl options, ArgResults args,
42 {void verbosePrint(String text)}) { 43 {void verbosePrint(String text)}) {
43 void verbose(String text) { 44 void verbose(String text) {
44 if (verbosePrint != null) { 45 if (verbosePrint != null) {
45 verbosePrint('Analysis options: $text'); 46 verbosePrint('Analysis options: $text');
46 } 47 }
47 } 48 }
48 49
49 if (args.wasParsed(enableStrictCallChecksFlag)) { 50 if (args.wasParsed(enableStrictCallChecksFlag)) {
50 options.enableStrictCallChecks = args[enableStrictCallChecksFlag]; 51 options.enableStrictCallChecks = args[enableStrictCallChecksFlag];
51 verbose('$enableStrictCallChecksFlag = ${options.enableStrictCallChecks}'); 52 verbose('$enableStrictCallChecksFlag = ${options.enableStrictCallChecks}');
52 } 53 }
53 if (args.wasParsed(enableSuperMixinFlag)) { 54 if (args.wasParsed(enableSuperMixinFlag)) {
54 options.enableSuperMixins = args[enableSuperMixinFlag]; 55 options.enableSuperMixins = args[enableSuperMixinFlag];
55 verbose('$enableSuperMixinFlag = ${options.enableSuperMixins}'); 56 verbose('$enableSuperMixinFlag = ${options.enableSuperMixins}');
56 } 57 }
57 if (args.wasParsed(noImplicitCastsFlag)) { 58 if (args.wasParsed(implicitCastsFlag)) {
58 options.implicitCasts = !args[noImplicitCastsFlag]; 59 options.implicitCasts = args[implicitCastsFlag];
59 verbose('$noImplicitCastsFlag = ${options.implicitCasts}'); 60 verbose('$implicitCastsFlag = ${options.implicitCasts}');
61 }
62 if (args.wasParsed(declarationCastsFlag)) {
63 options.declarationCasts = args[declarationCastsFlag];
64 verbose('$declarationCastsFlag = ${options.declarationCasts}');
65 } else if (args.wasParsed(implicitCastsFlag)) {
66 options.declarationCasts = args[implicitCastsFlag];
67 verbose('$declarationCastsFlag = ${options.declarationCasts}');
60 } 68 }
61 if (args.wasParsed(noImplicitDynamicFlag)) { 69 if (args.wasParsed(noImplicitDynamicFlag)) {
62 options.implicitDynamic = !args[noImplicitDynamicFlag]; 70 options.implicitDynamic = !args[noImplicitDynamicFlag];
63 verbose('$noImplicitDynamicFlag = ${options.implicitDynamic}'); 71 verbose('$noImplicitDynamicFlag = ${options.implicitDynamic}');
64 } 72 }
65 if (args.wasParsed(strongModeFlag)) { 73 if (args.wasParsed(strongModeFlag)) {
66 options.strongMode = args[strongModeFlag]; 74 options.strongMode = args[strongModeFlag];
67 verbose('$strongModeFlag = ${options.strongMode}'); 75 verbose('$strongModeFlag = ${options.strongMode}');
68 } 76 }
69 try { 77 try {
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 void defineAnalysisArguments(ArgParser parser, {bool hide: true, ddc: false}) { 175 void defineAnalysisArguments(ArgParser parser, {bool hide: true, ddc: false}) {
168 parser.addOption(sdkPathOption, help: 'The path to the Dart SDK.'); 176 parser.addOption(sdkPathOption, help: 'The path to the Dart SDK.');
169 parser.addOption(analysisOptionsFileOption, 177 parser.addOption(analysisOptionsFileOption,
170 help: 'Path to an analysis options file.'); 178 help: 'Path to an analysis options file.');
171 parser.addOption(packageRootOption, 179 parser.addOption(packageRootOption,
172 help: 'The path to a package root directory (deprecated). ' 180 help: 'The path to a package root directory (deprecated). '
173 'This option cannot be used with --packages.'); 181 'This option cannot be used with --packages.');
174 parser.addFlag(strongModeFlag, 182 parser.addFlag(strongModeFlag,
175 help: 'Enable strong static checks (https://goo.gl/DqcBsw).', 183 help: 'Enable strong static checks (https://goo.gl/DqcBsw).',
176 defaultsTo: ddc); 184 defaultsTo: ddc);
177 parser.addFlag(noImplicitCastsFlag, 185 parser.addFlag(declarationCastsFlag,
178 negatable: false, 186 negatable: true,
187 help:
188 'Disable declaration casts in strong mode (https://goo.gl/cTLz40).');
189 parser.addFlag(implicitCastsFlag,
190 negatable: true,
179 help: 'Disable implicit casts in strong mode (https://goo.gl/cTLz40).'); 191 help: 'Disable implicit casts in strong mode (https://goo.gl/cTLz40).');
180 parser.addFlag(noImplicitDynamicFlag, 192 parser.addFlag(noImplicitDynamicFlag,
181 negatable: false, 193 negatable: false,
182 help: 'Disable implicit dynamic (https://goo.gl/m0UgXD).'); 194 help: 'Disable implicit dynamic (https://goo.gl/m0UgXD).');
183 195
184 // 196 //
185 // Hidden flags and options. 197 // Hidden flags and options.
186 // 198 //
187 parser.addOption(defineVariableOption, 199 parser.addOption(defineVariableOption,
188 abbr: 'D', 200 abbr: 'D',
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 .replaceAll('\r\n', '\n') 361 .replaceAll('\r\n', '\n')
350 .replaceAll('\r', '\n') 362 .replaceAll('\r', '\n')
351 .split('\n') 363 .split('\n')
352 .where((String line) => line.isNotEmpty)); 364 .where((String line) => line.isNotEmpty));
353 } on FileSystemException catch (e) { 365 } on FileSystemException catch (e) {
354 throw new Exception('Failed to read file specified by $lastArg : $e'); 366 throw new Exception('Failed to read file specified by $lastArg : $e');
355 } 367 }
356 } 368 }
357 return args; 369 return args;
358 } 370 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/context/context.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698