Closed
Description
I'm trying to make sure that Dart 2 has the same behavior for hot reload as Dart 1, and as part of that we need to be able to reload kernel which contains errors. I've got everything wired up in this CL to pass the compiled kernel back to the VM after a compilation error. Most tests seem to be working, but I'm running into issues to do with the file already being bound when trying to serialize the component (here's a sample stacktrace):
DART_CONFIGURATION=ReleaseX64 DART_USE_SDK=1 pkg/vm/tool/dart2 --sync-async --ignore-unrecognized-flags --packages=/b/s/w/ir/.packages /b/s/w/ir/xcodebuild/ReleaseX64/generated_tests/language_2/toplevel_collision1_test_00.dart
exit code:
252
stderr:
xcodebuild/ReleaseX64/generated_tests/language_2/toplevel_collision1_test_00.dart:7:5: Error: Duplicated definition of 'x'.
get x => 200; // //# 00: compile-time error
^
xcodebuild/ReleaseX64/generated_tests/language_2/toplevel_collision1_test_00.dart:5:1: Error: Duplicated name: x
int x = 100;
^
root::file:///b/s/w/ir/xcodebuild/ReleaseX64/generated_tests/language_2/toplevel_collision1_test_00.dart is already bound
#0 CanonicalName.bindTo (package:kernel/canonical_name.dart:154)
#1 LimitedBinaryPrinter.computeCanonicalNames (package:kernel/binary/limited_ast_to_binary.dart:35)
#2 BinaryPrinter.writeComponentFile (package:kernel/binary/ast_to_binary.dart:292)
#3 serializeComponent (package:front_end/src/fasta/kernel/utils.dart:57)
#4 _processLoadRequest (file:///b/s/w/ir/cache/builder/sdk/pkg/vm/bin/kernel_service.dart:315)
<asynchronous suspension>
#5 _RawReceivePortImpl._handleMessage (dart:isolate-patch/dart:isolate/isolate_patch.dart:165)
List of tests I've seen this exception:
- service/bad_reload_test
- language_2/toplevel_collision1_test_00