| Index: pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| index 79f2c9bb7535d40ba9d1f01186cd34daccf1c7fa..5112edbd1f0d9b870c6392f3fe2dfad52f40df3f 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| @@ -25,7 +25,7 @@ import '../parser/dart_vm_native.dart' show skipNativeClause;
|
| import '../scanner/token.dart'
|
| show BeginGroupToken, Token, isBinaryOperator, isMinusOperator;
|
|
|
| -import '../errors.dart' show internalError, printUnexpected;
|
| +import '../errors.dart' show formatUnexpected, internalError;
|
|
|
| import '../source/scope_listener.dart'
|
| show JumpTargetKind, NullValue, ScopeListener;
|
| @@ -112,8 +112,6 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
|
|
| bool isFirstIdentifier = false;
|
|
|
| - bool hasParserError = false;
|
| -
|
| bool inInitializer = false;
|
|
|
| bool inCatchClause = false;
|
| @@ -143,6 +141,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| isDartLibrary = library.uri.scheme == "dart",
|
| super(scope);
|
|
|
| + bool get hasParserError => recoverableErrors.isNotEmpty;
|
| +
|
| bool get inConstructor {
|
| return functionNestingLevel == 0 && member is KernelConstructorBuilder;
|
| }
|
| @@ -2204,12 +2204,11 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
|
|
| @override
|
| void handleRecoverableError(Token token, ErrorKind kind, Map arguments) {
|
| + bool silent = hasParserError;
|
| super.handleRecoverableError(token, kind, arguments);
|
| - if (!hasParserError) {
|
| - printUnexpected(uri, recoverableErrors.last.beginOffset,
|
| - '${recoverableErrors.last.kind}');
|
| - }
|
| - hasParserError = true;
|
| + addCompileTimeError(recoverableErrors.last.beginOffset,
|
| + '${recoverableErrors.last.kind} $arguments',
|
| + silent: silent);
|
| }
|
|
|
| @override
|
| @@ -2231,7 +2230,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
|
|
| @override
|
| Expression buildCompileTimeError(error, [int charOffset = -1]) {
|
| - String message = printUnexpected(uri, charOffset, error);
|
| + addCompileTimeError(charOffset, error);
|
| + String message = formatUnexpected(uri, charOffset, error);
|
| Builder constructor = library.loader.getCompileTimeError();
|
| return new Throw(buildStaticInvocation(constructor.target,
|
| new Arguments(<Expression>[new StringLiteral(message)]),
|
| @@ -2270,8 +2270,9 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| logEvent("SymbolVoid");
|
| }
|
|
|
| - dynamic addCompileTimeError(int charOffset, String message) {
|
| - return library.addCompileTimeError(charOffset, message, uri);
|
| + dynamic addCompileTimeError(int charOffset, String message,
|
| + {bool silent: false}) {
|
| + return library.addCompileTimeError(charOffset, message, fileUri: uri);
|
| }
|
|
|
| @override
|
|
|