# Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.

[ $compiler == dart2js ]
sync_generator2_test/07: MissingCompileTimeError # Issue 22324
sync_generator2_test/08: MissingCompileTimeError # Issue 22324
sync_generator2_test/10: MissingCompileTimeError # Issue 22324
getter_setter_in_lib_test: Fail # Issue 23288

async_star_cancel_while_paused_test: RuntimeError # Issue 22853
async_star_await_pauses_test: Fail, Timeout # Issue 22853
tearoff_basic_test: Skip # Tear-off not supported
tearoff_constructor_basic_test: Skip # Tear-off not supported

try_catch_on_syntax_test/10: Fail # Issue 19823
try_catch_on_syntax_test/11: Fail # Issue 19823

call_function_apply_test: RuntimeError # Issue 23873

[ $compiler == dart2js && $runtime == jsshell ]
await_for_test: Skip # Jsshell does not provide periodic timers, Issue 7728
async_star_test: RuntimeError # Jsshell does not provide non-zero timers, Issue 7728

[ $compiler == dart2js ]
invocation_mirror_empty_arguments_test: Fail # Issue 24331
nan_identical_test: Fail # Issue 11551
symbol_literal_test/*: Fail # Issue 21825
constructor_duplicate_final_test/01: Fail # Issue 13363
constructor_duplicate_final_test/02: Fail # Issue 13363
override_inheritance_mixed_test/08: Fail # Issue 18124
override_inheritance_mixed_test/09: Fail # Issue 18124
bad_constructor_test/05: CompileTimeError # Issue 13669
full_stacktrace1_test: Pass, RuntimeError # Issue 12698
full_stacktrace2_test: Pass, RuntimeError # Issue 12698
full_stacktrace3_test: Pass, RuntimeError # Issue 12698
stacktrace_test: Pass, RuntimeError # # Issue 12698
stacktrace_rethrow_nonerror_test: Pass, RuntimeError # Issue 12698
stacktrace_rethrow_error_test: Pass, RuntimeError # Issue 12698
type_variable_conflict_test/01: Fail # Issue 13702
type_variable_conflict_test/02: Fail # Issue 13702
type_variable_conflict_test/03: Fail # Issue 13702
type_variable_conflict_test/04: Fail # Issue 13702
type_variable_conflict_test/05: Fail # Issue 13702
type_variable_conflict_test/06: Fail # Issue 13702
mixin_forwarding_constructor4_test/01: MissingCompileTimeError # Issue 15101
mixin_forwarding_constructor4_test/02: MissingCompileTimeError # Issue 15101
mixin_forwarding_constructor4_test/03: MissingCompileTimeError # Issue 15101
mixin_super_constructor_named_test/01: Fail # Issue 15101
mixin_super_constructor_positionals_test/01: Fail # Issue 15101
mixin_super_test: CompileTimeError # Issue 23773
mixin_super_bound2_test: CompileTimeError # Issue 23773

ref_before_declaration_test/00: MissingCompileTimeError
ref_before_declaration_test/01: MissingCompileTimeError
ref_before_declaration_test/02: MissingCompileTimeError
ref_before_declaration_test/03: MissingCompileTimeError
ref_before_declaration_test/04: MissingCompileTimeError
ref_before_declaration_test/05: MissingCompileTimeError
ref_before_declaration_test/06: MissingCompileTimeError

regress_22976_test/01: CompileTimeError # Issue 23132
regress_22976_test/02: CompileTimeError # Issue 23132

if_null_assignment_behavior_test/13: Crash # Issue 23491
if_null_assignment_behavior_test/14: Crash # Issue 23491

if_null_assignment_behavior_test/29: Crash # Issue 23611
prefix_assignment_test/01: Crash # Issue 23611
prefix_assignment_test/02: Crash # Issue 23611
prefix_identifier_reference_test/05: Crash # Issue 23611

const_error_multiply_initialized_test/02: CompileTimeError # Issue 23618
const_error_multiply_initialized_test/04: CompileTimeError # Issue 23618

# VM specific tests that should not be run by dart2js.
vm/*: Skip # Issue 12699

multiline_newline_test/01: CompileTimeError # Issue 23888
multiline_newline_test/02: CompileTimeError # Issue 23888
multiline_newline_test/03: CompileTimeError # Issue 23888
multiline_newline_test/04: MissingCompileTimeError # Issue 23888
multiline_newline_test/05: MissingCompileTimeError # Issue 23888
multiline_newline_test/06: MissingCompileTimeError # Issue 23888
multiline_newline_test/none: RuntimeError # Issue 23888

[ $compiler == dart2js && $checked ]
type_variable_bounds_test/02: Fail # Issue 12702
type_variable_bounds2_test/01: Fail # Issue 12702
type_variable_bounds2_test/04: Fail # Issue 12702
type_variable_bounds2_test/06: Pass # Issue 12702 (pass for the wrong reasons).
type_variable_bounds3_test/00: Fail # Issue 12702
closure_type_test: Fail # Issue 12745
malbounded_redirecting_factory_test/02: Fail # Issue 12825
malbounded_redirecting_factory_test/03: Fail # Issue 12825
malbounded_redirecting_factory2_test/02: Fail # Issue 12825
malbounded_redirecting_factory2_test/03: Fail # Issue 12825
malbounded_instantiation_test/01: Fail # Issue 12702
malbounded_type_cast_test: Fail # Issue 14121
malbounded_type_cast2_test: Fail # Issue 14121
malbounded_type_test_test/03: Fail # Issue 14121
malbounded_type_test_test/04: Fail # Issue 14121
malbounded_type_test2_test: Fail # Issue 14121
default_factory2_test/01: Fail # Issue 14121

[ $compiler == dart2js && $unchecked ]
type_checks_in_factory_method_test: RuntimeError # Issue 12746
assertion_test: RuntimeError # Issue 12748
generic_test: RuntimeError, OK
map_literal4_test: RuntimeError, OK # Checked mode required.
named_parameters_type_test/01: MissingRuntimeError, OK
named_parameters_type_test/02: MissingRuntimeError, OK
named_parameters_type_test/03: MissingRuntimeError, OK
positional_parameters_type_test/01: MissingRuntimeError, OK
positional_parameters_type_test/02: MissingRuntimeError, OK
issue13474_test: RuntimeError, OK

[ $compiler == dart2js && $unchecked && $minified ]
f_bounded_quantification5_test: Fail, OK # Issue 12605

[ $compiler == dart2js && $minified ]
cyclic_type_test/0*: Fail # Issue 12605
cyclic_type2_test: Fail # Issue 12605
f_bounded_quantification4_test: Fail, OK # Issue 12605
mixin_generic_test: Fail # Issue 12605
mixin_mixin2_test: Fail # Issue 12605
mixin_mixin3_test: Fail # Issue 12605
mixin_mixin4_test: Fail # Issue 12605
mixin_mixin5_test: Fail # Issue 12605
mixin_mixin6_test: Fail # Issue 12605
mixin_mixin_bound_test: RuntimeError # Issue 12605
mixin_mixin_bound2_test: RuntimeError # Issue 12605
symbol_conflict_test: RuntimeError # Issue 23857

[ $compiler == dart2js ]
async_await_syntax_test/a05h: Fail # 23716
async_await_syntax_test/c11a: Fail # 23716
async_await_syntax_test/c11b: Fail # 23716

malformed_test/none: Fail # Expect failure in lib/_internal/js_runtime/lib/preambles/d8.js

type_variable_conflict2_test/01: RuntimeError # Issue 19725

branch_canonicalization_test: RuntimeError # Issue 638.
identical_closure2_test: RuntimeError # Issue 1533, Issue 12596
integer_division_by_zero_test: RuntimeError # Issue 8301
built_in_identifier_prefix_test: CompileTimeError # Issue 6972
number_identity2_test: RuntimeError # Issue 12596
double_int_to_string_test: RuntimeError # Issue 1533
mint_arithmetic_test: RuntimeError # Issue 1533
left_shift_test: RuntimeError # Issue 1533
regress_24283_test: RuntimeError # Issue 1533
bad_override_test/01: CompileTimeError # Issue 11496
bad_override_test/02: CompileTimeError # Issue 11496
constructor_named_arguments_test/01: CompileTimeError # Issue 5519
not_enough_positional_arguments_test/01: CompileTimeError # Issue 12838
not_enough_positional_arguments_test/02: CompileTimeError # Issue 12838
not_enough_positional_arguments_test/05: CompileTimeError # Issue 12838
metadata_test: CompileTimeError # Issue 5841
infinity_test: RuntimeError # Issue 4984
mixin_mixin2_test: RuntimeError # Issue 13109.
mixin_mixin3_test: RuntimeError # Issue 13109.
mixin_mixin7_test: RuntimeError # Issue 13109.
mixin_regress_13688_test: RuntimeError # Issue 13109.
modulo_test: RuntimeError # Issue 15246
truncdiv_test: RuntimeError # Issue 15246
invocation_mirror2_test: RuntimeError # Issue 6490 (wrong retval).
generic_closure_test: RuntimeError # Issue 12605
const_switch_test/02: RuntimeError # Issue 17960
const_switch_test/04: RuntimeError # Issue 17960

const_dynamic_type_literal_test/02: CompileTimeError # Issue 23009
const_dynamic_type_literal_test/03: CompileTimeError # Issue 23009

# Compilation errors.
method_override5_test: RuntimeError # Issue 12809
external_test/10: CompileTimeError # Issue 12887
external_test/13: CompileTimeError # Issue 12887
external_test/20: CompileTimeError # Issue 12887
list_literal4_test: RuntimeError # Issue 12890
built_in_identifier_test/01: CompileTimeError # Issue 13022

scope_variable_test/01: MissingCompileTimeError # Issue 13016

numbers_test: RuntimeError, OK # Issue 1533
canonical_const2_test: RuntimeError, OK # Issue 1533
bit_operations_test: RuntimeError, OK # Issue 1533
expect_test: RuntimeError, OK # Issue 13080

[ $compiler == dart2js && $runtime == none ]
*: Fail, Pass # TODO(ahe): Triage these tests.

[ $compiler == dart2js && $runtime == chrome && $system == macos ]
await_future_test: Pass, Timeout # Issue 22695.
async_await_test/none: Pass, Timeout # Issue 22695.
async_await_test/02: Pass, Timeout # Issue 22695.
async_await_test/03: Pass, Timeout # Issue 22695.

[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim)]
round_test: Fail, OK # Common JavaScript engine Math.round bug.

[ $compiler == dart2js && $runtime == ff ]
round_test: Pass, Fail, OK # Fixed in ff 35. Common JavaScript engine Math.round bug.

[ $compiler == dart2js && ($runtime == safari || $runtime == safarimobilesim)]
# Safari codegen bug, fixed on some versions of Safari 7.1 (Version 7.1 (9537.85.10.17.1))
call_through_getter_test: Fail, OK

[ $compiler == dart2js && $runtime == chromeOnAndroid ]
override_field_test/02: Pass, Slow # TODO(kasperl): Please triage.

[ $minified ]
stack_trace_test: Fail, OK # Stack trace not preserved in minified code.
regress_21795_test: RuntimeError # Issue 12605

[ $compiler == dart2js && $runtime == d8 && $system == windows ]
# Detection of d8 runtime does not work on Windows so the runtime result is
# unreliable; at the time of writing, 32 passed, 31 failed with runtime error.
# Marked with Pass,RuntimeError to avoid undetected compile-time failures.
*deferred*: Pass,RuntimeError # Issue 17458
cha_deopt*: Pass,RuntimeError # Issue 17458
regress_22443_test: Pass,RuntimeError # Issue 17458

[ $compiler == dart2js && $cps_ir == false ]
generic_field_mixin4_test: Crash # Issue 18651
generic_field_mixin5_test: Crash # Issue 18651
many_method_calls_test: Crash # Stack overflow in HGraphVisitor.visitPostDominatorTree.visitBasicBlockAndSuccessors

[ $compiler == dart2js && ($runtime == d8 || $runtime == jsshell) ]
issue23244_test: RuntimeError # 23244

[ $compiler == dart2js && $cps_ir ]
async_await_syntax_test/a03a: Crash # (a03a()async*{}): cannot handle sync*/async* functions
async_await_syntax_test/a03b: Crash # (a03b()async*{}): cannot handle sync*/async* functions
async_await_syntax_test/a06a: Crash # (await for(var o in st){}): await for
async_await_syntax_test/a09a: Crash # (a09a()async*{yield 0;}): cannot handle sync*/async* functions
async_await_syntax_test/a10a: Crash # (a10a()async*{yield* [] ;}): cannot handle sync*/async* functions
async_await_syntax_test/a11d: Crash # (get async async*{}): cannot handle sync*/async* functions
async_await_syntax_test/b03a: Crash # (b03a()async*{}): cannot handle sync*/async* functions
async_await_syntax_test/b06a: Crash # (await for(var o in st){}): await for
async_await_syntax_test/b09a: Crash # (b09a()async*{yield 0;}): cannot handle sync*/async* functions
async_await_syntax_test/b10a: Crash # (b10a()async*{yield* [] ;}): cannot handle sync*/async* functions
async_await_syntax_test/b11d: Crash # (get async async*{}): cannot handle sync*/async* functions
async_await_syntax_test/c03a: Crash # (c03a()async*{}): cannot handle sync*/async* functions
async_await_syntax_test/c06a: Crash # (await for(var o in st){}): await for
async_await_syntax_test/c09a: Crash # (c09a()async*{yield 0;}): cannot handle sync*/async* functions
async_await_syntax_test/c10a: Crash # (c10a()async*{yield* [] ;}): cannot handle sync*/async* functions
async_await_syntax_test/d03a: Crash # (()async*{}): cannot handle sync*/async* functions
async_await_syntax_test/d06a: Crash # (await for(var o in st){}): await for
async_await_syntax_test/d09a: Crash # (()async*{yield 0;}): cannot handle sync*/async* functions
async_await_syntax_test/d10a: Crash # (()async*{yield* [] ;}): cannot handle sync*/async* functions
async_await_test/02: Crash # (switch (v){label:ca...  continue to a labeled switch case
async_await_test/03: Crash # (switch (v){label:ca...  continue to a labeled switch case
async_await_test/none: Crash # (switch (v){label:ca...  continue to a labeled switch case
async_or_generator_return_type_stacktrace_test/02: Crash # (void badReturnTypeAsyncStar()async*{}): cannot handle sync*/async* functions
async_return_types_test/nestedFuture: Crash #  cannot handle sync*/async* functions
async_return_types_test/none: Crash # cannot handle sync*/async* functions
async_return_types_test/tooManyTypeParameters: Crash # cannot handle sync*/async* functions
async_return_types_test/wrongReturnType: Crash # cannot handle sync*/async* functions
async_return_types_test/wrongTypeParameter: Crash # cannot handle sync*/async* functions
async_star_await_pauses_test: Crash # (await for(var i in ...  await for
async_star_cancel_and_throw_in_finally_test: Crash # (foo()async*{try {in...  cannot handle sync*/async* functions
async_star_cancel_while_paused_test: Crash # (f()async*{list.add(...  cannot handle sync*/async* functions
async_star_regression_2238_test: Crash # (f()async*{label1:label2:yield 0;}): cannot handle sync*/async* functions
async_star_regression_23116_test: Crash # (Stream<int> foo(Com...  cannot handle sync*/async* functions
async_star_regression_fisk_test: Crash # (fisk()async*{res.ad...  cannot handle sync*/async* functions
async_star_stream_take_test: Crash # (Stream makeStream(i...  cannot handle sync*/async* functions
async_star_take_reyield_test: Crash # (fivePartialSums(Str...  cannot handle sync*/async* functions
async_star_test: Crash # (f()async*{}): cannot handle sync*/async* functions
async_this_bound_test: RuntimeError # Cannot read property 'set$f' of undefined
asyncstar_concat_test: Crash # (concat(a,b)async*{yield* a;yield* b;}): cannot handle sync*/async* functions
asyncstar_throw_in_catch_test: Crash # (foo4(Tracer tracer)...  cannot handle sync*/async* functions
asyncstar_yield_test: Crash # (Stream<int> foo4()a...  cannot handle sync*/async* functions
asyncstar_yieldstar_test: Crash # (foo2(Stream subStream)async*{yield* subStream;}): cannot handle sync*/async* functions
await_for_cancel_test: Crash # (await for(var x in controller.stream){for(int j=0;j<10;j++ ){if(j==5)continue outer;}}): await for
await_for_test: Crash # (await for(var x in infiniteStream()){i++ ;if(i>10)break;t4.record(x);}): await for
await_for_use_local_test: Crash # (await for(var v in s){accum+= v;}): await for
await_future_test: RuntimeError # Cannot read property '_await_future_test$_box_0' of undefined
await_postfix_expr_test: RuntimeError # Please triage this failure.
await_regression_test: RuntimeError # "Obelix".then$1 is not a function
await_test: RuntimeError # Cannot read property '$add' of undefined
cha_deopt1_test: Crash # (d.make_u()): deferred access is not implemented
cha_deopt2_test: Crash # (d.make_u()): deferred access is not implemented
cha_deopt3_test: Crash # (d.make_u()): deferred access is not implemented
closure_in_constructor_test: RuntimeError # Please triage this failure.
closures_initializer_test: RuntimeError # Please triage this failure.
constructor12_test: RuntimeError # Please triage this failure.
crash_6725_test/01: Crash # unsupported operation on erroneous element
cyclic_default_values_test: RuntimeError # Z.cyclic_default_values_test__foo$closure is not a function
deferred_call_empty_before_load_test: Crash # (lib1.thefun()): deferred access is not implemented
deferred_closurize_load_library_test: RuntimeError # D.loadLibrary is not a function
deferred_constant_list_test: RuntimeError # K.loadLibrary is not a function
deferred_constraints_constants_test/none: RuntimeError # S.loadLibrary is not a function
deferred_constraints_constants_test/reference_after_load: RuntimeError # G.loadLibrary is not a function
deferred_constraints_type_annotation_test/as_operation: RuntimeError # Z.loadLibrary is not a function
deferred_constraints_type_annotation_test/catch_check: RuntimeError # D.loadLibrary is not a function
deferred_constraints_type_annotation_test/is_check: RuntimeError # L.loadLibrary is not a function
deferred_constraints_type_annotation_test/new: RuntimeError # R.loadLibrary is not a function
deferred_constraints_type_annotation_test/new_before_load: RuntimeError # K.loadLibrary is not a function
deferred_constraints_type_annotation_test/new_generic1: RuntimeError # R.loadLibrary is not a function
deferred_constraints_type_annotation_test/new_generic2: RuntimeError # X.loadLibrary is not a function
deferred_constraints_type_annotation_test/new_generic3: RuntimeError # K.loadLibrary is not a function
deferred_constraints_type_annotation_test/none: RuntimeError # D.loadLibrary is not a function
deferred_constraints_type_annotation_test/static_method: RuntimeError # F.loadLibrary is not a function
deferred_constraints_type_annotation_test/type_annotation1: RuntimeError # K.loadLibrary is not a function
deferred_constraints_type_annotation_test/type_annotation_generic1: RuntimeError # T.loadLibrary is not a function
deferred_constraints_type_annotation_test/type_annotation_generic2: RuntimeError # Q.loadLibrary is not a function
deferred_constraints_type_annotation_test/type_annotation_generic3: RuntimeError # Z.loadLibrary is not a function
deferred_constraints_type_annotation_test/type_annotation_generic4: RuntimeError # Q.loadLibrary is not a function
deferred_constraints_type_annotation_test/type_annotation_non_deferred: RuntimeError # R.loadLibrary is not a function
deferred_constraints_type_annotation_test/type_annotation_null: RuntimeError # Z.loadLibrary is not a function
deferred_constraints_type_annotation_test/type_annotation_top_level: RuntimeError # U.loadLibrary is not a function
deferred_function_type_test: RuntimeError # N.loadLibrary is not a function
deferred_global_test: RuntimeError # Y.loadLibrary is not a function
deferred_inlined_test: Crash # (lib.foo()): deferred access is not implemented
deferred_load_constants_test/none: Crash # (foo.toplevel): deferred access is not implemented
deferred_load_inval_code_test: Crash # (d.foo()): deferred access is not implemented
deferred_load_library_wrong_args_test/none: RuntimeError # Y.loadLibrary is not a function
deferred_mixin_test: RuntimeError # X.loadLibrary is not a function
deferred_no_such_method_test: RuntimeError # D.loadLibrary is not a function
deferred_not_loaded_check_test: Crash # (lib.closure(sideEffect())): deferred access is not implemented
deferred_only_constant_test: RuntimeError # O.loadLibrary is not a function
deferred_optimized_test: Crash # (lib.foo()): deferred access is not implemented
deferred_redirecting_factory_test: Crash # (lib1.loadLib2()): deferred access is not implemented
deferred_regression_22995_test: RuntimeError # U.loadLibrary is not a function
deferred_shadow_load_library_test: RuntimeError # Y.loadLibrary is not a function
deferred_shared_and_unshared_classes_test: RuntimeError # U.loadLibrary is not a function
deferred_static_seperate_test: RuntimeError # L.loadLibrary is not a function
deferred_super_dependency_test/01: RuntimeError # $async$temp1.loadLibrary is not a function
deferred_type_dependency_test/as: Crash # (lib1.fooAs("string")): deferred access is not implemented
deferred_type_dependency_test/is: Crash # (lib1.fooIs("string")): deferred access is not implemented
deferred_type_dependency_test/none: Crash # (lib2.getInstance()): deferred access is not implemented
deferred_type_dependency_test/type_annotation: Crash # (lib1.fooAnnotation("string")): deferred access is not implemented
field3a_negative_test: Fail # Bogus result from type inference in case of invalid program.
first_class_types_test: RuntimeError # Please triage this failure.
for2_test: Crash # The null object does not have a getter 'field'.
for_variable_capture_test: Crash # (i=0): For-loop variable captured in loop header
generic2_test: RuntimeError # Please triage this failure.
generic_field_mixin3_test: RuntimeError # Please triage this failure.
generic_instanceof_test: RuntimeError # Please triage this failure.
generic_native_test: RuntimeError # Please triage this failure.
infinite_switch_label_test: Crash # (switch (target){l0:...  continue to a labeled switch case
instanceof2_test: RuntimeError # Please triage this failure.
instanceof4_test/01: RuntimeError # Please triage this failure.
invocation_mirror_invoke_on_test: RuntimeError # Please triage this failure.
invocation_mirror_test: Crash # (super[37]=42): visitUnresolvedSuperIndexSet
issue_1751477_test: RuntimeError # O.loadLibrary is not a function
list_is_test: RuntimeError # Please triage this failure.
list_test: RuntimeError # Please triage this failure.
many_generic_instanceof_test: RuntimeError # Please triage this failure.
many_overridden_no_such_method_test: RuntimeError # Please triage this failure.
nested_switch_label_test: Crash # (switch (target){out...  continue to a labeled switch case
no_such_method_test: RuntimeError # Please triage this failure.
overridden_no_such_method_test: RuntimeError # Please triage this failure.
regress_22443_test: RuntimeError # M.loadLibrary is not a function
regress_23408_test: RuntimeError # G.loadLibrary is not a function
regress_23500_test/01: Crash # (await for(var c in new Stream.fromIterable([] )){}): await for
super_bound_closure_test/01: RuntimeError # Cannot read property 'call' of undefined
super_bound_closure_test/none: RuntimeError # Cannot read property 'call' of undefined
super_call4_test: RuntimeError # Please triage this failure.
super_getter_setter_test: Crash # Class 'PartialMethodElement' has no instance getter 'initializer'.
super_implicit_closure_test: RuntimeError # Cannot read property 'call' of undefined
super_operator_index5_test: Crash # (super[0]=42): visitUnresolvedSuperIndexSet
super_operator_index7_test: Crash # (super[0]=42): visitUnresolvedSuperIndexSet
super_operator_index8_test: Crash # (super[f()]=g()): visitUnresolvedSuperIndexSet
super_operator_index_test/03: Crash # (super[4]=42): visitUnresolvedSuperIndexSet
super_operator_index_test/05: Crash # (super[4]=42): visitUnresolvedSuperIndexSet
switch_label2_test: Crash # (switch (target){cas...  continue to a labeled switch case
switch_label_test: Crash # (switch (animal){cas...  continue to a labeled switch case
switch_try_catch_test: Crash # (switch (0){_0:case ...  continue to a labeled switch case
sync_generator1_test/01: Timeout # Please triage this failure.
sync_generator1_test/none: Timeout # Please triage this failure.
sync_generator3_test/test1: RuntimeError # Please triage this failure.
sync_generator3_test/test2: RuntimeError # Please triage this failure.
syncstar_yield_test/copyParameters: RuntimeError # Please triage this failure.
syncstar_yield_test/none: RuntimeError # Please triage this failure.
syncstar_yieldstar_test: RuntimeError # Please triage this failure.
type_variable_closure2_test: RuntimeError # Please triage this failure.
type_variable_field_initializer_closure_test: RuntimeError # Please triage this failure.
type_variable_field_initializer_test: RuntimeError # Please triage this failure.
type_variable_nested_test: RuntimeError # Please triage this failure.
