Skip to content

Can't create a Visitor instance within BodyBuilder without breaking some service tests #32717

Open
@chloestefantsova

Description

@chloestefantsova

Here's how the issue can be reproduced.

Step 1. Apply the following patch

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 5021047a80..73b45a51ef 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -6,6 +6,8 @@ library fasta.body_builder;

 import 'dart:core' hide MapEntry;

+import 'package:kernel/visitor.dart' show Visitor;
+
 import '../constant_context.dart' show ConstantContext;

 import '../fasta_codes.dart' as fasta;
@@ -91,6 +93,8 @@ const noLocation = null;

 class BodyBuilder<Arguments> extends ScopeListener<JumpTarget>
     implements BuilderHelper<Arguments> {
+  final Visitor<dynamic> visitor = new Visitor<dynamic>();
+
   @override
   final KernelLibraryBuilder library;

Step 2. Build the runtime for Kernel

$ ./tools/build.py -m release -a x64 runtime_kernel

Step 3. Run the test

$ python tools/test.py -m release -c dartk service/type_arguments_test
Test configuration: dartk_vm_release_x64

FAILED: dartk-vm release_x64 service/type_arguments_test
Expected: Pass
Actual: RuntimeError

--- Command "vm" (took 02.000083s):
DART_CONFIGURATION=ReleaseX64 out/ReleaseX64/dart --preview_dart_2 --error_on_bad_type --error_on_bad_override --ignore-unrecognized-flags --packages=/usr/local/google/home/dmitr
yas/dart/sdk/.packages /usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/tests/service/type_arguments_test.dart

exit code:
255

stdout:
** Launching SERVICE_TEST_TESTEE=true out/ReleaseX64/dart -DDART_SERVICE_USE_AUTH=false --profiler --preview_dart_2 --error_on_bad_type --error_on_bad_override --ignore-unrecogni
zed-flags --packages=/usr/local/google/home/dmitryas/dart/sdk/.packages --enable-vm-service:0 /usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/tests/service/type_argu
ments_test.dart
>testee>out> Observatory listening on http://127.0.0.1:43723/
** Signaled to run test queries on http://127.0.0.1:43723/
>testee>out>
Loading VM...
Done loading VM
Running type_arguments_test.dart [1/1]
** Killing script
Unexpected exception in service tests: type 'String' is not a subtype of type 'bool' of 'value' where
  String is from dart:core
  bool is from dart:core

#0      __InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.[]= (dart:collection/runtime/libcompact_hash.dart)
#1      Isolate.invokeRpcNoUpgrade (file:///usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/lib/src/service/object.dart:1498:11)
#2      Isolate.invokeRpc (file:///usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/lib/src/service/object.dart:1503:12)
#3      Isolate.getTypeArgumentsList (file:///usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/lib/src/service/object.dart:1951:12)
#4      tests.<anonymous closure> (file:///usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/tests/service/type_arguments_test.dart:12:15)
#5      _ServiceTesterRunner.run.<anonymous closure>.<anonymous closure> (file:///usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/tests/service/test_helper.dart:331:2
3)
<asynchronous suspension>
#6      _rootRunUnary (dart:async/zone.dart:1134:38)
#7      _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#8      _FutureListener.handleValue (dart:async/future_impl.dart:129:18)
#9      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:633:45)
#10     Future._propagateToListeners (dart:async/future_impl.dart:662:32)
#11     Future._completeWithValue (dart:async/future_impl.dart:477:5)
#12     Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:507:7)
#13     _rootRun (dart:async/zone.dart:1126:13)
#14     _CustomZone.run (dart:async/zone.dart:1023:19)
#15     _CustomZone.runGuarded (dart:async/zone.dart:925:7)
#16     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:965:23)
#17     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#18     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#19     _runPendingImmediateCallback (dart:isolate/runtime/libisolate_patch.dart:113:13)
#20     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:166:5)

stderr:
Unhandled exception:
type 'String' is not a subtype of type 'bool' of 'value' where
  String is from dart:core
  bool is from dart:core

#0      __InternalLinkedHashMap&_HashVMBase&MapMixin&_LinkedHashMapMixin.[]= (dart:collection/runtime/libcompact_hash.dart)
#1      Isolate.invokeRpcNoUpgrade (file:///usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/lib/src/service/object.dart:1498:11)
#2      Isolate.invokeRpc (file:///usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/lib/src/service/object.dart:1503:12)
#3      Isolate.getTypeArgumentsList (file:///usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/lib/src/service/object.dart:1951:12)
#4      tests.<anonymous closure> (file:///usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/tests/service/type_arguments_test.dart:12:15)
#5      _ServiceTesterRunner.run.<anonymous closure>.<anonymous closure> (file:///usr/local/google/home/dmitryas/dart/sdk/runtime/observatory/tests/service/test_helper.dart:331:2
3)
<asynchronous suspension>
#6      _rootRunUnary (dart:async/zone.dart:1134:38)
#7      _CustomZone.runUnary (dart:async/zone.dart:1031:19)
#8      _FutureListener.handleValue (dart:async/future_impl.dart:129:18)
#9      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:633:45)
#10     Future._propagateToListeners (dart:async/future_impl.dart:662:32)
#11     Future._completeWithValue (dart:async/future_impl.dart:477:5)
#12     Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:507:7)
#13     _rootRun (dart:async/zone.dart:1126:13)
#14     _CustomZone.run (dart:async/zone.dart:1023:19)
#15     _CustomZone.runGuarded (dart:async/zone.dart:925:7)
#16     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:965:23)
#17     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#18     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#19     _runPendingImmediateCallback (dart:isolate/runtime/libisolate_patch.dart:113:13)
#20     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:166:5)

--- Re-run this test:
python tools/test.py -m release -c dartk service/type_arguments_test

[00:02 | 100% | +    0 | -    1]

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions