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

Side by Side Diff: pkg/front_end/lib/src/fasta/command_line.dart

Issue 2970273004: Deprecate all diagnostics methods that use strings. (Closed)
Patch Set: Merged with 4df146dd9a465d63344330bf3e45524b927c92ec 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
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 fasta.command_line; 5 library fasta.command_line;
6 6
7 import 'errors.dart' show inputError, internalError; 7 import 'deprecated_problems.dart'
8 show deprecated_inputError, deprecated_internalProblem;
8 9
9 argumentError(String usage, String message) { 10 deprecated_argumentError(String usage, String message) {
10 if (usage != null) print(usage); 11 if (usage != null) print(usage);
11 inputError(null, null, message); 12 deprecated_inputError(null, null, message);
12 } 13 }
13 14
14 class ParsedArguments { 15 class ParsedArguments {
15 final Map<String, dynamic> options = <String, dynamic>{}; 16 final Map<String, dynamic> options = <String, dynamic>{};
16 final List<String> arguments = <String>[]; 17 final List<String> arguments = <String>[];
17 18
18 toString() => "ParsedArguments($options, $arguments)"; 19 toString() => "ParsedArguments($options, $arguments)";
19 } 20 }
20 21
21 class CommandLine { 22 class CommandLine {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 nonOptions = arguments.skip(index + 1); 82 nonOptions = arguments.skip(index + 1);
82 iterator = arguments.take(index).iterator; 83 iterator = arguments.take(index).iterator;
83 } 84 }
84 while (iterator.moveNext()) { 85 while (iterator.moveNext()) {
85 String argument = iterator.current; 86 String argument = iterator.current;
86 if (argument.startsWith("-")) { 87 if (argument.startsWith("-")) {
87 var valueSpecification = specification[argument]; 88 var valueSpecification = specification[argument];
88 String value; 89 String value;
89 if (valueSpecification != null) { 90 if (valueSpecification != null) {
90 if (!iterator.moveNext()) { 91 if (!iterator.moveNext()) {
91 return argumentError(usage, "Expected value after '$argument'."); 92 return deprecated_argumentError(
93 usage, "Expected value after '$argument'.");
92 } 94 }
93 value = iterator.current; 95 value = iterator.current;
94 } else { 96 } else {
95 index = argument.indexOf("="); 97 index = argument.indexOf("=");
96 if (index != -1) { 98 if (index != -1) {
97 value = argument.substring(index + 1); 99 value = argument.substring(index + 1);
98 argument = argument.substring(0, index); 100 argument = argument.substring(0, index);
99 valueSpecification = specification[argument]; 101 valueSpecification = specification[argument];
100 } 102 }
101 } 103 }
102 if (valueSpecification == null) { 104 if (valueSpecification == null) {
103 if (value != null) { 105 if (value != null) {
104 return argumentError( 106 return deprecated_argumentError(
105 usage, "Argument '$argument' doesn't take a value: '$value'."); 107 usage, "Argument '$argument' doesn't take a value: '$value'.");
106 } 108 }
107 result.options[argument] = true; 109 result.options[argument] = true;
108 } else { 110 } else {
109 if (valueSpecification is! String && valueSpecification is! Type) { 111 if (valueSpecification is! String && valueSpecification is! Type) {
110 return argumentError( 112 return deprecated_argumentError(
111 usage, 113 usage,
112 "Unrecognized type of value " 114 "Unrecognized type of value "
113 "specification: ${valueSpecification.runtimeType}."); 115 "specification: ${valueSpecification.runtimeType}.");
114 } 116 }
115 switch ("$valueSpecification") { 117 switch ("$valueSpecification") {
116 case ",": 118 case ",":
117 result.options 119 result.options
118 .putIfAbsent(argument, () => <String>[]) 120 .putIfAbsent(argument, () => <String>[])
119 .addAll(value.split(",")); 121 .addAll(value.split(","));
120 break; 122 break;
121 123
122 case "int": 124 case "int":
123 case "bool": 125 case "bool":
124 case "String": 126 case "String":
125 case "Uri": 127 case "Uri":
126 if (result.options.containsKey(argument)) { 128 if (result.options.containsKey(argument)) {
127 return argumentError( 129 return deprecated_argumentError(
128 usage, 130 usage,
129 "Multiple values for '$argument': " 131 "Multiple values for '$argument': "
130 "'${result.options[argument]}' and '$value'."); 132 "'${result.options[argument]}' and '$value'.");
131 } 133 }
132 var parsedValue; 134 var parsedValue;
133 if (valueSpecification == int) { 135 if (valueSpecification == int) {
134 parsedValue = int.parse(value, onError: (_) { 136 parsedValue = int.parse(value, onError: (_) {
135 return argumentError( 137 return deprecated_argumentError(
136 usage, "Value for '$argument', '$value', isn't an int."); 138 usage, "Value for '$argument', '$value', isn't an int.");
137 }); 139 });
138 } else if (valueSpecification == bool) { 140 } else if (valueSpecification == bool) {
139 if (value == "true" || value == "yes") { 141 if (value == "true" || value == "yes") {
140 parsedValue = true; 142 parsedValue = true;
141 } else if (value == "false" || value == "no") { 143 } else if (value == "false" || value == "no") {
142 parsedValue = false; 144 parsedValue = false;
143 } else { 145 } else {
144 return argumentError( 146 return deprecated_argumentError(
145 usage, 147 usage,
146 "Value for '$argument' is '$value', " 148 "Value for '$argument' is '$value', "
147 "but expected one of: 'true', 'false', 'yes', or 'no'."); 149 "but expected one of: 'true', 'false', 'yes', or 'no'.");
148 } 150 }
149 } else if (valueSpecification == Uri) { 151 } else if (valueSpecification == Uri) {
150 parsedValue = Uri.base.resolve(value); 152 parsedValue = Uri.base.resolve(value);
151 } else if (valueSpecification == String) { 153 } else if (valueSpecification == String) {
152 parsedValue = value; 154 parsedValue = value;
153 } else if (valueSpecification is String) { 155 } else if (valueSpecification is String) {
154 return argumentError( 156 return deprecated_argumentError(
155 usage, 157 usage,
156 "Unrecognized value specification: " 158 "Unrecognized value specification: "
157 "'$valueSpecification', try using a type literal instead."); 159 "'$valueSpecification', try using a type literal instead.");
158 } else { 160 } else {
159 // All possible cases should have been handled above. 161 // All possible cases should have been handled above.
160 return internalError("assertion failure"); 162 return deprecated_internalProblem("assertion failure");
161 } 163 }
162 result.options[argument] = parsedValue; 164 result.options[argument] = parsedValue;
163 break; 165 break;
164 166
165 default: 167 default:
166 return argumentError(usage, 168 return deprecated_argumentError(usage,
167 "Unrecognized value specification: '$valueSpecification'."); 169 "Unrecognized value specification: '$valueSpecification'.");
168 } 170 }
169 } 171 }
170 } else if (argument == "/?" || argument == "/h") { 172 } else if (argument == "/?" || argument == "/h") {
171 result.options[argument] = true; 173 result.options[argument] = true;
172 } else { 174 } else {
173 result.arguments.add(argument); 175 result.arguments.add(argument);
174 } 176 }
175 } 177 }
176 result.arguments.addAll(nonOptions); 178 result.arguments.addAll(nonOptions);
177 return result; 179 return result;
178 } 180 }
179 } 181 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/builder/mixin_application_builder.dart ('k') | pkg/front_end/lib/src/fasta/compile_platform.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698