# 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.

super_parameters/issue47741: FormatterCrash # https://github.com/dart-lang/dart_style/issues/1321

# 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.
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
