# Copyright (c) 2019, 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 weak_suite.dart test suite.

extensions/call_methods: TypeCheckError
extensions/extension_setter_error: TypeCheckError
extensions/instance_access_of_static: RuntimeError
extensions/invalid_explicit_access: RuntimeError
extensions/issue40713: TypeCheckError
extensions/static_access_of_instance: RuntimeError
general_nnbd_opt_out/abstract_members: TypeCheckError
general_nnbd_opt_out/accessors: RuntimeError
general_nnbd_opt_out/ambiguous_exports: RuntimeError # Expected, this file exports two main methods.
general_nnbd_opt_out/await_in_non_async: RuntimeError # Expected.
general_nnbd_opt_out/bug21938: TypeCheckError
general_nnbd_opt_out/bug30695: TypeCheckError
general_nnbd_opt_out/bug31124: RuntimeError # Test has no main method (and we shouldn't add one).
general_nnbd_opt_out/call: TypeCheckError
general_nnbd_opt_out/candidate_found: TypeCheckError
general_nnbd_opt_out/cascade: RuntimeError
general_nnbd_opt_out/constructor_initializer_invalid: RuntimeError # Fails execution after recovery
general_nnbd_opt_out/covariant_generic: RuntimeError
general_nnbd_opt_out/duplicated_declarations: TypeCheckError
general_nnbd_opt_out/duplicated_field_initializer: RuntimeError
general_nnbd_opt_out/error_locations/error_location_01: RuntimeError
general_nnbd_opt_out/error_locations/error_location_02: RuntimeError
general_nnbd_opt_out/error_locations/error_location_03: RuntimeError
general_nnbd_opt_out/error_locations/error_location_05: RuntimeError
general_nnbd_opt_out/error_locations/error_location_06: RuntimeError
general_nnbd_opt_out/expressions: RuntimeError
general_nnbd_opt_out/external_import: RuntimeError # The native extension to import doesn't exist. This is ok.
general_nnbd_opt_out/incomplete_field_formal_parameter: RuntimeError
general_nnbd_opt_out/invocations: RuntimeError
general_nnbd_opt_out/issue37776: RuntimeError
general_nnbd_opt_out/issue38938: RuntimeError # no main and compile time errors.
general_nnbd_opt_out/issue38944: RuntimeError # no main and compile time errors.
general_nnbd_opt_out/issue38961: RuntimeError # no main and compile time errors.
general_nnbd_opt_out/micro: RuntimeError
general_nnbd_opt_out/mixin_application_override: ExpectationFileMismatch # Too many errors.
general_nnbd_opt_out/mixin_application_override: TypeCheckError
general_nnbd_opt_out/mixin_constructors_with_default_values: RuntimeError # Expected
general_nnbd_opt_out/operator_method_not_found: RuntimeError # Expected
general_nnbd_opt_out/optional: TypeCheckError
general_nnbd_opt_out/override_check_accessor_after_inference: TypeCheckError # Issue #31620
general_nnbd_opt_out/override_check_accessor_basic: TypeCheckError # Issue #31620
general_nnbd_opt_out/override_check_accessor_with_covariant_modifier: TypeCheckError # Issue #31620
general_nnbd_opt_out/override_check_after_inference: TypeCheckError # Issue #31620
general_nnbd_opt_out/override_check_basic: TypeCheckError # Issue #31620
general_nnbd_opt_out/override_check_with_covariant_modifier: TypeCheckError # Issue #31620
general_nnbd_opt_out/override_setter_with_field: TypeCheckError
general_nnbd_opt_out/spread_collection: RuntimeError
general_nnbd_opt_out/type_parameter_type_named_int: RuntimeError # Expected
general_nnbd_opt_out/type_variable_as_super: RuntimeError
general_nnbd_opt_out/unsound_promotion: TypeCheckError
general_nnbd_opt_out/void_methods: RuntimeError
late_lowering/covariant_late_field: TypeCheckError
nnbd/covariant_late_field: TypeCheckError
nnbd/getter_vs_setter_type: TypeCheckError
nnbd/issue42546: TypeCheckError
nnbd/issue42603: TypeCheckError
nnbd/no_support_for_old_null_aware_index_access_syntax: RuntimeError # Expected.
nnbd/nullable_object_access: TypeCheckError
nnbd/nullable_receiver: TypeCheckError
nnbd/potentially_nullable_access: TypeCheckError
nnbd_mixed/bad_mixins: TypeCheckError
nnbd_mixed/covariant_from_opt_in: TypeCheckError
nnbd_mixed/inheritance_from_opt_in: TypeCheckError
nnbd_mixed/issue41567: TypeCheckError
nnbd_mixed/messages_with_types_opt_in: TypeCheckError
nnbd_mixed/messages_with_types_opt_out: TypeCheckError
nnbd_mixed/super_access/main: Crash # Issue 43864
nnbd_mixed/super_access/main.no_link: Crash # Issue 43864
none/mixin_covariant: TypeCheckError
value_class/simple: RuntimeError # Expected
value_class/value_extends_non_value: RuntimeError # Expected
value_class/value_implements_non_value: RuntimeError # Expected
value_class/copy_with_call_sites: RuntimeError # Expected