Skip to content

CanonicalName.bindTo throwing 'filename is already bound' #32590

Closed
@bkonyi

Description

@bkonyi

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

Metadata

Metadata

Labels

P1A high priority bug; for example, a single project is unusable or has many test failuresfront-end-kernellegacy-area-front-endLegacy: Use area-dart-model instead.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions