# Copyright (c) 2016, 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.md file.

# Status file for the legacy_test.dart test suite. This is testing generating
# Kernel ASTs in legacy mode (Dart 1.0).

DeltaBlue: Fail # Fasta and dartk disagree on static initializers
ambiguous_exports: RuntimeError # Expected, this file exports two main methods.
bug31124: RuntimeError # Test has no main method (and we shouldn't add one).
call: Fail # Test can't run.
constructor_const_inference: RuntimeError # Test exercises strong mode semantics.  See also Issue #33813.
constructor_initializer_invalid: RuntimeError # Fails execution after recovery
duplicated_field_initializer: RuntimeError
external_import: RuntimeError # Expected -- test uses import which doesn't exist.
fallthrough: Fail # Missing FallThroughError.
function_type_recovery: Fail
incomplete_field_formal_parameter: Fail # Fasta doesn't recover well
inference/bug31436: RuntimeError # Test exercises Dart 2.0 semantics
inference/constructors_too_many_positional_arguments: Fail
inference/downwards_inference_annotations_locals: Fail # Issue #30031
inference/future_then_explicit_future: RuntimeError
inference/generic_methods_infer_js_builtin: RuntimeError # Test attempts to access platform-private library leading to NSM.
inference/infer_assign_to_index: Fail
inference/infer_assign_to_property: Fail
inference/infer_assign_to_property_custom: Fail
inference/infer_type_cast: Fail
inference/infer_typed_list_literal: Fail
inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2: RuntimeError
instantiate_to_bound/body_typedef_super_bounded_type: Fail # Issue 33444
instantiate_to_bound/non_simple_class_parametrized_typedef_cycle: RuntimeError # May be related to Issue 33479
instantiate_to_bound/non_simple_generic_function_in_bound_regress: RuntimeError # Expected
instantiate_to_bound/typedef_super_bounded_type: Fail # Issue 33444
invocations: Fail
micro: Fail # External method marked abstract.
minimum_int: Crash # Min int literal not supported in non-strong mode.
named_parameters: Fail # Missing types and unnecessary default values.
optional: Fail # Unnecessary default values.
rasta/abstract_constructor: Fail
rasta/bad_constructor_redirection: Fail
rasta/bad_continue: Fail
rasta/bad_default_constructor: Fail # Compile-time error destroys program.
rasta/bad_explicit_super_constructor: RuntimeError
rasta/bad_implicit_super_constructor: RuntimeError
rasta/bad_interpolation: Fail
rasta/bad_redirection: Fail
rasta/bad_setter_initializer: RuntimeError
rasta/bad_unicode: Fail
rasta/breaking_bad: Fail
rasta/class_hierarchy: Fail
rasta/class_member: Fail
rasta/constant_get_and_invoke: RuntimeError
rasta/deferred_lib: Fail
rasta/deferred_load: Fail
rasta/duplicated_mixin: RuntimeError # Expected, this file has no main method.
rasta/export: RuntimeError # Expected, this file has no main method.
rasta/external_factory_redirection: Fail
rasta/foo: RuntimeError # Expected, this file has no main method.
rasta/for_loop: Fail
rasta/generic_factory: Fail
rasta/issue_000001: Fail
rasta/issue_000031: Fail
rasta/issue_000032: Fail
rasta/issue_000034: RuntimeError
rasta/issue_000036: Fail
rasta/issue_000039: Fail
rasta/issue_000041: RuntimeError
rasta/issue_000042: Fail
rasta/issue_000043: Fail
rasta/issue_000044: Fail
rasta/issue_000045: Fail
rasta/issue_000046: RuntimeError
rasta/issue_000047: Fail
rasta/issue_000081: Fail
rasta/malformed_const_constructor: Fail
rasta/malformed_function: Fail
rasta/mandatory_parameter_initializer: Fail
rasta/mixin_library: Fail
rasta/native_is_illegal: Fail
rasta/parser_error: Fail
rasta/super: RuntimeError
rasta/super_initializer: Fail
rasta/super_operator: Fail
rasta/try_label: Fail
rasta/type_literals: Crash
rasta/type_literals: Fail
rasta/type_with_parse_error: Fail
rasta/typedef: Crash
rasta/typedef: Fail
rasta/unresolved: Fail
rasta/unresolved_constructor: Fail
rasta/unresolved_for_in: RuntimeError # Test contains a compile-time error, signaled at run time in the JIT VM
rasta/unresolved_recovery: Fail
redirecting_factory: Fail # Missing types on constructor parameters.
redirecting_factory_chain_test: Fail # Missing support for RedirectingFactoryConstructor.
redirecting_factory_const_inference: RuntimeError # Test exercises strong mode semantics.  See also Issue #33813.
redirecting_factory_simple_test: Fail # Missing support for RedirectingFactoryConstructor.
redirecting_factory_typeargs_test: Fail # Missing support for RedirectingFactoryConstructor.
redirecting_factory_typeparam_test: Fail # Missing support for RedirectingFactoryConstructor.
redirecting_factory_typeparambounds_test: Fail # Missing support for RedirectingFactoryConstructor.
regress/issue_29975: Fail # Issue 29975.
regress/issue_29976: RuntimeError # Tests runtime behavior of error recovery.
regress/issue_29982: RuntimeError # Tests runtime behavior of error recovery.
regress/issue_30836: RuntimeError # Issue 30836.
regress/issue_32200: Pass # Invalid type mapped to dynamic type in kernel translation helper.
regress/issue_32972: RuntimeError
regress/issue_33452: RuntimeError # Test has an intentional error
regress/issue_34225: RuntimeError
regress/issue_34563: RuntimeError # Test execution after recovery
regress/issue_35177: RuntimeError
regress/issue_35258: RuntimeError # Expected
regress/issue_35259: RuntimeError # Expected
regress/issue_35260: RuntimeError # Expected
regress/issue_35266: RuntimeError # Expected
reject_generic_function_types_in_bounds: RuntimeError # Expected
runtime_checks/implicit_downcast_constructor_initializer: RuntimeError # Test exercises strong mode semantics
runtime_checks/implicit_downcast_do: RuntimeError # Test exercises strong mode semantics
runtime_checks/implicit_downcast_for_condition: RuntimeError # Test exercises strong mode semantics
runtime_checks/implicit_downcast_if: RuntimeError # Test exercises strong mode semantics
runtime_checks/implicit_downcast_not: RuntimeError # Test exercises strong mode semantics
runtime_checks/implicit_downcast_while: RuntimeError # Test exercises strong mode semantics
runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast: RuntimeError # Test exercises strong mode semantics
runtime_checks_new/implicit_downcast_field: RuntimeError # Test exercises strong mode semantics
runtime_checks_new/mixin_forwarding_stub_field: RuntimeError # Test exercises strong mode semantics
runtime_checks_new/mixin_forwarding_stub_getter: RuntimeError # Test exercises strong mode semantics
runtime_checks_new/mixin_forwarding_stub_setter: RuntimeError # Test exercises strong mode semantics
runtime_checks_new/stub_checked_via_target: RuntimeError # Test exercises strong mode semantics
set_literals/disambiguation_rule: RuntimeError
spread_collection: RuntimeError
type_variable_as_super: Fail
uninitialized_fields: Fail # Fasta and dartk disagree on static initializers
void_methods: Fail # Bad return from setters.
