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

Side by Side Diff: pkg/compiler/lib/src/diagnostics/messages.dart

Issue 1559233002: WIP: Compute constant expressions in resolution. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 11 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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 5
6 /** 6 /**
7 * The messages in this file should meet the following guide lines: 7 * The messages in this file should meet the following guide lines:
8 * 8 *
9 * 1. The message should be a complete sentence starting with an uppercase 9 * 1. The message should be a complete sentence starting with an uppercase
10 * letter, and ending with a period. 10 * letter, and ending with a period.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 library dart2js.messages; 64 library dart2js.messages;
65 65
66 import '../tokens/token.dart' show 66 import '../tokens/token.dart' show
67 ErrorToken, 67 ErrorToken,
68 Token; 68 Token;
69 69
70 import 'invariant.dart' show 70 import 'invariant.dart' show
71 invariant; 71 invariant;
72 import 'spannable.dart' show 72 import 'spannable.dart' show
73 CURRENT_ELEMENT_SPANNABLE; 73 CURRENT_ELEMENT_SPANNABLE;
74 import '../constants/expressions.dart' show
75 ConstantExpression;
74 76
75 const DONT_KNOW_HOW_TO_FIX = "Computer says no!"; 77 const DONT_KNOW_HOW_TO_FIX = "Computer says no!";
76 78
77 /// Keys for the [MessageTemplate]s. 79 /// Keys for the [MessageTemplate]s.
78 enum MessageKind { 80 enum MessageKind {
79 ABSTRACT_CLASS_INSTANTIATION, 81 ABSTRACT_CLASS_INSTANTIATION,
80 ABSTRACT_GETTER, 82 ABSTRACT_GETTER,
81 ABSTRACT_METHOD, 83 ABSTRACT_METHOD,
82 ABSTRACT_SETTER, 84 ABSTRACT_SETTER,
83 ACCESSED_IN_CLOSURE, 85 ACCESSED_IN_CLOSURE,
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 INHERITED_IMPLICIT_GETTER, 240 INHERITED_IMPLICIT_GETTER,
239 INHERITED_METHOD, 241 INHERITED_METHOD,
240 INIT_STATIC_FIELD, 242 INIT_STATIC_FIELD,
241 INITIALIZING_FORMAL_NOT_ALLOWED, 243 INITIALIZING_FORMAL_NOT_ALLOWED,
242 INSTANCE_STATIC_SAME_NAME, 244 INSTANCE_STATIC_SAME_NAME,
243 INSTANCE_STATIC_SAME_NAME_CONT, 245 INSTANCE_STATIC_SAME_NAME_CONT,
244 INTERNAL_LIBRARY, 246 INTERNAL_LIBRARY,
245 INTERNAL_LIBRARY_FROM, 247 INTERNAL_LIBRARY_FROM,
246 INVALID_ARGUMENT_AFTER_NAMED, 248 INVALID_ARGUMENT_AFTER_NAMED,
247 INVALID_AWAIT_FOR, 249 INVALID_AWAIT_FOR,
250 INVALID_BOOL_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
248 INVALID_BREAK, 251 INVALID_BREAK,
249 INVALID_CASE_DEFAULT, 252 INVALID_CASE_DEFAULT,
253 INVALID_CONSTANT_ADD_TYPES,
254 INVALID_CONSTANT_BINARY_INT_TYPE,
255 INVALID_CONSTANT_BINARY_NUM_TYPE,
256 INVALID_CONSTANT_BINARY_PRIMITIVE_TYPE,
257 INVALID_CONSTANT_COMPLEMENT_TYPE,
258 INVALID_CONSTANT_CONDITIONAL_TYPE,
259 INVALID_CONSTANT_IF_NULL,
260 INVALID_CONSTANT_INDEX,
261 INVALID_CONSTANT_INTERPOLATION_TYPE,
262 INVALID_CONSTANT_NEGATE_TYPE,
263 INVALID_CONSTANT_NOT_TYPE,
264 INVALID_CONSTANT_NUM_ADD_TYPE,
265 INVALID_CONSTANT_STRING_ADD_TYPE,
250 INVALID_CONSTRUCTOR_ARGUMENTS, 266 INVALID_CONSTRUCTOR_ARGUMENTS,
251 INVALID_CONSTRUCTOR_NAME, 267 INVALID_CONSTRUCTOR_NAME,
252 INVALID_CONTINUE, 268 INVALID_CONTINUE,
253 INVALID_FOR_IN, 269 INVALID_FOR_IN,
270 INVALID_FROM_ENVIRONMENT_NAME_TYPE,
254 INVALID_INITIALIZER, 271 INVALID_INITIALIZER,
272 INVALID_INT_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
273 INVALID_LOGICAL_AND_OPERAND_TYPE,
274 INVALID_LOGICAL_OR_OPERAND_TYPE,
255 INVALID_OVERRIDDEN_FIELD, 275 INVALID_OVERRIDDEN_FIELD,
256 INVALID_OVERRIDDEN_GETTER, 276 INVALID_OVERRIDDEN_GETTER,
257 INVALID_OVERRIDDEN_METHOD, 277 INVALID_OVERRIDDEN_METHOD,
258 INVALID_OVERRIDDEN_SETTER, 278 INVALID_OVERRIDDEN_SETTER,
259 INVALID_OVERRIDE_FIELD, 279 INVALID_OVERRIDE_FIELD,
260 INVALID_OVERRIDE_FIELD_WITH_GETTER, 280 INVALID_OVERRIDE_FIELD_WITH_GETTER,
261 INVALID_OVERRIDE_FIELD_WITH_SETTER, 281 INVALID_OVERRIDE_FIELD_WITH_SETTER,
262 INVALID_OVERRIDE_GETTER, 282 INVALID_OVERRIDE_GETTER,
263 INVALID_OVERRIDE_GETTER_WITH_FIELD, 283 INVALID_OVERRIDE_GETTER_WITH_FIELD,
264 INVALID_OVERRIDE_METHOD, 284 INVALID_OVERRIDE_METHOD,
265 INVALID_OVERRIDE_SETTER, 285 INVALID_OVERRIDE_SETTER,
266 INVALID_OVERRIDE_SETTER_WITH_FIELD, 286 INVALID_OVERRIDE_SETTER_WITH_FIELD,
267 INVALID_PACKAGE_CONFIG, 287 INVALID_PACKAGE_CONFIG,
268 INVALID_PACKAGE_URI, 288 INVALID_PACKAGE_URI,
269 INVALID_PARAMETER, 289 INVALID_PARAMETER,
270 INVALID_RECEIVER_IN_INITIALIZER, 290 INVALID_RECEIVER_IN_INITIALIZER,
271 INVALID_SOURCE_FILE_LOCATION, 291 INVALID_SOURCE_FILE_LOCATION,
292 INVALID_STRING_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
272 INVALID_SYMBOL, 293 INVALID_SYMBOL,
273 INVALID_SYNC_MODIFIER, 294 INVALID_SYNC_MODIFIER,
274 INVALID_TYPE_VARIABLE_BOUND, 295 INVALID_TYPE_VARIABLE_BOUND,
275 INVALID_UNNAMED_CONSTRUCTOR_NAME, 296 INVALID_UNNAMED_CONSTRUCTOR_NAME,
276 INVALID_URI, 297 INVALID_URI,
277 INVALID_USE_OF_SUPER, 298 INVALID_USE_OF_SUPER,
278 LIBRARY_NAME_MISMATCH, 299 LIBRARY_NAME_MISMATCH,
279 LIBRARY_NOT_FOUND, 300 LIBRARY_NOT_FOUND,
280 LIBRARY_NOT_SUPPORTED, 301 LIBRARY_NOT_SUPPORTED,
281 LIBRARY_TAG_MUST_BE_FIRST, 302 LIBRARY_TAG_MUST_BE_FIRST,
(...skipping 2887 matching lines...) Expand 10 before | Expand all | Expand 10 after
3169 library test.main; 3190 library test.main;
3170 part 'part.dart'; 3191 part 'part.dart';
3171 export 'dart:core'; 3192 export 'dart:core';
3172 main() {} 3193 main() {}
3173 """, 3194 """,
3174 'part.dart': """ 3195 'part.dart': """
3175 part of test.main; 3196 part of test.main;
3176 """, 3197 """,
3177 }]), 3198 }]),
3178 3199
3200 MessageKind.INVALID_CONSTANT_CONDITIONAL_TYPE:
3201 const MessageTemplate(MessageKind.INVALID_CONSTANT_CONDITIONAL_TYPE,
3202 "`#{constant}` of type '#{type}' is not a valid constant condition. "
3203 "Must be a value of type 'bool'."),
3204
3205 MessageKind.INVALID_CONSTANT_INTERPOLATION_TYPE:
3206 const MessageTemplate(MessageKind.INVALID_CONSTANT_INTERPOLATION_TYPE,
3207 "`#{constant}` of type '#{type}' is not valid in constant string "
3208 "interpolation. Must be a value of type 'bool', 'int', 'double', "
3209 "or 'String'."),
3210
3211 MessageKind.INVALID_CONSTANT_BINARY_PRIMITIVE_TYPE:
3212 const MessageTemplate(MessageKind.INVALID_CONSTANT_BINARY_PRIMITIVE_TYPE ,
3213 "`#{constant}` of type '#{type}' is not a valid operand of a "
3214 "constant binary #{operator} expression. Must be a value of type "
3215 "'bool', 'int', 'double', 'String', or 'Null'."),
3216
3217 MessageKind.INVALID_CONSTANT_STRING_ADD_TYPE:
3218 const MessageTemplate(MessageKind.INVALID_CONSTANT_STRING_ADD_TYPE,
3219 "`#{constant}` of type '#{type}' is not a valid operand of a "
3220 "constant binary + expression on 'String'. Must be a value of type "
3221 "'String'."),
3222
3223 MessageKind.INVALID_CONSTANT_NUM_ADD_TYPE:
3224 const MessageTemplate(MessageKind.INVALID_CONSTANT_NUM_ADD_TYPE,
3225 "`#{constant}` of type '#{type}' is not a valid operand of a "
3226 "constant binary + expression on 'num'. Must be a value of type "
3227 "'int' or 'double'."),
3228
3229 MessageKind.INVALID_CONSTANT_ADD_TYPES:
3230 const MessageTemplate(MessageKind.INVALID_CONSTANT_ADD_TYPES,
3231 "`#{leftConstant}` of type '#{leftType}' and "
3232 "`#{rightConstant}` of type '#{rightType}' are not valid operands "
3233 "of a constant binary + expression. Must both be either of "
3234 "type 'String', or of types 'int' or 'double'."),
3235
3236 MessageKind.INVALID_CONSTANT_BINARY_NUM_TYPE:
3237 const MessageTemplate(MessageKind.INVALID_CONSTANT_BINARY_NUM_TYPE,
3238 "`#{constant}` of type '#{type}' is not a valid operand of a "
3239 "constant binary #{operator} expression. Must be a value of type "
3240 "'int' or 'double'."),
3241
3242 MessageKind.INVALID_CONSTANT_BINARY_INT_TYPE:
3243 const MessageTemplate(MessageKind.INVALID_CONSTANT_BINARY_INT_TYPE,
3244 "`#{constant}` of type '#{type}' is not a valid operand of a "
3245 "constant binary #{operator} expression. Must be a value of type "
3246 "'int'."),
3247
3248 MessageKind.INVALID_CONSTANT_NOT_TYPE:
3249 const MessageTemplate(MessageKind.INVALID_CONSTANT_NOT_TYPE,
3250 "`#{constant}` of type '#{type}' is not a valid operand of a "
3251 "constant unary #{operator} expression. Must be a value of type "
3252 "'bool'."),
3253
3254 MessageKind.INVALID_CONSTANT_NEGATE_TYPE:
3255 const MessageTemplate(MessageKind.INVALID_CONSTANT_NEGATE_TYPE,
3256 "`#{constant}` of type '#{type}' is not a valid operand of a "
3257 "constant unary #{operator} expression. Must be a value of type "
3258 "'int' or 'double'."),
3259
3260 MessageKind.INVALID_CONSTANT_COMPLEMENT_TYPE:
3261 const MessageTemplate(MessageKind.INVALID_CONSTANT_COMPLEMENT_TYPE,
3262 "`#{constant}` of type '#{type}' is not a valid operand of a "
3263 "constant unary #{operator} expression. Must be a value of type "
3264 "'int'."),
3265
3266 MessageKind.INVALID_CONSTANT_INDEX:
3267 const MessageTemplate(MessageKind.INVALID_CONSTANT_INDEX,
3268 "Index expressions are not allowed in constant expressions."),
3269
3270 MessageKind.INVALID_CONSTANT_IF_NULL:
3271 const MessageTemplate(MessageKind.INVALID_CONSTANT_IF_NULL,
3272 "If null expressions are not allowed in constant expressions."),
3273
3274 MessageKind.INVALID_FROM_ENVIRONMENT_NAME_TYPE:
3275 const MessageTemplate(MessageKind.INVALID_FROM_ENVIRONMENT_NAME_TYPE,
3276 "`#{constant}` of type '#{type}' is not a valid environment name "
3277 "constant. Must be a value of type 'String'."),
3278
3279 MessageKind.INVALID_BOOL_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE:
3280 const MessageTemplate(
3281 MessageKind.INVALID_BOOL_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
3282 "`#{constant}` of type '#{type}' is not a valid "
3283 "`bool.fromEnvironment` default value constant. "
3284 "Must be a value of type 'bool' or `null`."),
3285
3286 MessageKind.INVALID_INT_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE:
3287 const MessageTemplate(
3288 MessageKind.INVALID_INT_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
3289 "`#{constant}` of type '#{type}' is not a valid "
3290 "`int.fromEnvironment` default value constant. "
3291 "Must be a value of type 'int' or `null`."),
3292
3293 MessageKind.INVALID_STRING_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE:
3294 const MessageTemplate(
3295 MessageKind.INVALID_STRING_FROM_ENVIRONMENT_DEFAULT_VALUE_TYPE,
3296 "`#{constant}` of type '#{type}' is not a valid "
3297 "`String.fromEnvironment` default value constant. "
3298 "Must be a value of type 'String' or `null`."),
3299
3300 MessageKind.INVALID_LOGICAL_AND_OPERAND_TYPE:
3301 const MessageTemplate(MessageKind.INVALID_LOGICAL_AND_OPERAND_TYPE,
3302 "`#{constant}` of type '#{type}' is not a valid logical and operand. "
3303 "Must be a value of type 'bool'."),
3304
3305 MessageKind.INVALID_LOGICAL_OR_OPERAND_TYPE:
3306 const MessageTemplate(MessageKind.INVALID_LOGICAL_OR_OPERAND_TYPE,
3307 "`#{constant}` of type '#{type}' is not a valid logical and operand. "
3308 "Must be a value of type 'bool'."),
3309
3310
3179 ////////////////////////////////////////////////////////////////////////////// 3311 //////////////////////////////////////////////////////////////////////////////
3180 // Patch errors start. 3312 // Patch errors start.
3181 ////////////////////////////////////////////////////////////////////////////// 3313 //////////////////////////////////////////////////////////////////////////////
3182 3314
3183 MessageKind.PATCH_RETURN_TYPE_MISMATCH: 3315 MessageKind.PATCH_RETURN_TYPE_MISMATCH:
3184 const MessageTemplate(MessageKind.PATCH_RETURN_TYPE_MISMATCH, 3316 const MessageTemplate(MessageKind.PATCH_RETURN_TYPE_MISMATCH,
3185 "Patch return type '#{patchReturnType}' does not match " 3317 "Patch return type '#{patchReturnType}' does not match "
3186 "'#{originReturnType}' on origin method '#{methodName}'."), 3318 "'#{originReturnType}' on origin method '#{methodName}'."),
3187 3319
3188 MessageKind.PATCH_REQUIRED_PARAMETER_COUNT_MISMATCH: 3320 MessageKind.PATCH_REQUIRED_PARAMETER_COUNT_MISMATCH:
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
3457 } 3589 }
3458 3590
3459 int get hashCode => throw new UnsupportedError('Message.hashCode'); 3591 int get hashCode => throw new UnsupportedError('Message.hashCode');
3460 3592
3461 static String convertToString(value) { 3593 static String convertToString(value) {
3462 if (value is ErrorToken) { 3594 if (value is ErrorToken) {
3463 // Shouldn't happen. 3595 // Shouldn't happen.
3464 return value.assertionMessage; 3596 return value.assertionMessage;
3465 } else if (value is Token) { 3597 } else if (value is Token) {
3466 value = value.value; 3598 value = value.value;
3599 } else if (value is ConstantExpression) {
3600 value = value.getText();
3467 } 3601 }
3468 return '$value'; 3602 return '$value';
3469 } 3603 }
3470 } 3604 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/dart_backend/backend.dart ('k') | pkg/compiler/lib/src/elements/modelx.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698