# copyright (c) 2020, 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.

# Status file for the textual_outline_suite.dart test suite. This is testing
# the textual outline used for better incremental compilation.

# These tests have errors in them which isn't reported by the parser but the
# formatter still sees as syntax errors and thus won't format.
regress/annotation_on_type_parameter_name_clash_on_constructor: FormatterCrash
regress/annotation_on_type_parameter_name_extension_type_constructor: FormatterCrash
extension_types/const_constructor_body: FormatterCrash
extension_types/field_access: FormatterCrash
extension_types/issue52119: FormatterCrash
extension_types/issue53212: FormatterCrash
extension_types/issue53625: FormatterCrash
extension_types/representation: FormatterCrash
general/base_class_declaration: FormatterCrash
general/constants/non_const_constructor: FormatterCrash
general/constants/various: FormatterCrash
general/enum_super_constructor: FormatterCrash
general/extension_type_declaration_disabled: FormatterCrash
general/final_class_declaration: FormatterCrash
general/interface_class_declaration: FormatterCrash
general/invalid_operator: FormatterCrash
general/invalid_super_initializer: FormatterCrash
general/issue_46886: FormatterCrash
general/issue45700.crash: FormatterCrash
general/issue48487: FormatterCrash
general/issue48487b: FormatterCrash
general/issue48919: FormatterCrash
general/macro_class: FormatterCrash
general/mixin_class_declaration: FormatterCrash
general/records_opt_out: FormatterCrash
general/sealed_class_declaration: FormatterCrash
nnbd_mixed/issue41597: FormatterCrash
nonfunction_type_aliases/old_version: FormatterCrash
records/record_type_unsupported: FormatterCrash
regress/issue_30994: FormatterCrash
regress/issue_31198: FormatterCrash
super_parameters/opt_out: FormatterCrash
super_parameters/var_before_super: FormatterCrash
triple_shift/invalid_operator: FormatterCrash

general/error_recovery/issue_38415.crash: EmptyOutput
general/error_recovery/issue_39024.crash: EmptyOutput
general/error_recovery/issue_39058.crash: EmptyOutput
general/issue49357a: EmptyOutput
rasta/bad_interpolation: EmptyOutput
rasta/issue_000035: EmptyOutput
rasta/issue_000035a: EmptyOutput
rasta/issue_000045: EmptyOutput
regress/issue_29976: EmptyOutput
regress/issue_29982: EmptyOutput
regress/issue_29985: EmptyOutput
regress/issue_35900: EmptyOutput
regress/issue_39035.crash: EmptyOutput
regress/issue_39091_2: EmptyOutput
regress/utf_16_le_content.crash: EmptyOutput

extension_types/with_dependencies/issue53209_2/main: UnknownChunk
general/bad_import: UnknownChunk # Test has parser errors
general/error_recovery/constructor_recovery_operator.crash: UnknownChunk # Test has parser errors
general/error_recovery/issue_39058_prime.crash: UnknownChunk # Test has parser errors
general/error_recovery/issue_39202.crash: UnknownChunk # Test has parser errors
general/factory_var: UnknownChunk # Test has parser errors
general/issue41842: UnknownChunk # Test has parser errors
general/issue43363: UnknownChunk # Test has parser errors
general/issue54006: UnknownChunk # Test has parser errors
rasta/issue_000046: UnknownChunk # Test has parser errors
rasta/malformed_const_constructor: UnknownChunk # Test has parser errors
regress/ambiguous_builder_01: UnknownChunk # Test has parser errors
regress/issue_34850: UnknownChunk # Test has parser errors

coverage/external_test: FormatterCrash
coverage/metadata_test: FormatterCrash
coverage/operator_unsupported_test: EmptyOutput
coverage/syntax_get_set_syntax_test: UnknownChunk
