# Copyright (c) 2017, 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 ast_builder_test.dart test suite. This is testing
# generating analyzer ASTs and connecting up type inference information.
DeltaBlue: Crash
accessors: Crash
annotation_top: Crash
argument_mismatch: Crash
bad_setter_abstract: Crash
call: Crash
cascade: Crash
classes: Crash
duplicated_named_args_3: Crash
expressions: Crash
function_type_is_check: Crash
function_type_recovery: Crash
illegal_named_function_expression: Crash
illegal_named_function_expression_scope: Crash
implicit_scope_test: Crash
inference/abstract_class_instantiation: Crash
inference/assert_initializer: Crash
inference/bug30251: Crash
inference/bug30624: Crash
inference/bug31133: Crash
inference/bug31436: Crash
inference/closure_param_null_to_object: Crash
inference/constructors_infer_from_arguments_redirecting: Crash
inference/constructors_too_many_positional_arguments: Crash
inference/downwards_inference_annotations: Crash
inference/downwards_inference_annotations_class_members: Crash
inference/downwards_inference_annotations_for_loop_variable: Crash
inference/downwards_inference_annotations_locals: Crash
inference/downwards_inference_annotations_locals_referring_to_locals: Crash
inference/downwards_inference_annotations_parameter: Fail
inference/downwards_inference_annotations_parameter_local: Fail
inference/downwards_inference_annotations_type_variable: Fail
inference/downwards_inference_annotations_type_variable_local: Crash
inference/downwards_inference_annotations_typedef: Crash
inference/downwards_inference_on_function_of_t_using_the_t: Crash
inference/downwards_inference_on_generic_function_expressions: Crash
inference/downwards_inference_on_instance_creations_infer_downwards: Crash
inference/downwards_inference_yield_yield_star: Fail
inference/field_initializer_context_explicit: Crash
inference/field_initializer_context_implicit: Crash
inference/field_initializer_context_this: Crash
inference/field_initializer_parameter: Crash
inference/for_loop_initializer_expression: Crash
inference/future_then_explicit_future: Fail
inference/generic_functions_return_typedef: Fail
inference/generic_methods_do_not_infer_invalid_override_of_generic_method: Fail
inference/generic_methods_handle_override_of_non_generic_with_generic: Fail
inference/generic_methods_infer_js_builtin: Fail
inference/infer_correctly_on_multiple_variables_declared_together: Crash
inference/infer_from_complex_expressions_if_outer_most_value_is_precise: Crash
inference/infer_local_function_referenced_before_declaration: Crash
inference/infer_rethrow: Crash
inference/instantiate_tearoff: Crash
inference/instantiate_tearoff_after_contravariance_check: Crash
inference/instantiate_tearoff_of_call: Crash
inference/lambda_does_not_have_propagated_type_hint: Crash
inference/super_initializer: Crash
inference/super_initializer_substitution: Crash
inference/switch_continue: Crash
inference/top_level_return_and_yield: Fail
inference/try_catch: Crash
inference/try_catch_finally: Crash
inference/try_catch_promotion: Crash
inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1: Crash
inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2: Fail
inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1: Crash
inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2: Fail
invalid_cast: Crash
invocations: Crash
metadata_enum: Crash
metadata_named_mixin_application: Crash
micro: Crash
native_as_name: Crash
override_check_after_inference: Fail
override_check_basic: Fail
override_check_with_covariant_modifier: Fail
qualified: Crash
rasta/abstract_constructor: Crash
rasta/bad_continue: Crash
rasta/bad_default_constructor: Crash
rasta/bad_interpolation: Crash
rasta/bad_redirection: Crash
rasta/breaking_bad: Crash
rasta/class_hierarchy: Crash
rasta/deferred_load: Crash
rasta/generic_factory: Crash
rasta/issue_000001: Crash
rasta/issue_000002: Crash
rasta/issue_000004: Crash
rasta/issue_000031: Crash
rasta/issue_000036: Crash
rasta/issue_000039: VerificationError
rasta/issue_000042: Crash
rasta/issue_000044: Crash
rasta/issue_000045: Crash
rasta/issue_000067: Crash
rasta/issue_000068: Crash
rasta/issue_000069: Crash
rasta/issue_000070: Crash
rasta/malformed_function: Crash
rasta/mandatory_parameter_initializer: Crash
rasta/parser_error: Crash
rasta/static: Crash
rasta/super_initializer: Crash
rasta/supports_reflection: VerificationError
rasta/try_label: Crash
rasta/type_literals: Crash
rasta/typedef: Crash
rasta/unresolved: Crash
rasta/unresolved_constructor: Crash
rasta/unresolved_for_in: Crash
rasta/unresolved_recovery: Crash
redirecting_factory_typeparambounds_test: VerificationError
regress/issue_29937: Crash
regress/issue_29941: Crash
regress/issue_29942: Crash
regress/issue_29943: Crash
regress/issue_29978: Crash
regress/issue_29979: Crash
regress/issue_29983: Crash
regress/issue_29984: Crash
regress/issue_29985: Crash
regress/issue_31155: Crash # Issue 31155.
regress/issue_31157: Crash
regress/issue_31180: Crash
regress/issue_31184: Crash
regress/issue_31186: Crash
regress/issue_31187: Crash
regress/issue_31198: Crash
regress/issue_31213: Crash
reorder_super: Crash
runtime_checks/implicit_downcast_assert_initializer: Crash
runtime_checks/implicit_downcast_constructor_initializer: Crash
runtime_checks_new/for_in_call_kinds: Crash
statements: Crash
super_call: Crash
type_variable_as_super: Crash
uninitialized_fields: Crash
