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 6d929ed07cf6d0da5336ea7299a3c6c6e2427709..59722bfa24ae88faff8d1c862df3de0eb0eed250 100644 |
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart |
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart |
@@ -101,7 +101,7 @@ class KernelTarget extends TargetImplementation { |
SourceLoader<Library> loader; |
Program _program; |
- final List errors = []; |
+ final List<String> errors = <String>[]; |
Siggi Cherem (dart-lang)
2017/05/17 20:05:35
btw - in the future I would like to pass in some k
scheglov
2017/05/17 20:58:08
Which one? :-)
Sometimes these objects are strings
Siggi Cherem (dart-lang)
2017/05/17 21:08:31
likely a new one :)
maybe FastaMessage or some ne
ahe
2017/05/19 10:47:16
What's the purpose of this change?
scheglov
2017/05/19 15:53:53
I think typed collections are better then untyped.
ahe
2017/05/22 09:14:10
I'd appreciate if you tried to gather information
|
final TypeBuilder dynamicType = |
new KernelNamedTypeBuilder("dynamic", null, -1, null); |
@@ -119,8 +119,9 @@ class KernelTarget extends TargetImplementation { |
void addError(file, int charOffset, String message) { |
Uri uri = file is String ? Uri.parse(file) : file; |
InputError error = new InputError(uri, charOffset, message); |
- print(error.format()); |
- errors.add(error); |
+ String formatterMessage = error.format(); |
+ print(formatterMessage); |
+ errors.add(formatterMessage); |
} |
SourceLoader<Library> createLoader() => |
@@ -275,7 +276,7 @@ class KernelTarget extends TargetImplementation { |
} |
@override |
- Future<Program> buildProgram() async { |
+ Future<Program> buildProgram({bool verify: false}) async { |
if (loader.first == null) return null; |
if (errors.isNotEmpty) { |
return handleInputError(null, null, isFullProgram: true); |
@@ -287,6 +288,7 @@ class KernelTarget extends TargetImplementation { |
loader.finishNativeMethods(); |
runBuildTransformations(); |
+ if (verify) this.verify(); |
errors.addAll(loader.collectCompileTimeErrors().map((e) => e.format())); |
if (errors.isNotEmpty) { |
return handleInputError(null, null, isFullProgram: true); |
@@ -299,10 +301,9 @@ class KernelTarget extends TargetImplementation { |
} |
} |
- Future<Null> writeProgram(Uri uri, {bool verify: false}) async { |
+ Future<Null> writeProgram(Uri uri) async { |
if (loader.first == null) return null; |
try { |
- if (verify) this.verify(); |
await writeLinkedProgram(uri, _program, isFullProgram: true); |
} on InputError catch (e) { |
return handleInputError(uri, e, isFullProgram: true); |
@@ -715,7 +716,8 @@ class KernelTarget extends TargetImplementation { |
} |
void verify() { |
- errors.addAll(verifyProgram(_program)); |
+ var verifyErrors = verifyProgram(_program); |
+ errors.addAll(verifyErrors.map((error) => error.toString())); |
Siggi Cherem (dart-lang)
2017/05/17 20:05:35
minor style suggestion: I generally prefer '$error
scheglov
2017/05/17 20:58:08
Done.
|
ticker.logMs("Verified program"); |
} |
} |