mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 09:01:42 +00:00
Adjust front end nomenclature for error messages.
This change updates the classes Message, MessageCode, Template, LocatedMessage, and FormattedMessage so that they uniformly refer to error message text using the terminology `problemMessage` and to correction suggestions using the terminology `correctionMessage`. This brings them into alignment with the names we've decided to use to unify the structure of front_end and analyzer, and makes them match the names used in the anlayzer and front end's `messages.yaml` files. Change-Id: Idcbb7ccfff6bb4e99ca22a3ef3c19d83880cf3c7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215154 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
parent
c3d9664956
commit
b2c2acee09
|
@ -39,14 +39,16 @@ class Code<T> {
|
|||
class Message {
|
||||
final Code<dynamic> code;
|
||||
|
||||
final String message;
|
||||
final String problemMessage;
|
||||
|
||||
final String? tip;
|
||||
final String? correctionMessage;
|
||||
|
||||
final Map<String, dynamic> arguments;
|
||||
|
||||
const Message(this.code,
|
||||
{required this.message, this.tip, this.arguments = const {}});
|
||||
{this.correctionMessage,
|
||||
required this.problemMessage,
|
||||
this.arguments = const {}});
|
||||
|
||||
LocatedMessage withLocation(Uri uri, int charOffset, int length) {
|
||||
return new LocatedMessage(uri, charOffset, length, this);
|
||||
|
@ -57,21 +59,21 @@ class Message {
|
|||
}
|
||||
|
||||
String toString() {
|
||||
return "Message[$code, $message, $tip, $arguments]";
|
||||
return "Message[$code, $problemMessage, $correctionMessage, $arguments]";
|
||||
}
|
||||
}
|
||||
|
||||
class MessageCode extends Code<Null> implements Message {
|
||||
final String message;
|
||||
final String problemMessage;
|
||||
|
||||
final String? tip;
|
||||
final String? correctionMessage;
|
||||
|
||||
const MessageCode(String name,
|
||||
{int index: -1,
|
||||
List<String>? analyzerCodes,
|
||||
Severity severity: Severity.error,
|
||||
required this.message,
|
||||
this.tip})
|
||||
required this.problemMessage,
|
||||
this.correctionMessage})
|
||||
: super(name,
|
||||
index: index, analyzerCodes: analyzerCodes, severity: severity);
|
||||
|
||||
|
@ -90,15 +92,15 @@ class MessageCode extends Code<Null> implements Message {
|
|||
}
|
||||
|
||||
class Template<T> {
|
||||
final String messageTemplate;
|
||||
final String problemMessageTemplate;
|
||||
|
||||
final String? tipTemplate;
|
||||
final String? correctionMessageTemplate;
|
||||
|
||||
final T withArguments;
|
||||
|
||||
const Template(
|
||||
{required this.messageTemplate,
|
||||
this.tipTemplate,
|
||||
{this.correctionMessageTemplate,
|
||||
required this.problemMessageTemplate,
|
||||
required this.withArguments});
|
||||
}
|
||||
|
||||
|
@ -116,9 +118,9 @@ class LocatedMessage implements Comparable<LocatedMessage> {
|
|||
|
||||
Code<dynamic> get code => messageObject.code;
|
||||
|
||||
String get message => messageObject.message;
|
||||
String get problemMessage => messageObject.problemMessage;
|
||||
|
||||
String? get tip => messageObject.tip;
|
||||
String? get correctionMessage => messageObject.correctionMessage;
|
||||
|
||||
Map<String, dynamic> get arguments => messageObject.arguments;
|
||||
|
||||
|
@ -128,7 +130,7 @@ class LocatedMessage implements Comparable<LocatedMessage> {
|
|||
if (result != 0) return result;
|
||||
result = charOffset.compareTo(other.charOffset);
|
||||
if (result != 0) return result;
|
||||
return message.compareTo(message);
|
||||
return problemMessage.compareTo(problemMessage);
|
||||
}
|
||||
|
||||
FormattedMessage withFormatting(PlainAndColorizedString formatted, int line,
|
||||
|
@ -209,9 +211,9 @@ class FormattedMessage implements DiagnosticMessage {
|
|||
|
||||
String get codeName => code.name;
|
||||
|
||||
String get message => locatedMessage.message;
|
||||
String get problemMessage => locatedMessage.problemMessage;
|
||||
|
||||
String? get tip => locatedMessage.tip;
|
||||
String? get correctionMessage => locatedMessage.correctionMessage;
|
||||
|
||||
Map<String, dynamic> get arguments => locatedMessage.arguments;
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -66,7 +66,7 @@ Code? getMessageCodeObject(DiagnosticMessage message) {
|
|||
|
||||
/// This method is subject to change.
|
||||
String? getMessageHeaderText(DiagnosticMessage message) {
|
||||
return message is FormattedMessage ? message.message : null;
|
||||
return message is FormattedMessage ? message.problemMessage : null;
|
||||
}
|
||||
|
||||
/// This method is subject to change.
|
||||
|
|
|
@ -22,5 +22,6 @@ class ParserError {
|
|||
ParserError.fromTokens(Token begin, Token end, Message message)
|
||||
: this(begin.charOffset, end.charOffset + end.charCount, message);
|
||||
|
||||
String toString() => "@${beginOffset}: ${message.message}\n${message.tip}";
|
||||
String toString() => "@${beginOffset}: ${message.problemMessage}\n"
|
||||
"${message.correctionMessage}";
|
||||
}
|
||||
|
|
|
@ -96,7 +96,8 @@ abstract class StackListener extends Listener {
|
|||
// If offset is available report and internal problem to show the
|
||||
// parsed code in the output.
|
||||
throw internalProblem(
|
||||
new Message(const Code<String>('Internal error'), message: message),
|
||||
new Message(const Code<String>('Internal error'),
|
||||
problemMessage: message),
|
||||
token.charOffset,
|
||||
uri);
|
||||
} else {
|
||||
|
@ -198,7 +199,8 @@ abstract class StackListener extends Listener {
|
|||
// If offset is available report and internal problem to show the
|
||||
// parsed code in the output.
|
||||
throw internalProblem(
|
||||
new Message(const Code<String>('Internal error'), message: message),
|
||||
new Message(const Code<String>('Internal error'),
|
||||
problemMessage: message),
|
||||
token.charOffset,
|
||||
uri);
|
||||
} else {
|
||||
|
@ -480,7 +482,7 @@ abstract class StackListener extends Listener {
|
|||
@override
|
||||
void handleRecoverableError(
|
||||
Message message, Token startToken, Token endToken) {
|
||||
debugEvent("Error: ${message.message}");
|
||||
debugEvent("Error: ${message.problemMessage}");
|
||||
if (isIgnoredError(message.code, startToken)) return;
|
||||
addProblem(
|
||||
message, startToken.charOffset, lengthOfSpan(startToken, endToken));
|
||||
|
|
|
@ -73,7 +73,7 @@ abstract class ErrorToken extends SimpleToken {
|
|||
int get length => 1;
|
||||
|
||||
String get lexeme {
|
||||
String errorMsg = assertionMessage.message;
|
||||
String errorMsg = assertionMessage.problemMessage;
|
||||
|
||||
// Attempt to include the location which is calling the parser
|
||||
// in an effort to debug https://github.com/dart-lang/sdk/issues/37528
|
||||
|
|
|
@ -13,7 +13,7 @@ class CommandLineProblem {
|
|||
CommandLineProblem.deprecated(String message)
|
||||
: this(templateUnspecified.withArguments(message));
|
||||
|
||||
String toString() => message.message;
|
||||
String toString() => message.problemMessage;
|
||||
}
|
||||
|
||||
class ParsedOptions {
|
||||
|
|
|
@ -3416,7 +3416,7 @@ class AstBuilder extends StackListener {
|
|||
if (message == messageNativeClauseShouldBeAnnotation && allowNativeClause) {
|
||||
return;
|
||||
}
|
||||
debugEvent("Error: ${message.message}");
|
||||
debugEvent("Error: ${message.problemMessage}");
|
||||
if (message.code.analyzerCodes == null && startToken is ErrorToken) {
|
||||
translateErrorToken(startToken, errorReporter.reportScannerError);
|
||||
} else {
|
||||
|
@ -3728,7 +3728,7 @@ class AstBuilder extends StackListener {
|
|||
|
||||
@override
|
||||
Never internalProblem(Message message, int charOffset, Uri uri) {
|
||||
throw UnsupportedError(message.message);
|
||||
throw UnsupportedError(message.problemMessage);
|
||||
}
|
||||
|
||||
/// Return `true` if [token] is either `null` or is the symbol or keyword
|
||||
|
|
|
@ -582,7 +582,7 @@ class MiniAstBuilder extends StackListener {
|
|||
|
||||
@override
|
||||
internalProblem(Message message, int charOffset, Uri? uri) {
|
||||
throw UnsupportedError(message.message);
|
||||
throw UnsupportedError(message.problemMessage);
|
||||
}
|
||||
|
||||
List? popList(int n, List list) {
|
||||
|
|
|
@ -141,5 +141,5 @@ DiagnosticMessage _createDiagnosticMessage(
|
|||
var sourceSpan = SourceSpan(
|
||||
message.uri, message.charOffset, message.charOffset + message.length);
|
||||
return reporter.createMessage(
|
||||
sourceSpan, MessageKind.GENERIC, {'text': message.message});
|
||||
sourceSpan, MessageKind.GENERIC, {'text': message.problemMessage});
|
||||
}
|
||||
|
|
|
@ -2168,7 +2168,7 @@ DiagnosticMessage _createDiagnosticMessage(
|
|||
SourceSpan sourceSpan = SourceSpan(
|
||||
message.uri, message.charOffset, message.charOffset + message.length);
|
||||
return reporter.createMessage(
|
||||
sourceSpan, MessageKind.GENERIC, {'text': message.message});
|
||||
sourceSpan, MessageKind.GENERIC, {'text': message.problemMessage});
|
||||
}
|
||||
|
||||
void reportLocatedMessage(DiagnosticReporter reporter,
|
||||
|
|
|
@ -31,8 +31,8 @@ main() {
|
|||
var cantReadFile =
|
||||
templateCantReadFile.withArguments(entryPoint, EXCEPTION);
|
||||
List<String> expectedLines = [
|
||||
"Error: ${cantReadFile.message}",
|
||||
"Error: ${messageMissingMain.message}",
|
||||
"Error: ${cantReadFile.problemMessage}",
|
||||
"Error: ${messageMissingMain.problemMessage}",
|
||||
];
|
||||
test('Throw in input provider',
|
||||
await run(memorySourceFiles: new CrashingMap()),
|
||||
|
|
|
@ -38,7 +38,7 @@ import 'package:kernel/ast.dart'
|
|||
|
||||
DiagnosticMessage _createInternalError(Uri uri, int line, int col, String msg) {
|
||||
return Message(Code<String>('Expression Compiler Internal error'),
|
||||
message: msg)
|
||||
problemMessage: msg)
|
||||
.withLocation(uri, 0, 0)
|
||||
.withFormatting(PlainAndColorizedString.plainOnly('Internal error: $msg'),
|
||||
line, col, Severity.internalProblem, []);
|
||||
|
|
|
@ -251,7 +251,7 @@ class ProcessedOptions {
|
|||
if (_raw.skipForDebugging < 0) {
|
||||
print(templateDebugTrace
|
||||
.withArguments("$severity", "${StackTrace.current}")
|
||||
.message);
|
||||
.problemMessage);
|
||||
} else {
|
||||
throw new DebugAbort(
|
||||
message.uri, message.charOffset, severity, StackTrace.current);
|
||||
|
@ -606,7 +606,7 @@ class ProcessedOptions {
|
|||
// We throw a new exception to ensure that the message include the uri
|
||||
// that led to the exception. Exceptions in Uri don't include the
|
||||
// offending uri in the exception message.
|
||||
throw new ArgumentError(message.message);
|
||||
throw new ArgumentError(message.problemMessage);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -729,7 +729,7 @@ class ProcessedOptions {
|
|||
// We throw a new exception to ensure that the message include the uri
|
||||
// that led to the exception. Exceptions in Uri don't include the
|
||||
// offending uri in the exception message.
|
||||
throw new ArgumentError(message.message);
|
||||
throw new ArgumentError(message.problemMessage);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -604,7 +604,7 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl
|
|||
return unhandled(
|
||||
templateTypeArgumentMismatch
|
||||
.withArguments(typeVariablesCount)
|
||||
.message,
|
||||
.problemMessage,
|
||||
"buildTypeArguments",
|
||||
-1,
|
||||
null);
|
||||
|
|
|
@ -137,7 +137,7 @@ abstract class ExtensionBuilderImpl extends DeclarationBuilderImpl
|
|||
return unhandled(
|
||||
templateTypeArgumentMismatch
|
||||
.withArguments(typeVariablesCount)
|
||||
.message,
|
||||
.problemMessage,
|
||||
"buildTypeArguments",
|
||||
-1,
|
||||
null);
|
||||
|
|
|
@ -53,10 +53,11 @@ PlainAndColorizedString format(LocatedMessage message, Severity severity,
|
|||
length = 1;
|
||||
}
|
||||
String? prefix = severityPrefixes[severity];
|
||||
String messageTextTmp =
|
||||
prefix == null ? message.message : "$prefix: ${message.message}";
|
||||
if (message.tip != null) {
|
||||
messageTextTmp += "\n${message.tip}";
|
||||
String messageTextTmp = prefix == null
|
||||
? message.problemMessage
|
||||
: "$prefix: ${message.problemMessage}";
|
||||
if (message.correctionMessage != null) {
|
||||
messageTextTmp += "\n${message.correctionMessage}";
|
||||
}
|
||||
final String messageTextPlain = messageTextTmp;
|
||||
String messageTextColorized;
|
||||
|
@ -106,7 +107,7 @@ PlainAndColorizedString format(LocatedMessage message, Severity severity,
|
|||
}
|
||||
} catch (error, trace) {
|
||||
print("Crash when formatting: "
|
||||
"[${message.code.name}] ${safeToString(message.message)}\n"
|
||||
"[${message.code.name}] ${safeToString(message.problemMessage)}\n"
|
||||
"${safeToString(error)}\n"
|
||||
"$trace");
|
||||
throw new Crash(message.uri, message.charOffset, error, trace);
|
||||
|
|
|
@ -100,9 +100,11 @@ class CompilerContext {
|
|||
if (context == null) {
|
||||
// Note: we throw directly and don't use internalProblem, because
|
||||
// internalProblem depends on having a compiler context available.
|
||||
String message = messageInternalProblemMissingContext.message;
|
||||
String tip = messageInternalProblemMissingContext.tip!;
|
||||
throw "Internal problem: $message\nTip: $tip";
|
||||
String problemMessage =
|
||||
messageInternalProblemMissingContext.problemMessage;
|
||||
String correctionMessage =
|
||||
messageInternalProblemMissingContext.correctionMessage!;
|
||||
throw "Internal problem: $problemMessage\nTip: $correctionMessage";
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
|
|
@ -172,7 +172,7 @@ class DillLoader extends Loader {
|
|||
double ms = elapsed.inMicroseconds / Duration.microsecondsPerMillisecond;
|
||||
Message message = template.withArguments(
|
||||
libraryCount, byteCount, ms, byteCount / ms, ms / libraryCount);
|
||||
print("$sinceStart: ${message.message}");
|
||||
print("$sinceStart: ${message.problemMessage}");
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -218,7 +218,7 @@ class DillLoader extends Loader {
|
|||
severity ??= message.code.severity;
|
||||
if (severity == Severity.ignored) return null;
|
||||
String trace = """
|
||||
message: ${message.message}
|
||||
message: ${message.problemMessage}
|
||||
charOffset: $charOffset
|
||||
fileUri: $fileUri
|
||||
severity: $severity
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1066,7 +1066,7 @@ class ConstantEvaluator implements ExpressionVisitor<Constant> {
|
|||
errorReporter.report(locatedMessageActualError);
|
||||
}
|
||||
return new UnevaluatedConstant(
|
||||
new InvalidExpression(result.message.message));
|
||||
new InvalidExpression(result.message.problemMessage));
|
||||
}
|
||||
if (result is _AbortDueToThrowConstant) {
|
||||
final Object value = result.throwValue;
|
||||
|
@ -1090,7 +1090,8 @@ class ConstantEvaluator implements ExpressionVisitor<Constant> {
|
|||
createLocatedMessage(node, messageConstEvalStartingPoint);
|
||||
errorReporter.report(locatedMessage, contextMessages);
|
||||
}
|
||||
return new UnevaluatedConstant(new InvalidExpression(message.message));
|
||||
return new UnevaluatedConstant(
|
||||
new InvalidExpression(message.problemMessage));
|
||||
}
|
||||
if (result is _AbortDueToInvalidExpressionConstant) {
|
||||
return new UnevaluatedConstant(
|
||||
|
@ -4534,7 +4535,7 @@ class SimpleErrorReporter implements ErrorReporter {
|
|||
}
|
||||
|
||||
void _report(LocatedMessage message) {
|
||||
reportMessage(message.uri, message.charOffset, message.message);
|
||||
reportMessage(message.uri, message.charOffset, message.problemMessage);
|
||||
}
|
||||
|
||||
void reportMessage(Uri? uri, int offset, String message) {
|
||||
|
|
|
@ -525,6 +525,6 @@ class LabeledNode {
|
|||
? templateTypeOrigin.withArguments(toString(), importUri)
|
||||
: templateTypeOriginWithFileUri.withArguments(
|
||||
toString(), importUri, fileUri);
|
||||
return "\n - " + message.message;
|
||||
return "\n - " + message.problemMessage;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ class DebugAbort {
|
|||
.withoutLocation();
|
||||
|
||||
@override
|
||||
String toString() => "DebugAbort: ${message.message}";
|
||||
String toString() => "DebugAbort: ${message.problemMessage}";
|
||||
}
|
||||
|
||||
/// Used to report an internal error.
|
||||
|
|
|
@ -1334,7 +1334,7 @@ class SourceLibraryBuilder extends LibraryBuilderImpl {
|
|||
default:
|
||||
if (member is InvalidTypeDeclarationBuilder) {
|
||||
unserializableExports ??= <String, String>{};
|
||||
unserializableExports![name] = member.message.message;
|
||||
unserializableExports![name] = member.message.problemMessage;
|
||||
} else {
|
||||
// Eventually (in #buildBuilder) members aren't added to the
|
||||
// library if the have 'next' pointers, so don't add them as
|
||||
|
|
|
@ -401,7 +401,7 @@ class SourceLoader extends Loader {
|
|||
double ms = elapsed.inMicroseconds / Duration.microsecondsPerMillisecond;
|
||||
Message message = template.withArguments(
|
||||
libraryCount, byteCount, ms, byteCount / ms, ms / libraryCount);
|
||||
print("$sinceStart: ${message.message}");
|
||||
print("$sinceStart: ${message.problemMessage}");
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -442,7 +442,7 @@ class SourceLoader extends Loader {
|
|||
severity ??= message.code.severity;
|
||||
if (severity == Severity.ignored) return null;
|
||||
String trace = """
|
||||
message: ${message.message}
|
||||
message: ${message.problemMessage}
|
||||
charOffset: $charOffset
|
||||
fileUri: $fileUri
|
||||
severity: $severity
|
||||
|
@ -661,7 +661,8 @@ severity: $severity
|
|||
return utf8.encode(defaultDartTypedDataSource);
|
||||
|
||||
default:
|
||||
return utf8.encode(message == null ? "" : "/* ${message.message} */");
|
||||
return utf8
|
||||
.encode(message == null ? "" : "/* ${message.problemMessage} */");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -237,7 +237,7 @@ class SourceTypeAliasBuilder extends TypeAliasBuilderImpl {
|
|||
return unhandled(
|
||||
templateTypeArgumentMismatch
|
||||
.withArguments(typeVariablesCount)
|
||||
.message,
|
||||
.problemMessage,
|
||||
"buildTypeArguments",
|
||||
-1,
|
||||
null);
|
||||
|
|
|
@ -272,8 +272,9 @@ class TypeInferrerImpl implements TypeInferrer {
|
|||
Arguments arguments;
|
||||
// ignore: unnecessary_null_comparison
|
||||
if (errorMessage != null) {
|
||||
arguments = new Arguments(
|
||||
[new StringLiteral(errorMessage.message)..fileOffset = fileOffset])
|
||||
arguments = new Arguments([
|
||||
new StringLiteral(errorMessage.problemMessage)..fileOffset = fileOffset
|
||||
])
|
||||
..fileOffset = fileOffset;
|
||||
} else {
|
||||
arguments = new Arguments([])..fileOffset = fileOffset;
|
||||
|
|
|
@ -734,7 +734,7 @@ String errorsToText(List<FormattedMessage> errors, {bool useCodes: false}) {
|
|||
if (useCodes) {
|
||||
return errors.map((m) => m.code).join(',');
|
||||
} else {
|
||||
return errors.map((m) => m.message).join(',');
|
||||
return errors.map((m) => m.problemMessage).join(',');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -89,11 +89,11 @@ class ExtensionsDataComputer extends DataComputer<Features> {
|
|||
Id id, List<FormattedMessage> errors) {
|
||||
Features features = new Features();
|
||||
for (FormattedMessage error in errors) {
|
||||
if (error.message.contains(',')) {
|
||||
if (error.problemMessage.contains(',')) {
|
||||
// TODO(johnniwinther): Support escaping of , in Features.
|
||||
features.addElement(Tags.errors, error.code);
|
||||
} else {
|
||||
features.addElement(Tags.errors, error.message);
|
||||
features.addElement(Tags.errors, error.problemMessage);
|
||||
}
|
||||
}
|
||||
return features;
|
||||
|
|
|
@ -54,7 +54,7 @@ void main() {
|
|||
}
|
||||
Set<String> testedSubtools = new Set<String>.from(subtools)
|
||||
.difference(new Set<String>.from(unsafeTools));
|
||||
String usage = messageFastaUsageShort.message;
|
||||
String usage = messageFastaUsageShort.problemMessage;
|
||||
Map expectations = {
|
||||
"abcompile": {
|
||||
"exitCode": 1,
|
||||
|
|
|
@ -20,9 +20,10 @@ import 'package:test/test.dart'
|
|||
test;
|
||||
|
||||
import 'package:front_end/src/api_prototype/front_end.dart'
|
||||
show CompilerOptions;
|
||||
show CompilerOptions, DiagnosticMessage;
|
||||
|
||||
import 'package:front_end/src/fasta/fasta_codes.dart' show messageMissingMain;
|
||||
import 'package:front_end/src/fasta/fasta_codes.dart'
|
||||
show FormattedMessage, messageMissingMain;
|
||||
|
||||
import 'package:front_end/src/fasta/kernel/utils.dart' show serializeComponent;
|
||||
|
||||
|
@ -84,10 +85,11 @@ void main() {
|
|||
});
|
||||
|
||||
test('compiler requires a main method', () async {
|
||||
var errors = [];
|
||||
var errors = <DiagnosticMessage>[];
|
||||
var options = new CompilerOptions()..onDiagnostic = errors.add;
|
||||
await compileScript('a() => print("hi");', options: options);
|
||||
expect(errors.first.message, messageMissingMain.message);
|
||||
expect((errors.first as FormattedMessage).problemMessage,
|
||||
messageMissingMain.problemMessage);
|
||||
});
|
||||
|
||||
test('generated program contains source-info', () async {
|
||||
|
|
|
@ -23,7 +23,7 @@ void main() {
|
|||
for (int i = 0; i < Severity.values.length; i++) {
|
||||
Severity severity = Severity.values[i];
|
||||
Code code = new Code("MyCodeName");
|
||||
Message message = new Message(code, message: '');
|
||||
Message message = new Message(code, problemMessage: '');
|
||||
LocatedMessage locatedMessage1 =
|
||||
new LocatedMessage(Uri.parse("what:ever/fun_1.dart"), 117, 2, message);
|
||||
FormattedMessage formattedMessage2 = new FormattedMessage(
|
||||
|
|
|
@ -526,9 +526,9 @@ class ParserTestListenerWithMessageFormatting extends ParserTestListener {
|
|||
location,
|
||||
length,
|
||||
shortName,
|
||||
message.message));
|
||||
message.problemMessage));
|
||||
} else {
|
||||
errors.add(message.message);
|
||||
errors.add(message.problemMessage);
|
||||
}
|
||||
|
||||
super.handleRecoverableError(message, startToken, endToken);
|
||||
|
|
|
@ -323,7 +323,7 @@ class ProcessedOptionsTest {
|
|||
}
|
||||
|
||||
Future<void> test_getUriTranslator_noPackages() async {
|
||||
var errors = [];
|
||||
var errors = <DiagnosticMessage>[];
|
||||
// .packages file should be ignored.
|
||||
fileSystem
|
||||
.entityForUri(Uri.parse('org-dartlang-test:///.packages'))
|
||||
|
@ -335,7 +335,7 @@ class ProcessedOptionsTest {
|
|||
var processed = new ProcessedOptions(options: raw);
|
||||
var uriTranslator = await processed.getUriTranslator();
|
||||
expect(uriTranslator.packages.packages, isEmpty);
|
||||
expect(errors.single.message,
|
||||
expect((errors.single as FormattedMessage).problemMessage,
|
||||
startsWith(_stringPrefixOf(templateCantReadFile)));
|
||||
}
|
||||
|
||||
|
@ -343,13 +343,14 @@ class ProcessedOptionsTest {
|
|||
fileSystem
|
||||
.entityForUri(Uri.parse('org-dartlang-test:///foo.dart'))
|
||||
.writeAsStringSync('main(){}\n');
|
||||
var errors = [];
|
||||
var errors = <DiagnosticMessage>[];
|
||||
var raw = new CompilerOptions()
|
||||
..fileSystem = fileSystem
|
||||
..onDiagnostic = errors.add;
|
||||
var options = new ProcessedOptions(options: raw);
|
||||
var result = await options.validateOptions();
|
||||
expect(errors.single.message, messageMissingInput.message);
|
||||
expect((errors.single as FormattedMessage).problemMessage,
|
||||
messageMissingInput.problemMessage);
|
||||
expect(result, isFalse);
|
||||
}
|
||||
|
||||
|
@ -397,7 +398,7 @@ class ProcessedOptionsTest {
|
|||
.entityForUri(Uri.parse('org-dartlang-test:///foo.dart'))
|
||||
.writeAsStringSync('main(){}\n');
|
||||
var sdkRoot = Uri.parse('org-dartlang-test:///sdk/root');
|
||||
var errors = [];
|
||||
var errors = <DiagnosticMessage>[];
|
||||
var raw = new CompilerOptions()
|
||||
..sdkRoot = sdkRoot
|
||||
..fileSystem = fileSystem
|
||||
|
@ -405,7 +406,7 @@ class ProcessedOptionsTest {
|
|||
var options =
|
||||
new ProcessedOptions(options: raw, inputs: [Uri.parse('foo.dart')]);
|
||||
expect(await options.validateOptions(), isFalse);
|
||||
expect(errors.first.message,
|
||||
expect((errors.first as FormattedMessage).problemMessage,
|
||||
startsWith(_stringPrefixOf(templateSdkRootNotFound)));
|
||||
}
|
||||
|
||||
|
@ -433,7 +434,7 @@ class ProcessedOptionsTest {
|
|||
.entityForUri(Uri.parse('org-dartlang-test:///foo.dart'))
|
||||
.writeAsStringSync('main(){}\n');
|
||||
var sdkSummary = Uri.parse('org-dartlang-test:///sdk/root/outline.dill');
|
||||
var errors = [];
|
||||
var errors = <DiagnosticMessage>[];
|
||||
var raw = new CompilerOptions()
|
||||
..sdkSummary = sdkSummary
|
||||
..fileSystem = fileSystem
|
||||
|
@ -441,7 +442,7 @@ class ProcessedOptionsTest {
|
|||
var options =
|
||||
new ProcessedOptions(options: raw, inputs: [Uri.parse('foo.dart')]);
|
||||
expect(await options.validateOptions(), isFalse);
|
||||
expect(errors.single.message,
|
||||
expect((errors.single as FormattedMessage).problemMessage,
|
||||
startsWith(_stringPrefixOf(templateSdkSummaryNotFound)));
|
||||
}
|
||||
|
||||
|
@ -474,7 +475,7 @@ class ProcessedOptionsTest {
|
|||
fileSystem
|
||||
.entityForUri(Uri.parse('org-dartlang-test:///foo.dart'))
|
||||
.writeAsStringSync('main(){}\n');
|
||||
var errors = [];
|
||||
var errors = <DiagnosticMessage>[];
|
||||
var raw = new CompilerOptions()
|
||||
..sdkSummary = sdkSummary
|
||||
..fileSystem = fileSystem
|
||||
|
@ -482,14 +483,14 @@ class ProcessedOptionsTest {
|
|||
var options =
|
||||
new ProcessedOptions(options: raw, inputs: [Uri.parse('foo.dart')]);
|
||||
expect(await options.validateOptions(), isFalse);
|
||||
expect(errors.single.message,
|
||||
expect((errors.single as FormattedMessage).problemMessage,
|
||||
startsWith(_stringPrefixOf(templateSdkSummaryNotFound)));
|
||||
}
|
||||
|
||||
/// Returns the longest prefix of the text in a message template that doesn't
|
||||
/// mention a template argument.
|
||||
String _stringPrefixOf(Template template) {
|
||||
var messageTemplate = template.messageTemplate;
|
||||
var messageTemplate = template.problemMessageTemplate;
|
||||
var index = messageTemplate.indexOf('#');
|
||||
var prefix = messageTemplate.substring(0, index - 1);
|
||||
|
||||
|
|
|
@ -210,7 +210,7 @@ class DynamicVisitor extends StaticTypeVisitorBase {
|
|||
// add ' (allowed)' to an existing message!
|
||||
LocatedMessage locatedMessage = message.locatedMessage;
|
||||
String newMessageText =
|
||||
'${locatedMessage.messageObject.message} (allowed)';
|
||||
'${locatedMessage.messageObject.problemMessage} (allowed)';
|
||||
message = locatedMessage.withFormatting(
|
||||
format(
|
||||
new LocatedMessage(
|
||||
|
@ -218,8 +218,9 @@ class DynamicVisitor extends StaticTypeVisitorBase {
|
|||
locatedMessage.charOffset,
|
||||
locatedMessage.length,
|
||||
new Message(locatedMessage.messageObject.code,
|
||||
message: newMessageText,
|
||||
tip: locatedMessage.messageObject.tip,
|
||||
problemMessage: newMessageText,
|
||||
correctionMessage:
|
||||
locatedMessage.messageObject.correctionMessage,
|
||||
arguments: locatedMessage.messageObject.arguments)),
|
||||
Severity.warning,
|
||||
location:
|
||||
|
|
|
@ -18,7 +18,7 @@ void main() {
|
|||
String expected =
|
||||
" ${Flags.target}=${(targets.keys.toList()..sort()).join('|')}";
|
||||
MessageCode code = messageFastaUsageLong;
|
||||
if (!code.message.contains(expected)) {
|
||||
if (!code.problemMessage.contains(expected)) {
|
||||
throw "Error: ${code.name} in pkg/front_end/messages.yaml doesn't contain"
|
||||
" '$expected'.";
|
||||
}
|
||||
|
|
|
@ -107,7 +107,7 @@ ProcessedOptions analyzeCommandLine(String programName,
|
|||
final bool verbose = Options.verbose.read(parsedOptions);
|
||||
|
||||
if (help) {
|
||||
print(computeUsage(programName, verbose).message);
|
||||
print(computeUsage(programName, verbose).problemMessage);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
@ -335,7 +335,7 @@ Future<T> withGlobalOptions<T>(
|
|||
|
||||
return CompilerContext.runWithOptions<T>(options, (CompilerContext c) {
|
||||
if (problem != null) {
|
||||
print(computeUsage(programName, options.verbose).message);
|
||||
print(computeUsage(programName, options.verbose).problemMessage);
|
||||
PlainAndColorizedString formatted =
|
||||
c.format(problem.message.withoutLocation(), Severity.error);
|
||||
String formattedText;
|
||||
|
@ -355,9 +355,10 @@ Future<T> withGlobalOptions<T>(
|
|||
Message computeUsage(String programName, bool verbose) {
|
||||
String basicUsage = "Usage: $programName [options] dartfile\n";
|
||||
String? summary;
|
||||
String options =
|
||||
(verbose ? messageFastaUsageLong.message : messageFastaUsageShort.message)
|
||||
.trim();
|
||||
String options = (verbose
|
||||
? messageFastaUsageLong.problemMessage
|
||||
: messageFastaUsageShort.problemMessage)
|
||||
.trim();
|
||||
switch (programName) {
|
||||
case "outline":
|
||||
summary =
|
||||
|
@ -398,7 +399,7 @@ Future<T> runProtectedFromAbort<T>(Future<T> Function() action,
|
|||
try {
|
||||
return await action();
|
||||
} on DebugAbort catch (e) {
|
||||
print(e.message.message);
|
||||
print(e.message.problemMessage);
|
||||
|
||||
// DebugAbort should never happen in production code, so we want test.py to
|
||||
// treat this as a crash which is signalled by exiting with 255.
|
||||
|
|
|
@ -430,10 +430,10 @@ Template compileTemplate(String name, int? index, String? problemMessage,
|
|||
if (parameters.isEmpty && conversions.isEmpty && arguments.isEmpty) {
|
||||
// ignore: unnecessary_null_comparison
|
||||
if (problemMessage != null) {
|
||||
codeArguments.add('message: r"""$problemMessage"""');
|
||||
codeArguments.add('problemMessage: r"""$problemMessage"""');
|
||||
}
|
||||
if (correctionMessage != null) {
|
||||
codeArguments.add('tip: r"""$correctionMessage"""');
|
||||
codeArguments.add('correctionMessage: r"""$correctionMessage"""');
|
||||
}
|
||||
|
||||
return new Template("""
|
||||
|
@ -449,10 +449,11 @@ const MessageCode message$name =
|
|||
List<String> templateArguments = <String>[];
|
||||
// ignore: unnecessary_null_comparison
|
||||
if (problemMessage != null) {
|
||||
templateArguments.add('messageTemplate: r"""$problemMessage"""');
|
||||
templateArguments.add('problemMessageTemplate: r"""$problemMessage"""');
|
||||
}
|
||||
if (correctionMessage != null) {
|
||||
templateArguments.add('tipTemplate: r"""$correctionMessage"""');
|
||||
templateArguments
|
||||
.add('correctionMessageTemplate: r"""$correctionMessage"""');
|
||||
}
|
||||
|
||||
templateArguments.add("withArguments: _withArguments$name");
|
||||
|
@ -462,9 +463,10 @@ const MessageCode message$name =
|
|||
if (hasLabeler) {
|
||||
message += " + labeler.originMessages";
|
||||
}
|
||||
messageArguments.add("message: ${message}");
|
||||
messageArguments.add("problemMessage: ${message}");
|
||||
if (correctionMessage != null) {
|
||||
messageArguments.add("tip: ${interpolate(correctionMessage)}");
|
||||
messageArguments
|
||||
.add("correctionMessage: ${interpolate(correctionMessage)}");
|
||||
}
|
||||
messageArguments.add("arguments: { ${arguments.join(', ')} }");
|
||||
|
||||
|
|
|
@ -653,7 +653,7 @@ String _createParseErrorMessage(kernel.Source source, int position,
|
|||
location,
|
||||
endToken.charEnd - startToken.charOffset,
|
||||
source.importUri!.toString(),
|
||||
message.message);
|
||||
message.problemMessage);
|
||||
}
|
||||
|
||||
CommentString extractComments(CommentToken comment, String rawString) {
|
||||
|
|
Loading…
Reference in a new issue