Index: pkg/front_end/lib/src/fasta/kernel/kernel_target.dart |
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart |
index 3ca9a1fd9a9676ff7eed822b90572874221ea23c..c976b9323bc5eed32cde456d2dd29fb08c09b0b0 100644 |
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart |
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart |
@@ -9,6 +9,7 @@ import 'dart:async' show Future; |
import 'package:kernel/ast.dart' |
show |
Arguments, |
+ Block, |
CanonicalName, |
Class, |
Constructor, |
@@ -30,6 +31,7 @@ import 'package:kernel/ast.dart' |
ProcedureKind, |
Program, |
Source, |
+ Statement, |
StringLiteral, |
SuperInitializer, |
Throw, |
@@ -45,11 +47,7 @@ import '../../../file_system.dart' show FileSystem; |
import '../compiler_context.dart' show CompilerContext; |
import '../deprecated_problems.dart' |
- show |
- deprecated_formatUnexpected, |
- deprecated_InputError, |
- reportCrash, |
- resetCrashReporting; |
+ show deprecated_InputError, reportCrash, resetCrashReporting; |
import '../dill/dill_target.dart' show DillTarget; |
@@ -62,6 +60,8 @@ import '../messages.dart' |
import '../problems.dart' show unhandled; |
+import '../severity.dart' show Severity; |
+ |
import '../source/source_class_builder.dart' show SourceClassBuilder; |
import '../source/source_loader.dart' show SourceLoader; |
@@ -103,7 +103,7 @@ class KernelTarget extends TargetImplementation { |
Program program; |
- final List<String> errors = <String>[]; |
+ final List<LocatedMessage> errors = <LocatedMessage>[]; |
final TypeBuilder dynamicType = |
new KernelNamedTypeBuilder("dynamic", null, -1, null); |
@@ -218,8 +218,8 @@ class KernelTarget extends TargetImplementation { |
void handleInputError(deprecated_InputError error, {bool isFullProgram}) { |
if (error != null) { |
- String message = error.deprecated_format(); |
- print(message); |
+ LocatedMessage message = deprecated_InputError.toMessage(error); |
+ context.report(message, Severity.error); |
errors.add(message); |
} |
program = erroneousProgram(isFullProgram); |
@@ -309,10 +309,8 @@ class KernelTarget extends TargetImplementation { |
} |
List<Expression> expressions = <Expression>[]; |
for (LocatedMessage error in recoverableErrors) { |
- String message = deprecated_formatUnexpected( |
- error.uri, error.charOffset, error.message); |
- errors.add(message); |
- expressions.add(new StringLiteral(message)); |
+ errors.add(error); |
+ expressions.add(new StringLiteral(context.format(error, Severity.error))); |
} |
mainLibrary.library.addMember(new Field(new Name("#errors"), |
initializer: new ListLiteral(expressions, isConst: true), |
@@ -333,8 +331,9 @@ class KernelTarget extends TargetImplementation { |
KernelProcedureBuilder mainBuilder = new KernelProcedureBuilder(null, 0, |
null, "main", null, null, ProcedureKind.Method, library, -1, -1, -1); |
library.addBuilder(mainBuilder.name, mainBuilder, -1); |
- mainBuilder.body = new ExpressionStatement( |
- new Throw(new StringLiteral("${errors.join('\n')}"))); |
+ mainBuilder.body = new Block(new List<Statement>.from(errors.map( |
+ (LocatedMessage message) => new ExpressionStatement(new Throw( |
+ new StringLiteral(context.format(message, Severity.error))))))); |
} |
library.build(loader.coreLibrary); |
return link(<Library>[library.library]); |
@@ -633,8 +632,7 @@ class KernelTarget extends TargetImplementation { |
} |
void verify() { |
- var verifyErrors = verifyProgram(program); |
- errors.addAll(verifyErrors.map((error) => error.message)); |
+ errors.addAll(verifyProgram(program)); |
ticker.logMs("Verified program"); |
} |