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

Unified Diff: pkg/front_end/messages.yaml

Issue 2778213002: Use message.yaml in parser. (Closed)
Patch Set: Update subpackage relationships. Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/front_end/lib/src/scanner/errors.dart ('k') | pkg/front_end/test/subpackage_relationships_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/front_end/messages.yaml
diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml
index 19a25da37845936bc4769b0603935d514248a77a..fa905fbc06832485712d82057f39fec4f1689075 100644
--- a/pkg/front_end/messages.yaml
+++ b/pkg/front_end/messages.yaml
@@ -12,6 +12,9 @@
# 3. Examples that produce the message (one of expression, statement,
# declaration, member, script, or bytes).
#
+# In addition, an entry can contain an analyzer error code (analyzerCode) and a
+# dart2js error code (dart2jsCode).
+#
# ## Parameter Substitution in Template and Tip
#
# The fields `template` and `tip` are subject to parameter substitution. When
@@ -31,24 +34,31 @@
AsciiControlCharacter:
template: "The control character #unicode can only be used in strings and comments."
+ dart2jsCode: BAD_INPUT_CHARACTER
expresssion: "\x1b 1"
NonAsciiIdentifier:
template: "The non-ASCII character '#character' (#unicode) can't be used in identifiers, only in strings and comments."
tip: "Try using an US-ASCII letter, a digit, '_' (an underscore), or '$' (a dollar sign)."
+ analyzerCode: ILLEGAL_CHARACTER
+ dart2jsCode: BAD_INPUT_CHARACTER
expresssion: "å"
NonAsciiWhitespace:
template: "The non-ASCII space character #unicode can only be used in strings and comments."
+ analyzerCode: ILLEGAL_CHARACTER
+ dart2jsCode: BAD_INPUT_CHARACTER
expresssion: "\u2028 1"
Encoding:
template: "Unable to decode bytes as UTF-8."
+ dart2jsCode: FASTA_FATAL
bytes: [255]
EmptyNamedParameterList:
template: "Named parameter lists cannot be empty."
tip: "Try adding a named parameter to the list."
+ dart2jsCode: EMPTY_NAMED_PARAMETER_LIST
script: >
foo({}) {}
@@ -59,6 +69,7 @@ EmptyNamedParameterList:
EmptyOptionalParameterList:
template: "Optional parameter lists cannot be empty."
tip: "Try adding an optional parameter to the list."
+ dart2jsCode: EMPTY_OPTIONAL_PARAMETER_LIST
script: >
foo([]) {}
@@ -66,41 +77,54 @@ EmptyOptionalParameterList:
foo();
}
-ExpectedBlockToSkip: ExpectedBody
+ExpectedBlockToSkip:
+ template: "Expected a function body or '=>'."
+ # TODO(ahe): In some scenarios, we can suggest removing the 'static' keyword.
+ tip: "Try adding {}."
+ dart2jsCode: NATIVE_OR_BODY_EXPECTED
+ script: "main();"
ExpectedBody:
template: "Expected a function body or '=>'."
# TODO(ahe): In some scenarios, we can suggest removing the 'static' keyword.
tip: "Try adding {}."
+ dart2jsCode: BODY_EXPECTED
script: "main();"
ExpectedButGot:
- template: "Expected '#lexeme' before this."
+ template: "Expected '#string' before this."
# Consider the second example below: the parser expects a ')' before 'y', but
# a ',' would also have worked. We don't have enough information to give a
# good suggestion.
tip: DONT_KNOW_HOW_TO_FIX,
+ dart2jsCode: MISSING_TOKEN_BEFORE_THIS
script:
- "main() => true ? 1;"
- "main() => foo(x: 1 y: 2);"
ExpectedClassBody:
template: "Expected a class body, but got '#lexeme'."
+ dart2jsCode: FASTA_FATAL
ExpectedClassBodyToSkip: ExpectedClassBody
ExpectedDeclaration:
template: "Expected a declaration, but got '#lexeme'."
+ dart2jsCode: FASTA_FATAL
ExpectedExpression:
template: "Expected an expression, but got '#lexeme'."
+ dart2jsCode: FASTA_FATAL
ExpectedFunctionBody:
template: "Expected a function body, but got '#lexeme'."
+ dart2jsCode: NATIVE_OR_FATAL
ExpectedHexDigit:
template: "A hex digit (0-9 or A-F) must follow '0x'."
# No tip, seems obvious from the error message.
+ analyzerCode: MISSING_HEX_DIGIT
+ dart2jsCode: HEX_DIGIT_EXPECTED
script: >
main() {
var i = 0x;
@@ -109,20 +133,25 @@ ExpectedHexDigit:
ExpectedIdentifier:
template: "'#lexeme' is a reserved word and can't be used here."
tip: "Try using a different name."
+ dart2jsCode: EXPECTED_IDENTIFIER
script: "do() {} main() {}"
ExpectedOpenParens:
template: "Expected '('."
+ dart2jsCode: GENERIC
ExpectedString:
template: "Expected a String, but got '#lexeme'."
+ dart2jsCode: FASTA_FATAL
ExpectedType:
template: "Expected a type, but got '#lexeme'."
+ dart2jsCode: FASTA_FATAL
ExtraneousModifier:
template: "Can't have modifier '#lexeme' here."
tip: "Try removing '#lexeme'."
+ dart2jsCode: EXTRANEOUS_MODIFIER
script:
- "var String foo; main(){}"
- "var set foo; main(){}"
@@ -144,6 +173,7 @@ ExtraneousModifier:
ExtraneousModifierReplace:
template: "Can't have modifier '#lexeme' here."
tip: "Try replacing modifier '#lexeme' with 'var', 'final', or a type."
+ dart2jsCode: EXTRANEOUS_MODIFIER_REPLACE
script:
- "set foo; main(){}"
- "abstract foo; main(){}"
@@ -153,6 +183,7 @@ ExtraneousModifierReplace:
InvalidAwaitFor:
template: "'await' is only supported in methods with an 'async' or 'async*' body modifier."
tip: "Try adding 'async' or 'async*' to the method body or removing the 'await' keyword."
+ dart2jsCode: INVALID_AWAIT_FOR
script: >
main(o) sync* {
await for (var e in o) {}
@@ -161,11 +192,13 @@ InvalidAwaitFor:
InvalidSyncModifier:
template: "Invalid modifier 'sync'."
tip: "Try replacing 'sync' with 'sync*'."
+ dart2jsCode: INVALID_SYNC_MODIFIER
script: "main() sync {}"
InvalidVoid:
template: "Type 'void' can't be used here because it isn't a return type."
tip: "Try removing 'void' keyword or replace it with 'var', 'final', or a type."
+ dart2jsCode: VOID_NOT_ALLOWED
script:
- "void x; main() {}"
- "foo(void x) {} main() { foo(null); }"
@@ -173,6 +206,8 @@ InvalidVoid:
MissingExponent:
template: "Numbers in exponential notation should always contain an exponent (an integer number with an optional sign)."
tip: "Make sure there is an exponent, and remove any whitespace before it."
+ analyzerCode: MISSING_DIGIT
+ dart2jsCode: EXPONENT_MISSING
script: >
main() {
var i = 1e;
@@ -181,6 +216,7 @@ MissingExponent:
PositionalParameterWithEquals:
template: "Positional optional parameters can't use ':' to specify a default value."
tip: "Try replacing ':' with '='."
+ dart2jsCode: POSITIONAL_PARAMETER_WITH_EQUALS
script: >
main() {
foo([a: 1]) => print(a);
@@ -190,6 +226,7 @@ PositionalParameterWithEquals:
RequiredParameterWithDefault:
template: "Non-optional parameters can't have a default value."
tip: "Try removing the default value or making the parameter optional."
+ dart2jsCode: REQUIRED_PARAMETER_WITH_DEFAULT
script:
- >
main() {
@@ -204,10 +241,12 @@ RequiredParameterWithDefault:
StackOverflow:
template: "Stack overflow."
+ dart2jsCode: GENERIC
UnexpectedDollarInString:
template: "A '$' has special meaning inside a string, and must be followed by an identifier or an expression in curly braces ({})."
tip: "Try adding a backslash (\\) to escape the '$'."
+ dart2jsCode: MALFORMED_STRING_LITERAL
script:
- >
main() {
@@ -228,9 +267,11 @@ UnexpectedDollarInString:
UnexpectedToken:
template: "Unexpected token '#lexeme'."
+ dart2jsCode: FASTA_FATAL
UnmatchedToken:
template: "Can't find '#string' to match '#lexeme'."
+ dart2jsCode: UNMATCHED_TOKEN
script:
- "main("
- "main(){"
@@ -239,10 +280,13 @@ UnmatchedToken:
UnsupportedPrefixPlus:
template: "'+' is not a prefix operator. "
tip: "Try removing '+'."
+ dart2jsCode: UNSUPPORTED_PREFIX_PLUS
script: "main() => +2; // No longer a valid way to write '2'"
UnterminatedComment:
template: "Comment starting with '/*' must end with '*/'."
+ analyzerCode: UNTERMINATED_MULTI_LINE_COMMENT
+ dart2jsCode: UNTERMINATED_COMMENT
script:
main() {
}
@@ -250,6 +294,8 @@ UnterminatedComment:
UnterminatedString:
template: "String must end with #string."
+ analyzerCode: UNTERMINATED_STRING_LITERAL
+ dart2jsCode: UNTERMINATED_STRING
script:
- >
main() {
@@ -283,52 +329,69 @@ UnterminatedString:
UnterminatedToken:
# This is a fall-back message that shouldn't happen.
template: "Incomplete token."
+ dart2jsCode: UNTERMINATED_TOKEN
Unspecified:
template: "#string"
+ dart2jsCode: GENERIC
AbstractNotSync:
template: "Abstract methods can't use 'async', 'async*', or 'sync*'."
+ dart2jsCode: FASTA_IGNORED
AsyncAsIdentifier:
+ analyzerCode: ASYNC_KEYWORD_USED_AS_IDENTIFIER
template: "'async' can't be used as an identifier in 'async', 'async*', or 'sync*' methods."
+ dart2jsCode: GENERIC
AwaitAsIdentifier:
template: "'await' can't be used as an identifier in 'async', 'async*', or 'sync*' methods."
+ dart2jsCode: FASTA_IGNORED
AwaitNotAsync:
template: "'await' can only be used in 'async' or 'async*' methods."
+ dart2jsCode: FASTA_IGNORED
BuiltInIdentifierAsType:
template: "Can't use '#lexeme' as a type."
+ dart2jsCode: GENERIC
BuiltInIdentifierInDeclaration:
template: "Can't use '#lexeme' as a name here."
+ dart2jsCode: GENERIC
AwaitForNotAsync:
template: "Asynchronous for-loop can only be used in 'async' or 'async*' methods."
+ dart2jsCode: FASTA_IGNORED
FactoryNotSync:
template: "Factories can't use 'async', 'async*', or 'sync*'."
+ dart2jsCode: FASTA_IGNORED
GeneratorReturnsValue:
template: "'sync*' and 'async*' can't return a value."
+ dart2jsCode: FASTA_IGNORED
InvalidInlineFunctionType:
template: "Invalid inline function type."
tip: "Try changing the inline function type (as in 'int f()') to a prefixed function type using the `Function` keyword (as in 'int Function() f')."
+ dart2jsCode: INVALID_INLINE_FUNCTION_TYPE
declaration: "typedef F = Function(int f(String x)); main() { F f; }"
SetterNotSync:
template: "Setters can't use 'async', 'async*', or 'sync*'."
+ dart2jsCode: FASTA_IGNORED
YieldAsIdentifier:
template: "'yield' can't be used as an identifier in 'async', 'async*', or 'sync*' methods."
+ dart2jsCode: FASTA_IGNORED
YieldNotGenerator:
template: "'yield' can only be used in 'sync*' or 'async*' methods."
+ dart2jsCode: FASTA_IGNORED
OnlyTry:
template: "Try block should be followed by 'on', 'catch', or 'finally' block."
tip: "Did you forget to add a 'finally' block?"
statement: "try {}"
+ dart2jsCode: FASTA_IGNORED
« no previous file with comments | « pkg/front_end/lib/src/scanner/errors.dart ('k') | pkg/front_end/test/subpackage_relationships_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698