blob: 30ad9b2d6018968a9644ec0929a2c10e2d4b3a1a [file] [log] [blame]
# Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
# Each entry in this map corresponds to a diagnostic message. Ideally, each
# entry contains three parts:
#
# 1. A message template (template).
#
# 2. A suggestion for how to correct the problem (tip).
#
# 3. Examples that produce the message (one of expression, statement,
# declaration, member, script, or bytes).
#
# A message shouldn't indicate which kind of diagnostic it is, for example,
# warning or error. Tools are expected to prepend "Warning: ", or "Error: ",
# and should be allowed to change the kind of diagnostic without affecting the
# message. For example, an error might be turned into a warning by the tool.
#
# A message used for internal errors should have key that starts with
# "InternalProblem". This way, UX review can prioritize it accordingly.
#
# In addition, an entry can contain an analyzer error code (analyzerCode) and a
# dart2js error code (dart2jsCode).
#
# For dart2js, there's a few special error codes:
#
# - `*ignored*` this error is ignored by dart2js (normally a recoverable parser
# error that dart2js reports in later phase for historical reasons).
#
# - `*fatal*` this is an error that is considered fatal by dart2js (normally a
# recoverable parser error that dart2js can't reliably recover from).
#
# ## Parameter Substitution in Template and Tip
#
# The fields `template` and `tip` are subject to parameter substitution. When
# the compiler reports a problem, it may also specify a map with the following
# keys to be substituted into the message:
#
# `#character` a Unicode character.
#
# `#unicode` a Unicode short identifier (U+xxxx). We use this to represent code
# units or code points.
#
# `#name` a name (a string).
#
# `#name2` another name (a string).
#
# `#number` a number (an integer).
#
# `#lexeme` a token. The token's `lexeme` property is used.
#
# `#string` a string.
#
# `#string2` another string.
#
# `#uri` a Uri.
AsciiControlCharacter:
template: "The control character #unicode can only be used in strings and comments."
dart2jsCode: BAD_INPUT_CHARACTER
analyzerCode: ILLEGAL_CHARACTER
expression: "\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
expression: "å"
NonAsciiWhitespace:
template: "The non-ASCII space character #unicode can only be used in strings and comments."
analyzerCode: ILLEGAL_CHARACTER
dart2jsCode: BAD_INPUT_CHARACTER
expression: "\u2028 1"
Encoding:
template: "Unable to decode bytes as UTF-8."
dart2jsCode: "*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({}) {}
main() {
foo();
}
EmptyOptionalParameterList:
template: "Optional parameter lists cannot be empty."
tip: "Try adding an optional parameter to the list."
dart2jsCode: EMPTY_OPTIONAL_PARAMETER_LIST
script: >
foo([]) {}
main() {
foo();
}
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 '#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,
analyzerCode: UNEXPECTED_TOKEN
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: "*fatal*"
ExpectedClassBodyToSkip: ExpectedClassBody
ExpectedDeclaration:
template: "Expected a declaration, but got '#lexeme'."
analyzerCode: UNEXPECTED_TOKEN
dart2jsCode: "*fatal*"
ExpectedExpression:
template: "Expected an expression, but got '#lexeme'."
dart2jsCode: "*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;
}
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'."
analyzerCode: EXPECTED_STRING_LITERAL
dart2jsCode: "*fatal*"
ExpectedType:
template: "Expected a type, but got '#lexeme'."
dart2jsCode: "*fatal*"
ExtraneousModifier:
template: "Can't have modifier '#lexeme' here."
tip: "Try removing '#lexeme'."
analyzerCode: UNEXPECTED_TOKEN
dart2jsCode: EXTRANEOUS_MODIFIER
script:
- "var String foo; main(){}"
- "var set foo; main(){}"
- "var final foo; main(){}"
- "var var foo; main(){}"
- "var const foo; main(){}"
- "var abstract foo; main(){}"
- "var static foo; main(){}"
- "var external foo; main(){}"
- "get var foo; main(){}"
- "set var foo; main(){}"
- "final var foo; main(){}"
- "var var foo; main(){}"
- "const var foo; main(){}"
- "abstract var foo; main(){}"
- "static var foo; main(){}"
- "external var foo; main(){}"
- "set foo; main(){}"
- "abstract foo; main(){}"
- "static foo; main(){}"
- "external foo; main(){}"
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) {}
}
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); }"
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;
}
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);
foo(2);
}
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() {
foo(a: 1) => print(a);
foo(2);
}
- >
main() {
foo(a = 1) => print(a);
foo(2);
}
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() {
return '$';
}
- >
main() {
return "$";
}
- >
main() {
return '''$''';
}
- >
main() {
return """$""";
}
UnexpectedToken:
template: "Unexpected token '#lexeme'."
dart2jsCode: "*fatal*"
UnmatchedToken:
template: "Can't find '#string' to match '#lexeme'."
dart2jsCode: UNMATCHED_TOKEN
script:
- "main("
- "main(){"
- "main(){[}"
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() {
}
/*
UnterminatedString:
template: "String must end with #string."
analyzerCode: UNTERMINATED_STRING_LITERAL
dart2jsCode: UNTERMINATED_STRING
script:
- >
main() {
return '
;
}
- >
main() {
return \"
;
}
- >
main() {
return r'
;
}
- >
main() {
return r\"
;
}
- >
main() => '''
- >
main() => \"\"\"
- >
main() => r'''
- >
main() => r\"\"\"
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: "*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: "*ignored*"
AwaitNotAsync:
template: "'await' can only be used in 'async' or 'async*' methods."
dart2jsCode: "*ignored*"
BuiltInIdentifierAsType:
template: "Can't use '#lexeme' as a type."
analyzerCode: EXPECTED_TYPE_NAME
dart2jsCode: EXTRANEOUS_MODIFIER
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: "*ignored*"
FactoryNotSync:
template: "Factories can't use 'async', 'async*', or 'sync*'."
dart2jsCode: "*ignored*"
GeneratorReturnsValue:
template: "'sync*' and 'async*' can't return a value."
dart2jsCode: "*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: "*ignored*"
YieldAsIdentifier:
template: "'yield' can't be used as an identifier in 'async', 'async*', or 'sync*' methods."
dart2jsCode: "*ignored*"
YieldNotGenerator:
template: "'yield' can only be used in 'sync*' or 'async*' methods."
dart2jsCode: "*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: "*ignored*"
TypeAfterVar:
template: "Can't have both a type and 'var'."
tip: "Try removing 'var.'"
dart2jsCode: EXTRANEOUS_MODIFIER
TypeRequired:
template: "A type or modifier is required here."
tip: "Try adding a type, 'var', 'const', or 'final'."
AssertExtraneousArgument:
template: "`assert` can't have more than two arguments."
dart2jsCode: "*fatal*"
AssertAsExpression:
template: "`assert` can't be used as an expression."
dart2jsCode: "*fatal*"
FunctionTypeDefaultValue:
template: "Can't have a default value in a function type."
dart2jsCode: "*ignored*"
PrivateNamedParameter:
template: "An optional named parameter can't start with '_'."
dart2jsCode: "*ignored*"
NoFormals:
template: "A function should have formal parameters."
tip: "Try adding '()' after '#lexeme', or add 'get' before '#lexeme' to declare a getter."
dart2jsCode: "*ignored*"
GetterWithFormals:
template: "A getter can't have formal parameters."
tip: "Try removing '(...)'."
dart2jsCode: "*ignored*"
CatchSyntax:
template: "'catch' must be followed by '(identifier)' or '(identifier, identifier)'."
tip: "No types are needed, the first is given by 'on', the second is always 'StackTrace'."
dart2jsCode: "*ignored*"
SuperNullAware:
template: "'super' can't be null."
tip: "Try replacing '?.' with '.'"
dart2jsCode: "*ignored*"
ConstFieldWithoutInitializer:
template: "A 'const' field must be initialized."
tip: "Try adding '= <initializer>'."
dart2jsCode: "*ignored*"
FinalFieldWithoutInitializer:
template: "A 'final' field must be initialized."
tip: "Try adding '= <initializer>'."
dart2jsCode: "*ignored*"
MetadataTypeArguments:
template: "An annotation (metadata) can't use type arguments."
dart2jsCode: "*ignored*"
ConstructorNotFound:
template: "Couldn't find constructor '#name'."
RedirectionTargetNotFound:
template: "Redirection constructor target not found: '#name'"
CyclicTypedef:
template: "The typedef '#name' has a reference to itself."
TypeNotFound:
template: "Type '#name' not found."
NonInstanceTypeVariableUse:
template: "Can only use type variables in instance methods."
GetterNotFound:
template: "Getter not found: '#name'."
SetterNotFound:
template: "Setter not found: '#name'."
MethodNotFound:
template: "Method not found: '#name'."
AbstractClassInstantiation:
template: "The class '#name' is abstract and can't be instantiated."
ListLiteralTooManyTypeArguments:
template: "Too many type arguments on List literal."
ListLiteralTypeArgumentMismatch:
template: "Map literal requires two type arguments."
NotAType:
template: "'#name' isn't a type."
FastaUsageShort:
template: >-
Frequently used options:
-o <file> Generate the output into <file>.
-h Display this message (add -v for information about all options).
FastaUsageLong:
template: >-
Supported options:
-o <file>, --output=<file>
Generate the output into <file>.
-h, /h, /?, --help
Display this message (add -v for information about all options).
-v, --verbose
Display verbose information.
--
Stop option parsing, the rest of the command line is assumed to be
file names or arguments to the Dart program.
--packages=<file>
Use package resolution configuration <file>, which should contain a mapping
of package names to paths.
--platform=<file>
Read the SDK platform from <file>, which should be in Dill/Kernel IR format
and contain the Dart SDK.
--target=none|vm|vmcc|vmreify|flutter
Specify the target configuration.
--verify
Check that the generated output is free of various problems. This is mostly
useful for developers of this compiler or Kernel transformations.
--dump-ir
Print compiled libraries in Kernel source notation.
--exclude-source
Do not include source code in the dill file.
--compile-sdk=<patched_sdk>
Compile the SDK from scratch instead of reading it from 'platform.dill'.
--sdk=<patched_sdk>
Location of the SDK sources for use when compiling additional platform
libraries.
--fatal=errors
--fatal=warnings
--fatal=nits
Makes messages of the given kinds fatal, that is, immediately stop the
compiler with a non-zero exit-code. In --verbose mode, also display an
internal stack trace from the compiler. Multiple kinds can be separated by
commas, for example, --fatal=errors,warnings.
FastaCLIArgumentRequired:
template: "Expected value after '#name'."
NamedFunctionExpression:
template: "A function expression can't have a name."
dart2jsCode: "*ignored*"
ReturnTypeFunctionExpression:
template: "A function expression can't have a return type."
dart2jsCode: "*ignored*"
InternalProblemUnhandled:
template: "Unhandled #string in #string2."
InternalProblemUnimplemented:
template: "Unimplemented #string."
InternalProblemUnexpected:
template: "Expected '#string', but got '#string2'."
InternalProblemUnsupported:
template: "Unsupported operation: '#name'."
InternalProblemSuperclassNotFound:
template: "Superclass not found '#name'."
InternalProblemNotFound:
template: "Couldn't find '#name'."
InternalProblemNotFoundIn:
template: "Couldn't find '#name' in '#name2'."
InternalProblemPrivateConstructorAccess:
template: "Can't access private constructor '#name'."
InternalProblemConstructorNotFound:
template: "No constructor named '#name' in '#uri'."
InternalProblemExtendingUnmodifiableScope:
template: "Can't extend an unmodifiable scope."
InternalProblemPreviousTokenNotFound:
template: "Couldn't find previous token."
InternalProblemStackNotEmpty:
template: "#name.stack isn't empty:\n #string"
InternalProblemAlreadyInitialized:
template: "Attempt to set initializer on field without initializer."
InternalProblemBodyOnAbstractMethod:
template: "Attempting to set body on abstract method."
InternalVerificationError:
template: "Verification of the generated program failed: #string."
LocalDefinitionHidesExport:
template: "Local definition of '#name' hides export from '#uri'."
LocalDefinitionHidesImport:
template: "Local definition of '#name' hides import from '#uri'."
ExportHidesExport:
template: "Export of '#name' (from '#uri') hides export from '#uri2'."
ImportHidesImport:
template: "Import of '#name' (from '#uri') hides import from '#uri2'."
DuplicatedExport:
template: "'#name' is exported from both '#uri' and '#uri2'."
DuplicatedImport:
template: "'#name' is imported from both '#uri' and '#uri2'."
CyclicClassHierarchy:
template: "'#name' is a supertype of itself via '#string'."
ExtendingEnum:
template: "'#name' is an enum and can't be extended or implemented."
ExtendingRestricted:
template: "'#name' is restricted and can't be extended or implemented."
NoUnnamedConstructorInObject:
template: "'Object' has no unnamed constructor."
IllegalMixinDueToConstructors:
template: "Can't use '#name' as a mixin because it has constructors."
IllegalMixinDueToConstructorsCause:
template: "This constructor prevents using '#name' as a mixin."
ConflictsWithConstructor:
template: "Conflicts with constructor '#name'."
ConflictsWithFactory:
template: "Conflicts with factory '#name'."
ConflictsWithMember:
template: "Conflicts with member '#name'."
ConflictsWithSetter:
template: "Conflicts with setter '#name'."
ConflictsWithTypeVariable:
template: "Conflicts with type variable '#name'."
ConflictsWithTypeVariableCause:
template: "This is the type variable."
IllegalMixin:
template: "The type '#name' can't be mixed in."
OverrideTypeVariablesMismatch:
template: "Declared type variables of '#name' doesn't match those on overridden method '#name2'."
OverrideMismatchNamedParameter:
template: "The method '#name' doesn't have the named parameter '#name2' of overriden method '#name3'."
OverrideFewerNamedArguments:
template: "The method '#name' has fewer named arguments than those of overridden method '#name2'."
OverrideFewerPositionalArguments:
template: "The method '#name' has fewer positional arguments than those of overridden method '#name2'."
OverrideMoreRequiredArguments:
template: "The method '#name' has more required arguments than those of overridden method '#name2'."
IllegalMethodName:
template: "'#name' isn't a legal method name."
tip: "Did you mean '#name2'?"
ConstConstructorWithBody:
template: "A const constructor can't have a body."
PartOfSelf:
template: "A file can't be a part of itself."
TypeVariableDuplicatedName:
template: "A type variable can't have the same name as another."
TypeVariableDuplicatedNameCause:
template: "The other type variable named '#name'."
TypeVariableSameNameAsEnclosing:
template: "A type variable can't have the same name as its enclosing declaration."
EnumDeclartionEmpty:
template: "An enum declaration can't be empty."
ExternalMethodWithBody:
template: "An external method can't have a body."
OperatorWithOptionalFormals:
template: "An operator can't have optional parameters."
PlatformPrivateLibraryAccess:
template: "Can't access platform private library."
TypedefNotFunction:
template: "Can't create typedef from non-function type."
PartTwice:
template: "Can't use '#uri' as a part more than once."
MissingPartOf:
template: "Can't use '#uri' as a part, because it has no 'part of' declaration."
SupertypeIsFunction:
template: "Can't use a function type as supertype."
DeferredPrefixDuplicated:
template: "Can't use the name '#name' for a deferred library, as the name is used elsewhere."
DeferredPrefixDuplicatedCause:
template: "'#name' is used here."
TypeArgumentsOnTypeVariable:
template: "Can't use type arguments with type variable '#name'."
DuplicatedDefinition:
template: "Duplicated definition of '#name'."
DuplicatedName:
template: "Duplicated name: '#name'."
DuplicatedParameterName:
template: "Duplicated parameter name '#name'."
DuplicatedParameterNameCause:
template: "Other parameter named '#name'."
EnumConstantSameNameAsEnclosing:
template: "Name of enum constant '#name' can't be the same as the enum's own name."
OperatorParameterMismatch:
template: "Operator '#name' must have exactly #number parameters."
SupertypeIsIllegal:
template: "The type '#name' can't be used as supertype."
SupertypeIsTypeVariable:
template: "The type variable '#name' can't be used as supertype."
PartOfLibraryNameMismatch:
template: "Using '#uri' as part of '#name' but its 'part of' declaration says '#name2'."
PartOfUseUri:
template: "Using '#uri' as part of '#uri2' but its 'part of' declaration says '#name'."
tip: "Try changing the 'part of' declaration to use a relative file name."
PartOfUriMismatch:
template: "Using '#uri' as part of '#uri2' but its 'part of' declaration says '#string'."
MissingMain:
template: "No 'main' method found."
tip: "Try adding a method named 'main' to your program."
dart2jsCode: MISSING_MAIN
MissingInput:
template: "No input file provided to the compiler."
InputFileNotFound:
template: "Input file not found: #string."
SdkRootNotFound:
template: "SDK root directory not found: #string."
SdkSummaryNotFound:
template: "SDK summary not found: #string."
ThisAccessInFieldInitializer:
template: "Can't access 'this' in a field initializer to read '#name'."
ThisAsIdentifier:
template: "Expected identifier, but got 'this'."
SuperAsIdentifier:
template: "Expected identifier, but got 'super'."
SwitchCaseFallThrough:
template: "Switch case may fall through to the next case."
FinalInstanceVariableAlreadyInitialized:
template: "'#name' is a final instance variable that has already been initialized."
FinalInstanceVariableAlreadyInitializedCause:
template: "'#name' was initialized here."
TypeVariableInStaticContext:
template: "Type variables can't be used in static members."
SuperclassMethodArgumentMismatch:
template: "Superclass doesn't have a method named '#name' with matching arguments."
SuperclassHasNoGetter:
template: "Superclass has no getter named '#name'."
SuperclassHasNoSetter:
template: "Superclass has no setter named '#name'."
SuperclassHasNoMethod:
template: "Superclass has no method named '#name'."
SuperclassHasNoDefaultConstructor:
template: "The superclass, '#name', has no unnamed constructor that takes no arguments."
ConstConstructorNonFinalField:
template: "Constructor is marked 'const' so all fields must be final."
ConstConstructorNonFinalFieldCause:
template: "Field isn't final, but constructor is 'const'."
AccessError:
template: "Access error: '#name'."
PreviousUseOfName:
template: "Previous use of '#name'."
ExpressionNotMetadata:
template: "This can't be used as metadata; metadata should be a reference to a compile-time constant variable, or a call to a constant constructor."
ExpectedAnInitializer:
template: "Expected an initializer."
NotAnLvalue:
template: "Can't assign to this."
CannotReadPackagesFile:
template: "Unable to read '.packages' file:\n #string."
CantInferPackagesFromManyInputs:
template: "Cannot infer a .packages file when compiling multiple inputs."
tip: "Try specifying the file explicitly with the --packages option."
PackageNotFound:
template: "Could not resolve the package '#name' in '#uri'."
InvalidPackageUri:
template: "Invalid package Uri '#uri':\n #string."