From 737b6f7356200899c6044d0f7f537a35108b55ee Mon Sep 17 00:00:00 2001 From: Jake Macdonald Date: Fri, 10 Mar 2023 05:27:57 +0000 Subject: [PATCH] [flip-modifiers]: flip the flags for sealed classes and class modifiers Includes several updates to tests that needed to land with this flip, as well as some other tests that needed to be updated and could land separately, but are being included here to expedite things. Removes some unnecessary experimental release versions, as well as bringing up to date the generated files, which were previously out of sync with the yaml file. TEST=bots Change-Id: I71a86d7a86190069b504bd27d687f62b97a7251e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/285080 Commit-Queue: Jake Macdonald Reviewed-by: Alexander Markov Reviewed-by: Johnni Winther Reviewed-by: Nate Bosch Reviewed-by: Samuel Rawlins --- .../lib/src/experiments/flags.dart | 6 +- .../test/inheritance/data/function.dart | 17 +- ...ove_name_from_declaration_clause_test.dart | 2 + .../lib/src/dart/analysis/experiments.g.dart | 14 +- pkg/dartdev/test/commands/run_test.dart | 2 +- .../experimental_flags_generated.dart | 6 +- pkg/front_end/messages.yaml | 7 +- .../application/data/package_config.json | 8 +- .../application/data/tests/sequence.dart | 4 +- .../data/tests/sequence.dart.expect | 10 +- .../declaration/data/package_config.json | 5 +- .../incremental/data/package_config.json | 8 +- ...d_named_mixin_application.incremental.yaml | 2 +- ...e_named_mixin_application.incremental.yaml | 2 +- ...d_named_mixin_application.incremental.yaml | 2 +- .../enhanced_enums/enum_as_supertype.dart | 13 +- .../enum_as_supertype.dart.strong.expect | 31 ++- ...s_supertype.dart.strong.transformed.expect | 31 ++- ...m_as_supertype.dart.textual_outline.expect | 4 +- ...rtype.dart.textual_outline_modelled.expect | 4 +- .../enum_as_supertype.dart.weak.expect | 31 ++- ...enum_as_supertype.dart.weak.modular.expect | 31 ++- ...enum_as_supertype.dart.weak.outline.expect | 30 ++- ..._as_supertype.dart.weak.transformed.expect | 31 ++- ...enum_as_supertype_error.dart.strong.expect | 4 + ...rtype_error.dart.strong.transformed.expect | 4 + .../enum_as_supertype_error.dart.weak.expect | 4 + ...s_supertype_error.dart.weak.modular.expect | 4 + ...s_supertype_error.dart.weak.outline.expect | 4 + ...pertype_error.dart.weak.transformed.expect | 4 + .../inherited_restricted_members.dart | 10 +- ...ited_restricted_members.dart.strong.expect | 10 +- ...ted_members.dart.strong.transformed.expect | 10 +- ...ricted_members.dart.textual_outline.expect | 10 +- ...mbers.dart.textual_outline_modelled.expect | 34 +-- ...erited_restricted_members.dart.weak.expect | 10 +- ...estricted_members.dart.weak.modular.expect | 10 +- ...estricted_members.dart.weak.outline.expect | 10 +- ...icted_members.dart.weak.transformed.expect | 10 +- .../testcases/enhanced_enums/issue49236.dart | 14 +- .../issue49236.dart.strong.expect | 20 +- .../issue49236.dart.strong.transformed.expect | 20 +- .../issue49236.dart.textual_outline.expect | 2 +- ...49236.dart.textual_outline_modelled.expect | 8 +- .../issue49236.dart.weak.expect | 20 +- .../issue49236.dart.weak.modular.expect | 20 +- .../issue49236.dart.weak.outline.expect | 28 +-- .../issue49236.dart.weak.transformed.expect | 20 +- .../bad_type_variable_uses_in_supertypes.dart | 4 +- ...able_uses_in_supertypes.dart.strong.expect | 7 +- ..._supertypes.dart.strong.transformed.expect | 7 +- ..._in_supertypes.dart.textual_outline.expect | 5 +- ...types.dart.textual_outline_modelled.expect | 8 +- ...riable_uses_in_supertypes.dart.weak.expect | 7 +- ...ses_in_supertypes.dart.weak.modular.expect | 7 +- ...ses_in_supertypes.dart.weak.outline.expect | 6 +- ...in_supertypes.dart.weak.transformed.expect | 7 +- .../general/base_class_declaration.dart | 2 +- .../base_class_declaration.dart.strong.expect | 28 ++- ...declaration.dart.strong.transformed.expect | 28 ++- ...ss_declaration.dart.textual_outline.expect | 7 +- ...ation.dart.textual_outline_modelled.expect | 8 + .../base_class_declaration.dart.weak.expect | 28 ++- ...class_declaration.dart.weak.modular.expect | 28 ++- ...class_declaration.dart.weak.outline.expect | 28 ++- ...s_declaration.dart.weak.transformed.expect | 28 ++- .../testcases/general/bounds_supertypes.dart | 4 +- .../bounds_supertypes.dart.strong.expect | 232 +++++++++--------- ..._supertypes.dart.strong.transformed.expect | 232 +++++++++--------- ...nds_supertypes.dart.textual_outline.expect | 4 +- ...types.dart.textual_outline_modelled.expect | 9 +- .../bounds_supertypes.dart.weak.expect | 232 +++++++++--------- ...bounds_supertypes.dart.weak.modular.expect | 232 +++++++++--------- ...bounds_supertypes.dart.weak.outline.expect | 232 +++++++++--------- ...ds_supertypes.dart.weak.transformed.expect | 232 +++++++++--------- ...duplicated_declarations.dart.strong.expect | 2 +- ...eclarations.dart.strong.transformed.expect | 2 +- .../duplicated_declarations.dart.weak.expect | 2 +- ...ated_declarations.dart.weak.modular.expect | 2 +- ..._declarations.dart.weak.transformed.expect | 2 +- ...final_class_declaration.dart.strong.expect | 28 ++- ...declaration.dart.strong.transformed.expect | 28 ++- .../final_class_declaration.dart.weak.expect | 28 ++- ...class_declaration.dart.weak.modular.expect | 28 ++- ...class_declaration.dart.weak.outline.expect | 28 ++- ...s_declaration.dart.weak.transformed.expect | 28 ++- .../general/interface_class_declaration.dart | 2 +- ...rface_class_declaration.dart.strong.expect | 28 ++- ...declaration.dart.strong.transformed.expect | 28 ++- ...ss_declaration.dart.textual_outline.expect | 7 +- ...ation.dart.textual_outline_modelled.expect | 8 + ...terface_class_declaration.dart.weak.expect | 28 ++- ...class_declaration.dart.weak.modular.expect | 28 ++- ...class_declaration.dart.weak.outline.expect | 28 ++- ...s_declaration.dart.weak.transformed.expect | 28 ++- .../general/mixin_class_declaration.dart | 2 + ...mixin_class_declaration.dart.strong.expect | 21 +- ...declaration.dart.strong.transformed.expect | 21 +- ...ss_declaration.dart.textual_outline.expect | 1 + ...ation.dart.textual_outline_modelled.expect | 1 + .../mixin_class_declaration.dart.weak.expect | 21 +- ...class_declaration.dart.weak.modular.expect | 21 +- ...class_declaration.dart.weak.outline.expect | 21 +- ...s_declaration.dart.weak.transformed.expect | 21 +- .../testcases/general/mixin_conflicts.dart | 10 +- .../mixin_conflicts.dart.strong.expect | 12 +- ...n_conflicts.dart.strong.transformed.expect | 12 +- ...ixin_conflicts.dart.textual_outline.expect | 8 +- ...licts.dart.textual_outline_modelled.expect | 16 +- .../general/mixin_conflicts.dart.weak.expect | 12 +- .../mixin_conflicts.dart.weak.modular.expect | 12 +- .../mixin_conflicts.dart.weak.outline.expect | 10 +- ...xin_conflicts.dart.weak.transformed.expect | 12 +- ..._inherited_setter_for_mixed_in_field2.dart | 2 +- ...ter_for_mixed_in_field2.dart.strong.expect | 2 +- ...d_in_field2.dart.strong.transformed.expect | 2 +- ...ixed_in_field2.dart.textual_outline.expect | 2 +- ...ield2.dart.textual_outline_modelled.expect | 10 +- ...etter_for_mixed_in_field2.dart.weak.expect | 2 +- ...r_mixed_in_field2.dart.weak.modular.expect | 2 +- ...r_mixed_in_field2.dart.weak.outline.expect | 2 +- ...xed_in_field2.dart.weak.transformed.expect | 2 +- .../testcases/general/mixin_stubs.dart | 2 +- .../general/mixin_stubs.dart.strong.expect | 2 +- ...mixin_stubs.dart.strong.transformed.expect | 2 +- .../mixin_stubs.dart.textual_outline.expect | 2 +- ...stubs.dart.textual_outline_modelled.expect | 18 +- .../general/mixin_stubs.dart.weak.expect | 2 +- .../mixin_stubs.dart.weak.modular.expect | 2 +- .../mixin_stubs.dart.weak.outline.expect | 2 +- .../mixin_stubs.dart.weak.transformed.expect | 2 +- .../records_opt_out.dart.strong.expect | 12 +- ...rds_opt_out.dart.strong.transformed.expect | 12 +- .../general/records_opt_out.dart.weak.expect | 12 +- .../records_opt_out.dart.weak.modular.expect | 12 +- ...cords_opt_out.dart.weak.transformed.expect | 12 +- .../incremental/strongmode_mixins.yaml | 2 +- .../infer_field_overrides_getter.dart | 2 +- ..._field_overrides_getter.dart.strong.expect | 2 +- ...ides_getter.dart.strong.transformed.expect | 2 +- ...errides_getter.dart.textual_outline.expect | 2 +- ...etter.dart.textual_outline_modelled.expect | 8 +- ...er_field_overrides_getter.dart.weak.expect | 2 +- ..._overrides_getter.dart.weak.modular.expect | 2 +- ..._overrides_getter.dart.weak.outline.expect | 2 +- ...rrides_getter.dart.weak.transformed.expect | 2 +- .../infer_field_overrides_setter.dart | 2 +- ..._field_overrides_setter.dart.strong.expect | 2 +- ...ides_setter.dart.strong.transformed.expect | 2 +- ...errides_setter.dart.textual_outline.expect | 2 +- ...etter.dart.textual_outline_modelled.expect | 8 +- ...er_field_overrides_setter.dart.weak.expect | 2 +- ..._overrides_setter.dart.weak.modular.expect | 2 +- ..._overrides_setter.dart.weak.outline.expect | 2 +- ...rrides_setter.dart.weak.transformed.expect | 2 +- ...xin_inference_non_trivial_constraints.dart | 2 +- ...non_trivial_constraints.dart.strong.expect | 6 +- ...constraints.dart.strong.transformed.expect | 6 +- ...al_constraints.dart.textual_outline.expect | 2 +- ...aints.dart.textual_outline_modelled.expect | 4 +- ...e_non_trivial_constraints.dart.weak.expect | 6 +- ...ivial_constraints.dart.weak.modular.expect | 6 +- ...ivial_constraints.dart.weak.outline.expect | 6 +- ...l_constraints.dart.weak.transformed.expect | 6 +- .../inference/mixin_inference_outwards_3.dart | 2 +- ...in_inference_outwards_3.dart.strong.expect | 2 +- ..._outwards_3.dart.strong.transformed.expect | 43 ++++ ...nce_outwards_3.dart.textual_outline.expect | 2 +- ...rds_3.dart.textual_outline_modelled.expect | 4 +- ...ixin_inference_outwards_3.dart.weak.expect | 2 +- ...erence_outwards_3.dart.weak.modular.expect | 2 +- ...erence_outwards_3.dart.weak.outline.expect | 2 +- ...ce_outwards_3.dart.weak.transformed.expect | 43 ++++ .../inference/mixin_inference_outwards_4.dart | 2 +- ...in_inference_outwards_4.dart.strong.expect | 2 +- ...nce_outwards_4.dart.textual_outline.expect | 2 +- ...rds_4.dart.textual_outline_modelled.expect | 4 +- ...ixin_inference_outwards_4.dart.weak.expect | 2 +- ...erence_outwards_4.dart.weak.modular.expect | 2 +- ...erence_outwards_4.dart.weak.outline.expect | 2 +- .../testcases/nnbd/forbidden_supers.dart | 2 +- .../nnbd/forbidden_supers.dart.strong.expect | 2 +- ...dden_supers.dart.strong.transformed.expect | 2 +- ...rbidden_supers.dart.textual_outline.expect | 2 +- .../nnbd/forbidden_supers.dart.weak.expect | 2 +- .../forbidden_supers.dart.weak.modular.expect | 2 +- .../forbidden_supers.dart.weak.outline.expect | 2 +- ...bidden_supers.dart.weak.transformed.expect | 2 +- .../hierarchy/mix_in_final_field.dart | 2 +- ...in_final_field.dart.textual_outline.expect | 2 +- ...field.dart.textual_outline_modelled.expect | 18 +- .../mix_in_final_field.dart.weak.expect | 8 +- ...ix_in_final_field.dart.weak.modular.expect | 8 +- ...ix_in_final_field.dart.weak.outline.expect | 8 +- ...n_final_field.dart.weak.transformed.expect | 8 +- .../nnbd_mixed/hierarchy/mix_in_getter.dart | 2 +- .../mix_in_getter.dart.textual_outline.expect | 2 +- ...etter.dart.textual_outline_modelled.expect | 18 +- .../hierarchy/mix_in_getter.dart.weak.expect | 8 +- .../mix_in_getter.dart.weak.modular.expect | 8 +- .../mix_in_getter.dart.weak.outline.expect | 8 +- ...mix_in_getter.dart.weak.transformed.expect | 8 +- .../nnbd_mixed/hierarchy/mix_in_method.dart | 2 +- .../mix_in_method.dart.textual_outline.expect | 2 +- ...ethod.dart.textual_outline_modelled.expect | 18 +- .../hierarchy/mix_in_method.dart.weak.expect | 8 +- .../mix_in_method.dart.weak.modular.expect | 8 +- .../mix_in_method.dart.weak.outline.expect | 8 +- ...mix_in_method.dart.weak.transformed.expect | 8 +- .../nnbd_mixed/hierarchy/mix_in_override.dart | 2 +- ...ix_in_override.dart.textual_outline.expect | 2 +- ...rride.dart.textual_outline_modelled.expect | 18 +- .../mix_in_override.dart.weak.expect | 8 +- .../mix_in_override.dart.weak.modular.expect | 8 +- .../mix_in_override.dart.weak.outline.expect | 8 +- .../nnbd_mixed/hierarchy/mix_in_setter.dart | 2 +- .../mix_in_setter.dart.textual_outline.expect | 2 +- ...etter.dart.textual_outline_modelled.expect | 18 +- .../hierarchy/mix_in_setter.dart.weak.expect | 8 +- .../mix_in_setter.dart.weak.modular.expect | 8 +- .../mix_in_setter.dart.weak.outline.expect | 8 +- ...mix_in_setter.dart.weak.transformed.expect | 8 +- .../nnbd_mixed/hierarchy/no_such_method.dart | 4 +- ...no_such_method.dart.textual_outline.expect | 4 +- ...ethod.dart.textual_outline_modelled.expect | 18 +- .../hierarchy/no_such_method.dart.weak.expect | 4 +- .../no_such_method.dart.weak.modular.expect | 4 +- .../no_such_method.dart.weak.outline.expect | 4 +- ...o_such_method.dart.weak.transformed.expect | 4 +- .../mixin_from_opt_in_out_in.dart.weak.expect | 4 +- ...rom_opt_in_out_in.dart.weak.modular.expect | 4 +- ...rom_opt_in_out_in.dart.weak.outline.expect | 4 +- ...opt_in_out_in.dart.weak.transformed.expect | 4 +- .../mixin_from_opt_in_out_in_lib2.dart | 4 +- ...t_accessors_from_field_arent_mixed_in.dart | 2 +- ...om_field_arent_mixed_in.dart.strong.expect | 2 +- ...nt_mixed_in.dart.strong.transformed.expect | 2 +- ...arent_mixed_in.dart.textual_outline.expect | 2 +- ...ed_in.dart.textual_outline_modelled.expect | 8 +- ...from_field_arent_mixed_in.dart.weak.expect | 2 +- ...ld_arent_mixed_in.dart.weak.modular.expect | 2 +- ...ld_arent_mixed_in.dart.weak.outline.expect | 16 +- ...rent_mixed_in.dart.weak.transformed.expect | 2 +- .../access_abstract_nsm.dart.strong.expect | 4 +- ...bstract_nsm.dart.strong.transformed.expect | 4 +- .../access_abstract_nsm.dart.weak.expect | 4 +- ...cess_abstract_nsm.dart.weak.modular.expect | 4 +- ...cess_abstract_nsm.dart.weak.outline.expect | 4 +- ..._abstract_nsm.dart.weak.transformed.expect | 4 +- .../access_abstract_nsm_lib.dart | 4 +- .../access_concrete_nsm.dart.strong.expect | 4 +- ...oncrete_nsm.dart.strong.transformed.expect | 4 +- .../access_concrete_nsm.dart.weak.expect | 4 +- ...cess_concrete_nsm.dart.weak.modular.expect | 4 +- ...cess_concrete_nsm.dart.weak.outline.expect | 4 +- ..._concrete_nsm.dart.weak.transformed.expect | 4 +- .../access_concrete_nsm_lib.dart | 4 +- .../access_no_nsm.dart.strong.expect | 2 +- ...cess_no_nsm.dart.strong.transformed.expect | 2 +- .../access_no_nsm.dart.weak.expect | 2 +- .../access_no_nsm.dart.weak.modular.expect | 2 +- .../access_no_nsm.dart.weak.outline.expect | 2 +- ...access_no_nsm.dart.weak.transformed.expect | 2 +- .../access_no_nsm_lib.dart | 2 +- ...d_over_forwarder_in_mixin_application.dart | 2 +- ...er_in_mixin_application.dart.strong.expect | 2 +- ...application.dart.strong.transformed.expect | 2 +- ...in_application.dart.textual_outline.expect | 2 +- ...ation.dart.textual_outline_modelled.expect | 8 +- ...rder_in_mixin_application.dart.weak.expect | 2 +- ...mixin_application.dart.weak.modular.expect | 2 +- ...mixin_application.dart.weak.outline.expect | 10 +- ...n_application.dart.weak.transformed.expect | 2 +- .../forwarders_not_assumed_from_mixin.dart | 2 +- ..._not_assumed_from_mixin.dart.strong.expect | 2 +- ..._from_mixin.dart.strong.transformed.expect | 2 +- ...med_from_mixin.dart.textual_outline.expect | 2 +- ...mixin.dart.textual_outline_modelled.expect | 8 +- ...rs_not_assumed_from_mixin.dart.weak.expect | 2 +- ...ssumed_from_mixin.dart.weak.modular.expect | 2 +- ...ssumed_from_mixin.dart.weak.outline.expect | 10 +- ...ed_from_mixin.dart.weak.transformed.expect | 2 +- .../interface_with_nsm.dart | 2 +- .../interface_with_nsm.dart.strong.expect | 2 +- ...ce_with_nsm.dart.strong.transformed.expect | 2 +- ...rface_with_nsm.dart.textual_outline.expect | 2 +- ...h_nsm.dart.textual_outline_modelled.expect | 6 +- .../interface_with_nsm.dart.weak.expect | 2 +- ...nterface_with_nsm.dart.weak.modular.expect | 2 +- ...nterface_with_nsm.dart.weak.outline.expect | 2 +- ...face_with_nsm.dart.weak.transformed.expect | 2 +- .../no_such_method_forwarders/mixin_nsm.dart | 2 +- .../mixin_nsm.dart.strong.expect | 2 +- .../mixin_nsm.dart.textual_outline.expect | 2 +- ...n_nsm.dart.textual_outline_modelled.expect | 12 +- .../mixin_nsm.dart.weak.expect | 2 +- .../mixin_nsm.dart.weak.modular.expect | 2 +- .../mixin_nsm.dart.weak.outline.expect | 2 +- .../nsm_mixed_in.dart | 2 +- .../nsm_mixed_in.dart.strong.expect | 2 +- ...sm_mixed_in.dart.strong.transformed.expect | 2 +- .../nsm_mixed_in.dart.textual_outline.expect | 2 +- ...ed_in.dart.textual_outline_modelled.expect | 8 +- .../nsm_mixed_in.dart.weak.expect | 2 +- .../nsm_mixed_in.dart.weak.modular.expect | 2 +- .../nsm_mixed_in.dart.weak.outline.expect | 2 +- .../nsm_mixed_in.dart.weak.transformed.expect | 2 +- .../subst_on_forwarder.dart | 2 +- .../subst_on_forwarder.dart.strong.expect | 2 +- ...n_forwarder.dart.strong.transformed.expect | 2 +- ...t_on_forwarder.dart.textual_outline.expect | 2 +- ...arder.dart.textual_outline_modelled.expect | 6 +- .../subst_on_forwarder.dart.weak.expect | 2 +- ...ubst_on_forwarder.dart.weak.modular.expect | 2 +- ...ubst_on_forwarder.dart.weak.outline.expect | 2 +- ..._on_forwarder.dart.weak.transformed.expect | 2 +- ...ord_literal_unsupported.dart.strong.expect | 32 +-- ...unsupported.dart.strong.transformed.expect | 32 +-- ...ecord_literal_unsupported.dart.weak.expect | 32 +-- ...teral_unsupported.dart.weak.modular.expect | 32 +-- ...l_unsupported.dart.weak.transformed.expect | 32 +-- .../testcases/records/type_record.dart | 2 +- .../records/type_record.dart.strong.expect | 2 +- ...type_record.dart.strong.transformed.expect | 2 +- .../type_record.dart.textual_outline.expect | 2 +- ...ecord.dart.textual_outline_modelled.expect | 4 +- .../records/type_record.dart.weak.expect | 2 +- .../type_record.dart.weak.modular.expect | 2 +- .../type_record.dart.weak.outline.expect | 2 +- .../type_record.dart.weak.transformed.expect | 2 +- .../records/type_record_as_supertype.dart | 9 + ...ype_record_as_supertype.dart.strong.expect | 74 +++++- ...s_supertype.dart.strong.transformed.expect | 74 +++++- .../type_record_as_supertype.dart.weak.expect | 74 +++++- ...cord_as_supertype.dart.weak.modular.expect | 74 +++++- ...cord_as_supertype.dart.weak.outline.expect | 74 +++++- ..._as_supertype.dart.weak.transformed.expect | 74 +++++- .../testcases/textual_outline.status | 2 - runtime/vm/experimental_features.cc | 4 +- runtime/vm/experimental_features.h | 2 + .../web/native/native_mixin_field2_test.dart | 6 +- tests/web/native/native_mixin_field_test.dart | 6 +- .../native/native_mixin_multiple2_test.dart | 6 +- .../native/native_mixin_multiple3_test.dart | 6 +- .../native/native_mixin_multiple_test.dart | 6 +- tests/web/native/native_mixin_test.dart | 4 +- .../native/native_mixin_with_plain_test.dart | 4 +- tests/web/native/subclassing_3_test.dart | 2 +- tests/web/native/subclassing_4_test.dart | 2 +- tests/web/native/subclassing_5_test.dart | 2 +- tests/web/native/subclassing_type_test.dart | 2 +- tools/FAKE_COMMITS | 1 + tools/experimental_features.yaml | 26 +- 353 files changed, 2661 insertions(+), 1829 deletions(-) create mode 100644 pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline_modelled.expect create mode 100644 pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline_modelled.expect create mode 100644 pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.transformed.expect create mode 100644 pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.transformed.expect diff --git a/pkg/_fe_analyzer_shared/lib/src/experiments/flags.dart b/pkg/_fe_analyzer_shared/lib/src/experiments/flags.dart index f1125e57373..ce10d051f33 100644 --- a/pkg/_fe_analyzer_shared/lib/src/experiments/flags.dart +++ b/pkg/_fe_analyzer_shared/lib/src/experiments/flags.dart @@ -11,7 +11,7 @@ enum ExperimentalFlag { classModifiers( name: 'class-modifiers', - isEnabledByDefault: false, + isEnabledByDefault: true, isExpired: false, experimentEnabledVersion: const Version(3, 0), experimentReleasedVersion: const Version(3, 0)), @@ -133,11 +133,11 @@ enum ExperimentalFlag { isEnabledByDefault: false, isExpired: false, experimentEnabledVersion: const Version(3, 0), - experimentReleasedVersion: const Version(2, 19)), + experimentReleasedVersion: const Version(3, 0)), sealedClass( name: 'sealed-class', - isEnabledByDefault: false, + isEnabledByDefault: true, isExpired: false, experimentEnabledVersion: const Version(3, 0), experimentReleasedVersion: const Version(3, 0)), diff --git a/pkg/_fe_analyzer_shared/test/inheritance/data/function.dart b/pkg/_fe_analyzer_shared/test/inheritance/data/function.dart index 3e58786a7be..d1ef41df3a5 100644 --- a/pkg/_fe_analyzer_shared/test/inheritance/data/function.dart +++ b/pkg/_fe_analyzer_shared/test/inheritance/data/function.dart @@ -5,21 +5,26 @@ /*library: nnbd=true*/ /*class: A:A,Object*/ -class A implements Function {} +class /*cfe|cfe:builder.error: SubtypeOfBaseOrFinalIsNotBaseFinalOrSealed*/ A + implements /*analyzer.error: CompileTimeErrorCode.FINAL_CLASS_IMPLEMENTED_OUTSIDE_OF_LIBRARY*/ + /*cfe|cfe:builder.error: FinalClassImplementedOutsideOfLibrary*/ Function {} /*class: B:B,Object*/ -class B extends Function {} +class /*cfe|cfe:builder.error: SubtypeOfBaseOrFinalIsNotBaseFinalOrSealed*/ B + extends /*analyzer.error: CompileTimeErrorCode.FINAL_CLASS_EXTENDED_OUTSIDE_OF_LIBRARY*/ /*cfe|cfe:builder.error: FinalClassExtendedOutsideOfLibrary*/ Function {} /*cfe|cfe:builder.class: C:C,Object,_C&Object&Function*/ /*analyzer.class: C:C,Object*/ -class C extends Object +class /*cfe|cfe:builder.error: SubtypeOfBaseOrFinalIsNotBaseFinalOrSealed*/ C + extends Object with /*analyzer.error: CompileTimeErrorCode.CLASS_USED_AS_MIXIN*/ - Function {} + /*cfe|cfe:builder.error: CantUseClassAsMixin*/ Function {} // CFE hides that this is a mixin declaration since its mixed in type has been // removed. /*cfe|cfe:builder.class: _C&Object&Function:Object,_C&Object&Function*/ /*cfe|cfe:builder.class: D:D,Object*/ -class D = Object - with /*analyzer.error: CompileTimeErrorCode.CLASS_USED_AS_MIXIN*/ Function; +class /*cfe|cfe:builder.error: SubtypeOfBaseOrFinalIsNotBaseFinalOrSealed*/ D = Object + with /*analyzer.error: CompileTimeErrorCode.CLASS_USED_AS_MIXIN*/ /*cfe|cfe:builder.error: CantUseClassAsMixin*/ + Function; diff --git a/pkg/analysis_server/test/src/services/correction/fix/remove_name_from_declaration_clause_test.dart b/pkg/analysis_server/test/src/services/correction/fix/remove_name_from_declaration_clause_test.dart index 39a06b37dcf..a607a4a82c8 100644 --- a/pkg/analysis_server/test/src/services/correction/fix/remove_name_from_declaration_clause_test.dart +++ b/pkg/analysis_server/test/src/services/correction/fix/remove_name_from_declaration_clause_test.dart @@ -37,9 +37,11 @@ class DeprecatedImplementsFunctionTest extends FixProcessorTest { Future test_oneName() async { await resolveTestCode(''' +// @dart = 2.19 abstract class C implements Function {} '''); await assertHasFix(''' +// @dart = 2.19 abstract class C {} '''); } diff --git a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart index 51d5defc2f3..846f7445a4b 100644 --- a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart +++ b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart @@ -140,8 +140,8 @@ class ExperimentalFeatures { isEnabledByDefault: IsEnabledByDefault.class_modifiers, isExpired: IsExpired.class_modifiers, documentation: 'Class modifiers', - experimentalReleaseVersion: Version.parse('3.0.0'), - releaseVersion: null, + experimentalReleaseVersion: null, + releaseVersion: Version.parse('3.0.0'), ); static final const_functions = ExperimentalFeature( @@ -314,7 +314,7 @@ class ExperimentalFeatures { isEnabledByDefault: IsEnabledByDefault.records, isExpired: IsExpired.records, documentation: 'Records', - experimentalReleaseVersion: Version.parse('3.0.0'), + experimentalReleaseVersion: null, releaseVersion: null, ); @@ -324,8 +324,8 @@ class ExperimentalFeatures { isEnabledByDefault: IsEnabledByDefault.sealed_class, isExpired: IsExpired.sealed_class, documentation: 'Sealed class', - experimentalReleaseVersion: Version.parse('3.0.0'), - releaseVersion: null, + experimentalReleaseVersion: null, + releaseVersion: Version.parse('3.0.0'), ); static final set_literals = ExperimentalFeature( @@ -414,7 +414,7 @@ class ExperimentalFeatures { /// enabled by default. class IsEnabledByDefault { /// Default state of the experiment "class-modifiers" - static const bool class_modifiers = false; + static const bool class_modifiers = true; /// Default state of the experiment "const-functions" static const bool const_functions = false; @@ -468,7 +468,7 @@ class IsEnabledByDefault { static const bool records = false; /// Default state of the experiment "sealed-class" - static const bool sealed_class = false; + static const bool sealed_class = true; /// Default state of the experiment "set-literals" static const bool set_literals = true; diff --git a/pkg/dartdev/test/commands/run_test.dart b/pkg/dartdev/test/commands/run_test.dart index 959379edd09..c429cfcaa6e 100644 --- a/pkg/dartdev/test/commands/run_test.dart +++ b/pkg/dartdev/test/commands/run_test.dart @@ -118,7 +118,7 @@ void run() { // VM service). // // See https://github.com/dart-lang/sdk/issues/50230 - p = project(sdkConstraint: VersionConstraint.parse('>=2.19.0 <3.0.0')); + p = project(sdkConstraint: VersionConstraint.parse('>=3.0.0-0 <4.0.0')); p.file('main.dart', 'void main(args) { print("Record: \${(1, 2)}"); }'); ProcessResult result = await p.run([ 'run', diff --git a/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart b/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart index 91bd594ce61..cea1b2395c3 100644 --- a/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart +++ b/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart @@ -61,7 +61,7 @@ class ExperimentalFlag { static const ExperimentalFlag classModifiers = const ExperimentalFlag( name: 'class-modifiers', - isEnabledByDefault: false, + isEnabledByDefault: true, isExpired: false, enabledVersion: const Version(3, 0), experimentEnabledVersion: const Version(3, 0), @@ -201,11 +201,11 @@ class ExperimentalFlag { isExpired: false, enabledVersion: const Version(3, 0), experimentEnabledVersion: const Version(3, 0), - experimentReleasedVersion: const Version(2, 19)); + experimentReleasedVersion: const Version(3, 0)); static const ExperimentalFlag sealedClass = const ExperimentalFlag( name: 'sealed-class', - isEnabledByDefault: false, + isEnabledByDefault: true, isExpired: false, enabledVersion: const Version(3, 0), experimentEnabledVersion: const Version(3, 0), diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml index eec6cf16032..9fdfc3cbcda 100644 --- a/pkg/front_end/messages.yaml +++ b/pkg/front_end/messages.yaml @@ -541,7 +541,7 @@ WithBeforeExtends: problemMessage: "The extends clause must be before the with clause." correctionMessage: "Try moving the extends clause before the with clause." analyzerCode: ParserErrorCode.WITH_BEFORE_EXTENDS - script: "class B {} class C {} class A with B extends C {}" + script: "mixin B {} class C {} class A with B extends C {}" ImplementsBeforeExtends: index: 44 @@ -596,8 +596,8 @@ MultipleClauses: analyzerCode: ParserErrorCode.MULTIPLE_CLAUSES index: 121 script: - - "class B {} enum A implements B implements C, D { v; }" - - "class B {} enum A with B with C, D { v; }" + - "mixin B {} enum A implements B implements C, D { v; }" + - "mixin B {} enum A with B with C, D { v; }" OutOfOrderClauses: problemMessage: "The '#string' clause must come before the '#string2' clause." @@ -5891,6 +5891,7 @@ MixinInheritsFromNotObject: problemMessage: "The class '#name' can't be used as a mixin because it extends a class other than 'Object'." analyzerCode: MIXIN_INHERITS_FROM_NOT_OBJECT script: | + // @dart=2.19 class Base {} class Mixin extends Base {} class C extends Base with Mixin {} diff --git a/pkg/front_end/test/macros/application/data/package_config.json b/pkg/front_end/test/macros/application/data/package_config.json index 2e8365d4891..0a4fb7cb316 100644 --- a/pkg/front_end/test/macros/application/data/package_config.json +++ b/pkg/front_end/test/macros/application/data/package_config.json @@ -8,11 +8,13 @@ { "name": "meta", "rootUri": "../../../../../meta/", - "packageUri": "lib/" + "packageUri": "lib/", + "languageVersion": "2.12" }, { "name": "_fe_analyzer_shared", - "rootUri": "../../../../../_fe_analyzer_shared/lib/" + "rootUri": "../../../../../_fe_analyzer_shared/lib/", + "languageVersion": "2.17" } ] -} \ No newline at end of file +} diff --git a/pkg/front_end/test/macros/application/data/tests/sequence.dart b/pkg/front_end/test/macros/application/data/tests/sequence.dart index cce16034128..1a5cc698f91 100644 --- a/pkg/front_end/test/macros/application/data/tests/sequence.dart +++ b/pkg/front_end/test/macros/application/data/tests/sequence.dart @@ -184,7 +184,7 @@ augment class Class7c { method() {} } */ -class Class7c {} +mixin Class7c {} @SequenceMacro(0) /*class: Class7b: @@ -204,4 +204,4 @@ augment class Class7a { method() {} } */ -class Class7a {} +mixin Class7a {} diff --git a/pkg/front_end/test/macros/application/data/tests/sequence.dart.expect b/pkg/front_end/test/macros/application/data/tests/sequence.dart.expect index 691ef16d4da..b26a054f09d 100644 --- a/pkg/front_end/test/macros/application/data/tests/sequence.dart.expect +++ b/pkg/front_end/test/macros/application/data/tests/sequence.dart.expect @@ -110,10 +110,7 @@ class Class7d extends self::_Class7d&Class7b&Class7c { method /* from org-dartlang-augmentation:/a/b/c/main.dart-17 */ method2() → dynamic {} } @#C2 -class Class7c extends core::Object { - synthetic constructor •() → self::Class7c - : super core::Object::•() - ; +class Class7c extends core::Object /*isMixinDeclaration*/ { method /* from org-dartlang-augmentation:/a/b/c/main.dart-16 */ method() → dynamic {} } abstract class _Class7b&Object&Class7a = core::Object with self::Class7a /*isAnonymousMixin,hasConstConstructor*/ { @@ -131,10 +128,7 @@ class Class7b extends self::_Class7b&Object&Class7a { method /* from org-dartlang-augmentation:/a/b/c/main.dart-15 */ method1() → dynamic {} } @#C2 -class Class7a extends core::Object { - synthetic constructor •() → self::Class7a - : super core::Object::•() - ; +class Class7a extends core::Object /*isMixinDeclaration*/ { method /* from org-dartlang-augmentation:/a/b/c/main.dart-14 */ method() → dynamic {} } diff --git a/pkg/front_end/test/macros/declaration/data/package_config.json b/pkg/front_end/test/macros/declaration/data/package_config.json index 55ff011044b..0cac76a594e 100644 --- a/pkg/front_end/test/macros/declaration/data/package_config.json +++ b/pkg/front_end/test/macros/declaration/data/package_config.json @@ -11,7 +11,8 @@ }, { "name": "_fe_analyzer_shared", - "rootUri": "../../../../../_fe_analyzer_shared/lib/" + "rootUri": "../../../../../_fe_analyzer_shared/lib/", + "languageVersion": "2.17" } ] -} \ No newline at end of file +} diff --git a/pkg/front_end/test/macros/incremental/data/package_config.json b/pkg/front_end/test/macros/incremental/data/package_config.json index 2e8365d4891..0a4fb7cb316 100644 --- a/pkg/front_end/test/macros/incremental/data/package_config.json +++ b/pkg/front_end/test/macros/incremental/data/package_config.json @@ -8,11 +8,13 @@ { "name": "meta", "rootUri": "../../../../../meta/", - "packageUri": "lib/" + "packageUri": "lib/", + "languageVersion": "2.12" }, { "name": "_fe_analyzer_shared", - "rootUri": "../../../../../_fe_analyzer_shared/lib/" + "rootUri": "../../../../../_fe_analyzer_shared/lib/", + "languageVersion": "2.17" } ] -} \ No newline at end of file +} diff --git a/pkg/front_end/testcases/dartino/add_named_mixin_application.incremental.yaml b/pkg/front_end/testcases/dartino/add_named_mixin_application.incremental.yaml index 8cea05d7748..c313c3929ab 100644 --- a/pkg/front_end/testcases/dartino/add_named_mixin_application.incremental.yaml +++ b/pkg/front_end/testcases/dartino/add_named_mixin_application.incremental.yaml @@ -4,7 +4,7 @@ main.dart.patch: | // Test that we can add a mixin application. - class A {} + mixin class A {} <<<< [] ==== [] class C = Object with A; diff --git a/pkg/front_end/testcases/dartino/remove_named_mixin_application.incremental.yaml b/pkg/front_end/testcases/dartino/remove_named_mixin_application.incremental.yaml index 2e053802a75..b72387ba8e2 100644 --- a/pkg/front_end/testcases/dartino/remove_named_mixin_application.incremental.yaml +++ b/pkg/front_end/testcases/dartino/remove_named_mixin_application.incremental.yaml @@ -4,7 +4,7 @@ main.dart.patch: | // Test that we can remove a mixin application. - class A {} + mixin class A {} <<<< [] class C = Object with A; ==== [] diff --git a/pkg/front_end/testcases/dartino/unchanged_named_mixin_application.incremental.yaml b/pkg/front_end/testcases/dartino/unchanged_named_mixin_application.incremental.yaml index b1d48d167ef..49390b54c01 100644 --- a/pkg/front_end/testcases/dartino/unchanged_named_mixin_application.incremental.yaml +++ b/pkg/front_end/testcases/dartino/unchanged_named_mixin_application.incremental.yaml @@ -4,7 +4,7 @@ main.dart.patch: | // Test that we can handle a mixin application that doesn't change. - class A {} + mixin A {} class C = Object with A; main() { diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart index 867944a8f5d..1a2078b614b 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart @@ -2,25 +2,29 @@ // 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. -abstract class A extends Enum { // Ok. +abstract mixin class A extends Enum { + // Error. int get foo => index; } enum EA with A { element } // Error. -abstract class B implements Enum { // Ok. +abstract mixin class B implements Enum { + // Ok. int get foo => index; } enum EB with B { element } -mixin M on Enum { // Ok. +mixin M on Enum { + // Ok. int get foo => index; } enum EM with M { element } -mixin N implements Enum { // Ok. +mixin N implements Enum { + // Ok. int get foo => index; } @@ -33,7 +37,6 @@ expectEquals(x, y) { } main() { - expectEquals(EA.element.foo, EA.element.index); expectEquals(EB.element.foo, EB.element.index); expectEquals(EM.element.foo, EM.element.index); expectEquals(EN.element.foo, EN.element.index); diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.expect index 5ccaff43e5e..fbeffb7b6d7 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A : super core::Enum::•() ; @@ -32,7 +40,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B : super core::Object::•() ; @@ -101,7 +109,6 @@ static method expectEquals(dynamic x, dynamic y) → dynamic { } } static method main() → dynamic { - self::expectEquals(#C3.{self::_EA&_Enum&A::foo}{core::int}, #C3.{core::_Enum::index}{core::int}); self::expectEquals(#C5.{self::_EB&_Enum&B::foo}{core::int}, #C5.{core::_Enum::index}{core::int}); self::expectEquals(#C7.{self::_EM&_Enum&M::foo}{core::int}, #C7.{core::_Enum::index}{core::int}); self::expectEquals(#C9.{self::_EN&_Enum&N::foo}{core::int}, #C9.{core::_Enum::index}{core::int}); @@ -123,13 +130,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///enum_as_supertype.dart: -- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) -- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) +- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) +- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) -- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) +- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) +- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.transformed.expect index a80e1a0aaf1..f5e37b74201 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.transformed.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A : super core::Enum::•() ; @@ -32,7 +40,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B : super core::Object::•() ; @@ -101,7 +109,6 @@ static method expectEquals(dynamic x, dynamic y) → dynamic { } } static method main() → dynamic { - self::expectEquals(#C3.{self::_EA&_Enum&A::foo}{core::int}, #C3.{core::_Enum::index}{core::int}); self::expectEquals(#C5.{self::_EB&_Enum&B::foo}{core::int}, #C5.{core::_Enum::index}{core::int}); self::expectEquals(#C7.{self::_EM&_Enum&M::foo}{core::int}, #C7.{core::_Enum::index}{core::int}); self::expectEquals(#C9.{self::_EN&_Enum&N::foo}{core::int}, #C9.{core::_Enum::index}{core::int}); @@ -123,13 +130,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///enum_as_supertype.dart: -- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) -- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) +- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) +- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) -- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) +- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) +- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect index c5514b9daf3..6695dac2f51 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect @@ -1,10 +1,10 @@ -abstract class A extends Enum { +abstract mixin class A extends Enum { int get foo => index; } enum EA with A { element } -abstract class B implements Enum { +abstract mixin class B implements Enum { int get foo => index; } diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline_modelled.expect index 1a4630a9067..a2acc3a51f9 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline_modelled.expect @@ -1,8 +1,8 @@ -abstract class A extends Enum { +abstract mixin class A extends Enum { int get foo => index; } -abstract class B implements Enum { +abstract mixin class B implements Enum { int get foo => index; } diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.expect index 6c094a91b44..76bd26a7c62 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A : super core::Enum::•() ; @@ -32,7 +40,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B : super core::Object::•() ; @@ -101,7 +109,6 @@ static method expectEquals(dynamic x, dynamic y) → dynamic { } } static method main() → dynamic { - self::expectEquals(#C3.{self::_EA&_Enum&A::foo}{core::int}, #C3.{core::_Enum::index}{core::int}); self::expectEquals(#C5.{self::_EB&_Enum&B::foo}{core::int}, #C5.{core::_Enum::index}{core::int}); self::expectEquals(#C7.{self::_EM&_Enum&M::foo}{core::int}, #C7.{core::_Enum::index}{core::int}); self::expectEquals(#C9.{self::_EN&_Enum&N::foo}{core::int}, #C9.{core::_Enum::index}{core::int}); @@ -123,13 +130,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///enum_as_supertype.dart: -- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) -- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) +- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) +- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) -- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) +- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) +- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.modular.expect index 6c094a91b44..76bd26a7c62 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.modular.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.modular.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A : super core::Enum::•() ; @@ -32,7 +40,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B : super core::Object::•() ; @@ -101,7 +109,6 @@ static method expectEquals(dynamic x, dynamic y) → dynamic { } } static method main() → dynamic { - self::expectEquals(#C3.{self::_EA&_Enum&A::foo}{core::int}, #C3.{core::_Enum::index}{core::int}); self::expectEquals(#C5.{self::_EB&_Enum&B::foo}{core::int}, #C5.{core::_Enum::index}{core::int}); self::expectEquals(#C7.{self::_EM&_Enum&M::foo}{core::int}, #C7.{core::_Enum::index}{core::int}); self::expectEquals(#C9.{self::_EN&_Enum&N::foo}{core::int}, #C9.{core::_Enum::index}{core::int}); @@ -123,13 +130,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///enum_as_supertype.dart: -- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) -- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) +- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) +- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) -- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) +- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) +- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.outline.expect index d188b2afa9f..56cabd19a97 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.outline.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A ; get foo() → core::int @@ -30,7 +38,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B ; get foo() → core::int @@ -96,12 +104,12 @@ static method main() → dynamic Extra constant evaluation status: -Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:9:6 -> ListConstant(const [const EA{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:9:18 -> InstanceConstant(const EA{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:15:6 -> ListConstant(const [const EB{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:15:18 -> InstanceConstant(const EB{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:21:6 -> ListConstant(const [const EM{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:21:18 -> InstanceConstant(const EM{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:27:6 -> ListConstant(const [const EN{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:27:18 -> InstanceConstant(const EN{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:10:6 -> ListConstant(const [const EA{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:10:18 -> InstanceConstant(const EA{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:17:6 -> ListConstant(const [const EB{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:17:18 -> InstanceConstant(const EB{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:24:6 -> ListConstant(const [const EM{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:24:18 -> InstanceConstant(const EM{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:31:6 -> ListConstant(const [const EN{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:31:18 -> InstanceConstant(const EN{}) Extra constant evaluation: evaluated: 32, effectively constant: 8 diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.transformed.expect index c8785066da5..48d479b25e5 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.transformed.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A : super core::Enum::•() ; @@ -32,7 +40,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B : super core::Object::•() ; @@ -101,7 +109,6 @@ static method expectEquals(dynamic x, dynamic y) → dynamic { } } static method main() → dynamic { - self::expectEquals(#C3.{self::_EA&_Enum&A::foo}{core::int}, #C3.{core::_Enum::index}{core::int}); self::expectEquals(#C5.{self::_EB&_Enum&B::foo}{core::int}, #C5.{core::_Enum::index}{core::int}); self::expectEquals(#C7.{self::_EM&_Enum&M::foo}{core::int}, #C7.{core::_Enum::index}{core::int}); self::expectEquals(#C9.{self::_EN&_Enum&N::foo}{core::int}, #C9.{core::_Enum::index}{core::int}); @@ -123,13 +130,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///enum_as_supertype.dart: -- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) -- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) +- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) +- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) -- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) +- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) +- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.expect index 0eaf7c8fe17..26c15e703f3 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.transformed.expect index 07f29f977b4..1c009c9bd19 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.transformed.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.expect index 0eaf7c8fe17..26c15e703f3 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.modular.expect index 0eaf7c8fe17..26c15e703f3 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.modular.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.modular.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.outline.expect index ee808c747d8..69adef0f7f0 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.outline.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.transformed.expect index 07f29f977b4..1c009c9bd19 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.transformed.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart index d2945288c26..091eaa5d9c9 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart @@ -2,7 +2,7 @@ // 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. -class A1 { +mixin class A1 { int get hashCode => 42; } @@ -10,7 +10,7 @@ enum E1 with A1 { // Error. element } -class A2 { +mixin class A2 { int get values => 42; } @@ -18,7 +18,7 @@ enum E2 with A2 { // Error. element } -class A3 { +mixin class A3 { int get index => 42; } @@ -26,7 +26,7 @@ enum E3 with A3 { // Error. element } -class A4 { +mixin class A4 { bool operator==(Object other) => true; } @@ -66,7 +66,7 @@ enum E8 with M8 { // Error. element } -abstract class A9 { +abstract mixin class A9 { int get index; int get hashCode; bool operator==(Object other); diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.expect index a5bc8fcc3ca..365eefbdf97 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 : super core::Object::•() ; @@ -98,7 +98,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 : super core::Object::•() ; @@ -121,7 +121,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 : super core::Object::•() ; @@ -144,7 +144,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 : super core::Object::•() ; @@ -247,7 +247,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.transformed.expect index 7cea0f35c24..db2b8342222 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.transformed.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 : super core::Object::•() ; @@ -98,7 +98,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 : super core::Object::•() ; @@ -121,7 +121,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 : super core::Object::•() ; @@ -144,7 +144,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 : super core::Object::•() ; @@ -247,7 +247,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline.expect index 52a07302b8e..6f269a71275 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline.expect @@ -1,22 +1,22 @@ -class A1 { +mixin class A1 { int get hashCode => 42; } enum E1 with A1 { element } -class A2 { +mixin class A2 { int get values => 42; } enum E2 with A2 { element } -class A3 { +mixin class A3 { int get index => 42; } enum E3 with A3 { element } -class A4 { +mixin class A4 { bool operator ==(Object other) => true; } @@ -46,7 +46,7 @@ mixin M8 { enum E8 with M8 { element } -abstract class A9 { +abstract mixin class A9 { int get index; int get hashCode; bool operator ==(Object other); diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline_modelled.expect index 38785e8a855..e632a4ce85a 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline_modelled.expect @@ -1,25 +1,9 @@ -abstract class A9 { +abstract mixin class A9 { bool operator ==(Object other); int get hashCode; int get index; } -class A1 { - int get hashCode => 42; -} - -class A2 { - int get values => 42; -} - -class A3 { - int get index => 42; -} - -class A4 { - bool operator ==(Object other) => true; -} - enum E1 with A1 { element } enum E10 with M10 { element } @@ -58,3 +42,19 @@ mixin M7 { mixin M8 { bool operator ==(Object other) => true; } + +mixin class A1 { + int get hashCode => 42; +} + +mixin class A2 { + int get values => 42; +} + +mixin class A3 { + int get index => 42; +} + +mixin class A4 { + bool operator ==(Object other) => true; +} diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.expect index a5116829ced..9ca3336d22f 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 : super core::Object::•() ; @@ -98,7 +98,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 : super core::Object::•() ; @@ -121,7 +121,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 : super core::Object::•() ; @@ -144,7 +144,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 : super core::Object::•() ; @@ -247,7 +247,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.modular.expect index a5116829ced..9ca3336d22f 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.modular.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.modular.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 : super core::Object::•() ; @@ -98,7 +98,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 : super core::Object::•() ; @@ -121,7 +121,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 : super core::Object::•() ; @@ -144,7 +144,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 : super core::Object::•() ; @@ -247,7 +247,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.outline.expect index 9d97c0ab24e..033cea29362 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.outline.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 ; get hashCode() → core::int @@ -96,7 +96,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 ; get values() → core::int @@ -117,7 +117,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 ; get index() → core::int @@ -138,7 +138,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 ; operator ==(core::Object other) → core::bool @@ -235,7 +235,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 ; abstract get index() → core::int; diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.transformed.expect index 2033bc68077..c63aeb0d4f2 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.transformed.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 : super core::Object::•() ; @@ -98,7 +98,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 : super core::Object::•() ; @@ -121,7 +121,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 : super core::Object::•() ; @@ -144,7 +144,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 : super core::Object::•() ; @@ -247,7 +247,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart b/pkg/front_end/testcases/enhanced_enums/issue49236.dart index 076a34d3ef2..6486493e87b 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart @@ -6,7 +6,7 @@ mixin M { String toString() => "M"; } -abstract class A { +abstract mixin class A { String toString() => "A"; } @@ -14,9 +14,7 @@ abstract class B implements Enum { String toString() => "B"; } -enum E1 with M { - element -} +enum E1 with M { element } enum E2 with M { element; @@ -30,9 +28,7 @@ enum E3 { String toString() => "E3"; } -enum E4 implements B { - element -} +enum E4 implements B { element } enum E5 implements B { element; @@ -40,9 +36,7 @@ enum E5 implements B { String toString() => "E5"; } -enum E6 with A { - element -} +enum E6 with A { element } enum E7 with A { element; diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.expect index fa3b8fe5705..f98b6208efd 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String return "M"; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; @@ -160,12 +160,12 @@ org-dartlang-testcase:///issue49236.dart: - _E1&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:17:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E2. (from org-dartlang-testcase:///issue49236.dart:21:6) -- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:21:6) -- E3. (from org-dartlang-testcase:///issue49236.dart:27:6) -- E4. (from org-dartlang-testcase:///issue49236.dart:33:6) -- E5. (from org-dartlang-testcase:///issue49236.dart:37:6) -- E6. (from org-dartlang-testcase:///issue49236.dart:43:6) -- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:43:6) -- E7. (from org-dartlang-testcase:///issue49236.dart:47:6) -- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:47:6) +- E2. (from org-dartlang-testcase:///issue49236.dart:19:6) +- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:19:6) +- E3. (from org-dartlang-testcase:///issue49236.dart:25:6) +- E4. (from org-dartlang-testcase:///issue49236.dart:31:6) +- E5. (from org-dartlang-testcase:///issue49236.dart:33:6) +- E6. (from org-dartlang-testcase:///issue49236.dart:39:6) +- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:39:6) +- E7. (from org-dartlang-testcase:///issue49236.dart:41:6) +- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:41:6) diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.transformed.expect index ec28d9cc252..72c93f01873 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.transformed.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String return "M"; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; @@ -160,12 +160,12 @@ org-dartlang-testcase:///issue49236.dart: - _E1&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:17:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E2. (from org-dartlang-testcase:///issue49236.dart:21:6) -- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:21:6) -- E3. (from org-dartlang-testcase:///issue49236.dart:27:6) -- E4. (from org-dartlang-testcase:///issue49236.dart:33:6) -- E5. (from org-dartlang-testcase:///issue49236.dart:37:6) -- E6. (from org-dartlang-testcase:///issue49236.dart:43:6) -- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:43:6) -- E7. (from org-dartlang-testcase:///issue49236.dart:47:6) -- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:47:6) +- E2. (from org-dartlang-testcase:///issue49236.dart:19:6) +- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:19:6) +- E3. (from org-dartlang-testcase:///issue49236.dart:25:6) +- E4. (from org-dartlang-testcase:///issue49236.dart:31:6) +- E5. (from org-dartlang-testcase:///issue49236.dart:33:6) +- E6. (from org-dartlang-testcase:///issue49236.dart:39:6) +- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:39:6) +- E7. (from org-dartlang-testcase:///issue49236.dart:41:6) +- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:41:6) diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline.expect index 55f4471c608..07c4673e411 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline.expect @@ -2,7 +2,7 @@ mixin M { String toString() => "M"; } -abstract class A { +abstract mixin class A { String toString() => "A"; } diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline_modelled.expect index 76eb999d558..b699b994444 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline_modelled.expect @@ -1,11 +1,11 @@ -abstract class A { - String toString() => "A"; -} - abstract class B implements Enum { String toString() => "B"; } +abstract mixin class A { + String toString() => "A"; +} + checkEqual(x, y) {} enum E1 with M { element } diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.expect index c4990bcf5a2..fe9414446aa 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String return "M"; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; @@ -160,12 +160,12 @@ org-dartlang-testcase:///issue49236.dart: - _E1&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:17:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E2. (from org-dartlang-testcase:///issue49236.dart:21:6) -- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:21:6) -- E3. (from org-dartlang-testcase:///issue49236.dart:27:6) -- E4. (from org-dartlang-testcase:///issue49236.dart:33:6) -- E5. (from org-dartlang-testcase:///issue49236.dart:37:6) -- E6. (from org-dartlang-testcase:///issue49236.dart:43:6) -- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:43:6) -- E7. (from org-dartlang-testcase:///issue49236.dart:47:6) -- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:47:6) +- E2. (from org-dartlang-testcase:///issue49236.dart:19:6) +- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:19:6) +- E3. (from org-dartlang-testcase:///issue49236.dart:25:6) +- E4. (from org-dartlang-testcase:///issue49236.dart:31:6) +- E5. (from org-dartlang-testcase:///issue49236.dart:33:6) +- E6. (from org-dartlang-testcase:///issue49236.dart:39:6) +- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:39:6) +- E7. (from org-dartlang-testcase:///issue49236.dart:41:6) +- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:41:6) diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.modular.expect index c4990bcf5a2..fe9414446aa 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.modular.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.modular.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String return "M"; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; @@ -160,12 +160,12 @@ org-dartlang-testcase:///issue49236.dart: - _E1&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:17:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E2. (from org-dartlang-testcase:///issue49236.dart:21:6) -- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:21:6) -- E3. (from org-dartlang-testcase:///issue49236.dart:27:6) -- E4. (from org-dartlang-testcase:///issue49236.dart:33:6) -- E5. (from org-dartlang-testcase:///issue49236.dart:37:6) -- E6. (from org-dartlang-testcase:///issue49236.dart:43:6) -- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:43:6) -- E7. (from org-dartlang-testcase:///issue49236.dart:47:6) -- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:47:6) +- E2. (from org-dartlang-testcase:///issue49236.dart:19:6) +- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:19:6) +- E3. (from org-dartlang-testcase:///issue49236.dart:25:6) +- E4. (from org-dartlang-testcase:///issue49236.dart:31:6) +- E5. (from org-dartlang-testcase:///issue49236.dart:33:6) +- E6. (from org-dartlang-testcase:///issue49236.dart:39:6) +- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:39:6) +- E7. (from org-dartlang-testcase:///issue49236.dart:41:6) +- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:41:6) diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.outline.expect index d085f03e037..99a7c968531 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.outline.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String ; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A ; method toString() → core::String @@ -121,17 +121,17 @@ static method main() → dynamic Extra constant evaluation status: Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:17:6 -> ListConstant(const [const E1{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:18:3 -> InstanceConstant(const E1{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:21:6 -> ListConstant(const [const E2{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:22:3 -> InstanceConstant(const E2{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:27:6 -> ListConstant(const [const E3{_Enum.index: 0, _Enum._name: "element"}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:28:3 -> InstanceConstant(const E3{_Enum.index: 0, _Enum._name: "element"}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:33:6 -> ListConstant(const [const E4{_Enum.index: 0, _Enum._name: "element"}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:34:3 -> InstanceConstant(const E4{_Enum.index: 0, _Enum._name: "element"}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:37:6 -> ListConstant(const [const E5{_Enum.index: 0, _Enum._name: "element"}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:38:3 -> InstanceConstant(const E5{_Enum.index: 0, _Enum._name: "element"}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:43:6 -> ListConstant(const [const E6{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:44:3 -> InstanceConstant(const E6{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:47:6 -> ListConstant(const [const E7{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:48:3 -> InstanceConstant(const E7{}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:17:18 -> InstanceConstant(const E1{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:19:6 -> ListConstant(const [const E2{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:20:3 -> InstanceConstant(const E2{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:25:6 -> ListConstant(const [const E3{_Enum.index: 0, _Enum._name: "element"}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:26:3 -> InstanceConstant(const E3{_Enum.index: 0, _Enum._name: "element"}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:31:6 -> ListConstant(const [const E4{_Enum.index: 0, _Enum._name: "element"}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:31:24 -> InstanceConstant(const E4{_Enum.index: 0, _Enum._name: "element"}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:33:6 -> ListConstant(const [const E5{_Enum.index: 0, _Enum._name: "element"}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:34:3 -> InstanceConstant(const E5{_Enum.index: 0, _Enum._name: "element"}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:39:6 -> ListConstant(const [const E6{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:39:18 -> InstanceConstant(const E6{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:41:6 -> ListConstant(const [const E7{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:42:3 -> InstanceConstant(const E7{}) Extra constant evaluation: evaluated: 53, effectively constant: 14 diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.transformed.expect index 4137f1c8cc9..025f9efd76c 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.transformed.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String return "M"; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; @@ -160,12 +160,12 @@ org-dartlang-testcase:///issue49236.dart: - _E1&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:17:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E2. (from org-dartlang-testcase:///issue49236.dart:21:6) -- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:21:6) -- E3. (from org-dartlang-testcase:///issue49236.dart:27:6) -- E4. (from org-dartlang-testcase:///issue49236.dart:33:6) -- E5. (from org-dartlang-testcase:///issue49236.dart:37:6) -- E6. (from org-dartlang-testcase:///issue49236.dart:43:6) -- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:43:6) -- E7. (from org-dartlang-testcase:///issue49236.dart:47:6) -- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:47:6) +- E2. (from org-dartlang-testcase:///issue49236.dart:19:6) +- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:19:6) +- E3. (from org-dartlang-testcase:///issue49236.dart:25:6) +- E4. (from org-dartlang-testcase:///issue49236.dart:31:6) +- E5. (from org-dartlang-testcase:///issue49236.dart:33:6) +- E6. (from org-dartlang-testcase:///issue49236.dart:39:6) +- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:39:6) +- E7. (from org-dartlang-testcase:///issue49236.dart:41:6) +- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:41:6) diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart index 44f446dcd1f..4a5fee3a43a 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart @@ -6,9 +6,9 @@ typedef ContravariantUse = Function(T); typedef InvariantUse = T Function(T); -class Empty {} +mixin Empty {} -class A {} +mixin class A {} class B extends A {} diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.expect index cf5a68f7d03..6458e29c0f8 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.expect @@ -115,12 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - : super core::Object::•() - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.transformed.expect index 0bdc8f7185a..7a5fd328a19 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.transformed.expect @@ -115,12 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - : super core::Object::•() - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect index c9ae869d1c5..d5e8b69a887 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect @@ -1,9 +1,8 @@ typedef ContravariantUse = Function(T); typedef InvariantUse = T Function(T); +mixin Empty {} -class Empty {} - -class A {} +mixin class A {} class B extends A {} diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect index 2b6edb90349..28951146dd0 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect @@ -1,5 +1,3 @@ -class A {} - class B extends A {} class Bc extends A> {} @@ -19,8 +17,6 @@ class E = A with Empty; class Ec = A> with Empty; class Ei = A> with Empty; -class Empty {} - class F extends Object with A {} class Fc extends Object with A> {} @@ -73,5 +69,9 @@ class Jffc extends A))> {} class Jfff extends A {} main() {} +mixin Empty {} + +mixin class A {} + typedef ContravariantUse = Function(T); typedef InvariantUse = T Function(T); diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect index cf5a68f7d03..6458e29c0f8 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect @@ -115,12 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - : super core::Object::•() - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect index cf5a68f7d03..6458e29c0f8 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect @@ -115,12 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - : super core::Object::•() - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect index b00d9318e6e..7d024522f2f 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect @@ -115,11 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A ; } diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect index 0bdc8f7185a..7a5fd328a19 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect @@ -115,12 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - : super core::Object::•() - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart b/pkg/front_end/testcases/general/base_class_declaration.dart index 03787f362bf..7c9315d6f00 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart +++ b/pkg/front_end/testcases/general/base_class_declaration.dart @@ -2,7 +2,7 @@ // 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. -// @dart=2.18 +// @dart=2.19 base class A {} diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.strong.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.strong.expect index cd1f5614a34..8ab912b5112 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.strong.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.strong.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.strong.transformed.expect index b4b183613e7..e353e791126 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.strong.transformed.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline.expect index 49436e4b342..db0d660b277 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline.expect @@ -1,6 +1,7 @@ -// @dart = 2.18 +// @dart = 2.19 base class A {} + abstract base class B {} -base -mixin M {} + +base mixin M {} base class C = Object with M; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..da065871bb5 --- /dev/null +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline_modelled.expect @@ -0,0 +1,8 @@ +// @dart = 2.19 +abstract base class B {} +base class A {} +---- unknown chunk starts ---- +base +---- unknown chunk ends ---- +base class C = Object with M; +mixin M {} diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.expect index cd1f5614a34..8ab912b5112 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.modular.expect index cd1f5614a34..8ab912b5112 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.modular.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.outline.expect index ad951d4aad6..ea22644fa6c 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.outline.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.transformed.expect index b4b183613e7..e353e791126 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.transformed.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart b/pkg/front_end/testcases/general/bounds_supertypes.dart index 40f4ea16ebe..315d1734a5d 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart @@ -2,13 +2,13 @@ // 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. -class Class {} +mixin class Class {} class ConcreteClass implements Class {} typedef F> = Class; -class G> {} +mixin class G> {} class ExtendsT1 extends F {} // Error diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.expect index 3c458ced2d1..67da29639a7 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class : super core::Object::•() ; @@ -714,7 +714,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.transformed.expect index 5f4d8fdcef1..0da3b968235 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.transformed.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class : super core::Object::•() ; @@ -714,7 +714,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline.expect index 411c6124967..ab84a2dec56 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline.expect @@ -1,10 +1,10 @@ -class Class {} +mixin class Class {} class ConcreteClass implements Class {} typedef F> = Class; -class G> {} +mixin class G> {} class ExtendsT1 extends F {} diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline_modelled.expect index 5203bb65ea0..f0cabc39b8c 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline_modelled.expect @@ -1,5 +1,3 @@ -class Class {} - class ConcreteClass implements Class {} class ExtendsS1 extends G {} @@ -34,8 +32,6 @@ class ExtendsT7 extends F {} class ExtendsT8 extends F {} -class G> {} - class ImplementsS1 implements G {} class ImplementsS2 implements G {} @@ -213,4 +209,9 @@ mixin MixinOnT5 on F {} mixin MixinOnT6 on F> {} mixin MixinOnT7 on F {} mixin MixinOnT8 on F {} + +mixin class Class {} + +mixin class G> {} + typedef F> = Class; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.expect index b199fbaf298..3ff0ccb6a78 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class : super core::Object::•() ; @@ -714,7 +714,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.modular.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.modular.expect index b199fbaf298..3ff0ccb6a78 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.modular.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class : super core::Object::•() ; @@ -714,7 +714,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.outline.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.outline.expect index 834bd311c51..6e9762141ca 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.outline.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class ; } @@ -712,7 +712,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G ; } diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.transformed.expect index 769b6c58bae..1d2b416c81d 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.transformed.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class : super core::Object::•() ; @@ -714,7 +714,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect index 25d5cf7c1b4..d8f4beeb454 100644 --- a/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect +++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect @@ -316,7 +316,7 @@ library /*isNonNullableByDefault*/; // ^^^^ // // pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // C.(); // ^ // pkg/front_end/testcases/general/duplicated_declarations.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.transformed.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.transformed.expect index 25d5cf7c1b4..d8f4beeb454 100644 --- a/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.transformed.expect @@ -316,7 +316,7 @@ library /*isNonNullableByDefault*/; // ^^^^ // // pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // C.(); // ^ // pkg/front_end/testcases/general/duplicated_declarations.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect index cf7c9cb2acb..b3b3dec64ca 100644 --- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect +++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect @@ -316,7 +316,7 @@ library /*isNonNullableByDefault*/; // ^^^^ // // pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // C.(); // ^ // pkg/front_end/testcases/general/duplicated_declarations.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect index cf7c9cb2acb..b3b3dec64ca 100644 --- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect @@ -316,7 +316,7 @@ library /*isNonNullableByDefault*/; // ^^^^ // // pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // C.(); // ^ // pkg/front_end/testcases/general/duplicated_declarations.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.transformed.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.transformed.expect index cf7c9cb2acb..b3b3dec64ca 100644 --- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.transformed.expect @@ -316,7 +316,7 @@ library /*isNonNullableByDefault*/; // ^^^^ // // pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // C.(); // ^ // pkg/front_end/testcases/general/duplicated_declarations.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.strong.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.strong.expect index f7db384b28a..17cdd2d08a8 100644 --- a/pkg/front_end/testcases/general/final_class_declaration.dart.strong.expect +++ b/pkg/front_end/testcases/general/final_class_declaration.dart.strong.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class A {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract final class B {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final mixin M {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.strong.transformed.expect index 07744559f91..1356a8b365b 100644 --- a/pkg/front_end/testcases/general/final_class_declaration.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/final_class_declaration.dart.strong.transformed.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class A {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract final class B {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final mixin M {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.expect index f7db384b28a..17cdd2d08a8 100644 --- a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.expect +++ b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class A {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract final class B {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final mixin M {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.modular.expect index f7db384b28a..17cdd2d08a8 100644 --- a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.modular.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class A {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract final class B {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final mixin M {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.outline.expect index deefd106d1a..841c233592a 100644 --- a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.outline.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class A {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract final class B {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final mixin M {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.transformed.expect index 07744559f91..1356a8b365b 100644 --- a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.transformed.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class A {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract final class B {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final mixin M {} // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // final class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart b/pkg/front_end/testcases/general/interface_class_declaration.dart index 4ebf140b42d..17c05c8bf4c 100644 --- a/pkg/front_end/testcases/general/interface_class_declaration.dart +++ b/pkg/front_end/testcases/general/interface_class_declaration.dart @@ -2,7 +2,7 @@ // 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. -// @dart=2.18 +// @dart=2.19 interface class A {} diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.expect index d0b06cc9e4c..32e8bb131b2 100644 --- a/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.expect +++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class A {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract interface class B {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface mixin M {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class C = Object with M; // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.transformed.expect index 12d8ed92630..5ebab4a20c3 100644 --- a/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.transformed.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class A {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract interface class B {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface mixin M {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class C = Object with M; // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline.expect index b7be3e955c6..731966c8378 100644 --- a/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline.expect @@ -1,6 +1,7 @@ -// @dart = 2.18 +// @dart = 2.19 interface class A {} + abstract interface class B {} -interface -mixin M {} + +interface mixin M {} interface class C = Object with M; diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..4fb6b142882 --- /dev/null +++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline_modelled.expect @@ -0,0 +1,8 @@ +// @dart = 2.19 +abstract interface class B {} +interface class A {} +---- unknown chunk starts ---- +interface +---- unknown chunk ends ---- +interface class C = Object with M; +mixin M {} diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.expect index d0b06cc9e4c..32e8bb131b2 100644 --- a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.expect +++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class A {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract interface class B {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface mixin M {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class C = Object with M; // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.modular.expect index d0b06cc9e4c..32e8bb131b2 100644 --- a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.modular.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class A {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract interface class B {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface mixin M {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class C = Object with M; // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.outline.expect index ec258abb32d..68c962a0762 100644 --- a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.outline.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class A {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract interface class B {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface mixin M {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class C = Object with M; // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.transformed.expect index 12d8ed92630..5ebab4a20c3 100644 --- a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.transformed.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class A {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract interface class B {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface mixin M {} // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // interface class C = Object with M; // ^^^^^^^^^ +// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart b/pkg/front_end/testcases/general/mixin_class_declaration.dart index d2079356bf5..aaf2ecbdebc 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart @@ -2,6 +2,8 @@ // 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. +// @dart=2.19 + mixin class A {} abstract mixin class B {} diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.expect index 7bbee71a204..77897c19ac9 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.transformed.expect index 41d44eee315..3f842df4b22 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.transformed.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline.expect index 0cc7865b4c0..7da1e5420e2 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline.expect @@ -1,3 +1,4 @@ +// @dart = 2.19 mixin class A {} abstract mixin class B {} diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline_modelled.expect index 02b0ae06607..07fc2f8552f 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline_modelled.expect @@ -1,3 +1,4 @@ +// @dart = 2.19 abstract mixin class B {} mixin M {} diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.expect index 7bbee71a204..77897c19ac9 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.modular.expect index 7bbee71a204..77897c19ac9 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.modular.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.outline.expect index 1ed4e11db51..d1bf3d2b7da 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.outline.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.transformed.expect index 41d44eee315..3f842df4b22 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.transformed.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart b/pkg/front_end/testcases/general/mixin_conflicts.dart index 6afebe0db85..2e6c9960d39 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart @@ -2,19 +2,19 @@ // 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. -// This class has no problems. -class M { +// This mixin has no problems. +mixin M { foo() {} } -// This class has no problems. -class N = Object with M; +// This mixin class has no problems. +mixin class N = Object with M; // This class has no problems. class C extends Object with N {} // This class has no problems. -abstract class M2 implements M { +mixin M2 implements M { bar() {} } diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.expect index 2171271aa5b..807ac54df0d 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.expect @@ -33,13 +33,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class N = core::Object with self::M /*hasConstConstructor*/ { +mixin class N = core::Object with self::M /*hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -58,10 +55,7 @@ class C extends self::_C&Object&N { : super self::_C&Object&N::•() ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic {} } class N2 = core::Object with self::M2 /*hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.transformed.expect index badca397770..e6780e24d4a 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.transformed.expect @@ -33,13 +33,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class N extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/ { +mixin class N extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -56,10 +53,7 @@ class C extends self::_C&Object&N { : super self::_C&Object&N::•() ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic {} } class N2 extends core::Object implements self::M2 /*isEliminatedMixin,hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline.expect index 5f79e28824f..c615ad91bc5 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline.expect @@ -1,15 +1,13 @@ -class M { +mixin M { foo() {} } - -class N = Object with M; +mixin class N = Object with M; class C extends Object with N {} -abstract class M2 implements M { +mixin M2 implements M { bar() {} } - class N2 = Object with M2; abstract class N3 = Object with M2; diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline_modelled.expect index b2ad75b20b1..2d227232ea6 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline_modelled.expect @@ -1,19 +1,17 @@ abstract class C3 extends Object with M2 {} -abstract class M2 implements M { - bar() {} -} - abstract class N3 = Object with M2; class C extends Object with N {} class C2 extends Object with M2 {} -class M { - foo() {} -} - -class N = Object with M; class N2 = Object with M2; main() {} +mixin M { + foo() {} +} +mixin M2 implements M { + bar() {} +} +mixin class N = Object with M; diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.expect index 2171271aa5b..807ac54df0d 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.expect @@ -33,13 +33,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class N = core::Object with self::M /*hasConstConstructor*/ { +mixin class N = core::Object with self::M /*hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -58,10 +55,7 @@ class C extends self::_C&Object&N { : super self::_C&Object&N::•() ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic {} } class N2 = core::Object with self::M2 /*hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.modular.expect index 2171271aa5b..807ac54df0d 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.modular.expect @@ -33,13 +33,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class N = core::Object with self::M /*hasConstConstructor*/ { +mixin class N = core::Object with self::M /*hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -58,10 +55,7 @@ class C extends self::_C&Object&N { : super self::_C&Object&N::•() ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic {} } class N2 = core::Object with self::M2 /*hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.outline.expect index 57ca6116ca3..ab8be3bfe14 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.outline.expect @@ -33,13 +33,11 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic ; } -class N = core::Object with self::M /*hasConstConstructor*/ { +mixin class N = core::Object with self::M /*hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -57,9 +55,7 @@ class C extends self::_C&Object&N { synthetic constructor •() → self::C ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic ; } diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.transformed.expect index badca397770..e6780e24d4a 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.transformed.expect @@ -33,13 +33,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class N extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/ { +mixin class N extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -56,10 +53,7 @@ class C extends self::_C&Object&N { : super self::_C&Object&N::•() ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic {} } class N2 extends core::Object implements self::M2 /*isEliminatedMixin,hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart index 2cd6db24699..0db573be419 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart @@ -4,7 +4,7 @@ class A {} -class C { +mixin class C { late T _field; foo(T x) { diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.expect index ef14d3ef036..d44c36fa345 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.expect @@ -7,7 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C : super core::Object::•() diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.transformed.expect index a68dbafc1b1..bb485b02fff 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.transformed.expect @@ -7,7 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C : super core::Object::•() diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline.expect index 1c97b579a69..ebe24b7ae5f 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline.expect @@ -1,6 +1,6 @@ class A {} -class C { +mixin class C { late T _field; foo(T x) {} } diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect index 94c1f73c7f9..8f206744c23 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect @@ -2,13 +2,13 @@ class A {} class B extends A {} -class C { - foo(T x) {} - late T _field; -} - class D extends C {} class Foo extends Object with C {} main() {} + +mixin class C { + foo(T x) {} + late T _field; +} diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.expect index ef14d3ef036..d44c36fa345 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.expect @@ -7,7 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C : super core::Object::•() diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.modular.expect index ef14d3ef036..d44c36fa345 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.modular.expect @@ -7,7 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C : super core::Object::•() diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.outline.expect index 9a6b3bb30d9..fcbe9f08ace 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.outline.expect @@ -6,7 +6,7 @@ class A extends core::Object { synthetic constructor •() → self::A ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C ; diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.transformed.expect index a68dbafc1b1..bb485b02fff 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.transformed.expect @@ -7,7 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C : super core::Object::•() diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart b/pkg/front_end/testcases/general/mixin_stubs.dart index 59f06918899..1af341a496f 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart +++ b/pkg/front_end/testcases/general/mixin_stubs.dart @@ -9,7 +9,7 @@ abstract class Super { void abstractExtendsAbstractMixin(); } -abstract class MixinClass { +abstract mixin class MixinClass { void concreteExtendsConcreteMixin() {} void concreteExtendsAbstractMixin(); void concreteMixin() {} diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.strong.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.strong.expect index 61328597cdc..0592345e70c 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.strong.expect @@ -11,7 +11,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.strong.transformed.expect index 1350fad1641..2f2596cd3dc 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.strong.transformed.expect @@ -11,7 +11,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline.expect index 9a72527df43..87c5b5c3ac0 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline.expect @@ -5,7 +5,7 @@ abstract class Super { void abstractExtendsAbstractMixin(); } -abstract class MixinClass { +abstract mixin class MixinClass { void concreteExtendsConcreteMixin() {} void concreteExtendsAbstractMixin(); void concreteMixin() {} diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline_modelled.expect index b8362add8bd..903fe5f9c80 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline_modelled.expect @@ -5,15 +5,6 @@ abstract class ClassExtendsMixin extends Super with Mixin {} abstract class ClassExtendsMixinClass extends Super with MixinClass {} -abstract class MixinClass { - void abstractExtendsAbstractMixin(); - void abstractExtendsConcreteMixin() {} - void abstractMixin(); - void concreteExtendsAbstractMixin(); - void concreteExtendsConcreteMixin() {} - void concreteMixin() {} -} - abstract class SubclassEqMixin extends ClassEqMixin { method() {} } @@ -37,6 +28,15 @@ abstract class Super { void concreteExtendsConcreteMixin() {} } +abstract mixin class MixinClass { + void abstractExtendsAbstractMixin(); + void abstractExtendsConcreteMixin() {} + void abstractMixin(); + void concreteExtendsAbstractMixin(); + void concreteExtendsConcreteMixin() {} + void concreteMixin() {} +} + main() {} mixin Mixin { void abstractExtendsAbstractMixin(); diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.expect index 61328597cdc..0592345e70c 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.expect @@ -11,7 +11,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.modular.expect index 61328597cdc..0592345e70c 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.modular.expect @@ -11,7 +11,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.outline.expect index 781d4f51afc..2bb9fb801c7 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.outline.expect @@ -12,7 +12,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass ; method concreteExtendsConcreteMixin() → void diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.transformed.expect index 1350fad1641..2f2596cd3dc 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.transformed.expect @@ -11,7 +11,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect b/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect index 0ac893f2f98..77debef7cd4 100644 --- a/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect +++ b/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect @@ -33,7 +33,7 @@ library /*isNonNullableByDefault*/; // ^ // // pkg/front_end/testcases/general/records_opt_out.dart:7:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String) method1(int a, String b) => (a, b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -41,7 +41,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:8:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method2([(int, String) record = const (0, '')]) => record.$1; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -49,7 +49,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:9:46: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method3([(int, String) record = const (0, '')]) => record.$2; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -57,7 +57,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:10:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // ({int a, String b}) method4(int a, String b) => (a: a, b: b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -65,7 +65,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:11:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method5([({int a, String b}) record = const (a: 0, b: '')]) => record.a; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -73,7 +73,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:12:52: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method6([({int a, String b}) record = const (a: 0, b: '')]) => record.b; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect b/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect index 0ac893f2f98..77debef7cd4 100644 --- a/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect @@ -33,7 +33,7 @@ library /*isNonNullableByDefault*/; // ^ // // pkg/front_end/testcases/general/records_opt_out.dart:7:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String) method1(int a, String b) => (a, b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -41,7 +41,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:8:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method2([(int, String) record = const (0, '')]) => record.$1; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -49,7 +49,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:9:46: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method3([(int, String) record = const (0, '')]) => record.$2; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -57,7 +57,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:10:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // ({int a, String b}) method4(int a, String b) => (a: a, b: b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -65,7 +65,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:11:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method5([({int a, String b}) record = const (a: 0, b: '')]) => record.a; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -73,7 +73,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:12:52: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method6([({int a, String b}) record = const (a: 0, b: '')]) => record.b; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.weak.expect b/pkg/front_end/testcases/general/records_opt_out.dart.weak.expect index 0ac893f2f98..77debef7cd4 100644 --- a/pkg/front_end/testcases/general/records_opt_out.dart.weak.expect +++ b/pkg/front_end/testcases/general/records_opt_out.dart.weak.expect @@ -33,7 +33,7 @@ library /*isNonNullableByDefault*/; // ^ // // pkg/front_end/testcases/general/records_opt_out.dart:7:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String) method1(int a, String b) => (a, b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -41,7 +41,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:8:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method2([(int, String) record = const (0, '')]) => record.$1; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -49,7 +49,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:9:46: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method3([(int, String) record = const (0, '')]) => record.$2; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -57,7 +57,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:10:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // ({int a, String b}) method4(int a, String b) => (a: a, b: b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -65,7 +65,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:11:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method5([({int a, String b}) record = const (a: 0, b: '')]) => record.a; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -73,7 +73,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:12:52: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method6([({int a, String b}) record = const (a: 0, b: '')]) => record.b; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.weak.modular.expect b/pkg/front_end/testcases/general/records_opt_out.dart.weak.modular.expect index 0ac893f2f98..77debef7cd4 100644 --- a/pkg/front_end/testcases/general/records_opt_out.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/records_opt_out.dart.weak.modular.expect @@ -33,7 +33,7 @@ library /*isNonNullableByDefault*/; // ^ // // pkg/front_end/testcases/general/records_opt_out.dart:7:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String) method1(int a, String b) => (a, b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -41,7 +41,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:8:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method2([(int, String) record = const (0, '')]) => record.$1; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -49,7 +49,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:9:46: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method3([(int, String) record = const (0, '')]) => record.$2; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -57,7 +57,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:10:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // ({int a, String b}) method4(int a, String b) => (a: a, b: b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -65,7 +65,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:11:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method5([({int a, String b}) record = const (a: 0, b: '')]) => record.a; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -73,7 +73,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:12:52: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method6([({int a, String b}) record = const (a: 0, b: '')]) => record.b; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/general/records_opt_out.dart.weak.transformed.expect index 0ac893f2f98..77debef7cd4 100644 --- a/pkg/front_end/testcases/general/records_opt_out.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/records_opt_out.dart.weak.transformed.expect @@ -33,7 +33,7 @@ library /*isNonNullableByDefault*/; // ^ // // pkg/front_end/testcases/general/records_opt_out.dart:7:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String) method1(int a, String b) => (a, b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -41,7 +41,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:8:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method2([(int, String) record = const (0, '')]) => record.$1; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -49,7 +49,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:9:46: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method3([(int, String) record = const (0, '')]) => record.$2; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -57,7 +57,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:10:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // ({int a, String b}) method4(int a, String b) => (a: a, b: b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -65,7 +65,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:11:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method5([({int a, String b}) record = const (a: 0, b: '')]) => record.a; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -73,7 +73,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:12:52: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method6([({int a, String b}) record = const (a: 0, b: '')]) => record.b; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/incremental/strongmode_mixins.yaml b/pkg/front_end/testcases/incremental/strongmode_mixins.yaml index fbfb5bdaf85..9337d661657 100644 --- a/pkg/front_end/testcases/incremental/strongmode_mixins.yaml +++ b/pkg/front_end/testcases/incremental/strongmode_mixins.yaml @@ -16,4 +16,4 @@ sources: class A extends Object with B, C {} b.dart: | mixin C on B {} - abstract class B extends Object {} \ No newline at end of file + abstract mixin class B extends Object {} diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart index 3fb5e10c825..25f593d3e7c 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart @@ -9,7 +9,7 @@ abstract class A { int? get x; } -class B { +mixin class B { int? get x => 0; } diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect index 4afb53daa74..10f00b756ec 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect index 435793aef9c..fb355b88430 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect index d6cce37745c..9e2d66e5478 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect @@ -4,7 +4,7 @@ abstract class A { int? get x; } -class B { +mixin class B { int? get x => 0; } diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect index d6cce37745c..86b78d4ffda 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect @@ -4,10 +4,6 @@ abstract class A { int? get x; } -class B { - int? get x => 0; -} - class C extends A { var x; } @@ -29,3 +25,7 @@ class G extends Object with B { } main() {} + +mixin class B { + int? get x => 0; +} diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect index 4afb53daa74..10f00b756ec 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect index 4afb53daa74..10f00b756ec 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect index 011e3b635b3..11587bd8f47 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B ; get x() → core::int? diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect index 435793aef9c..fb355b88430 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart index 5e9a8f0521c..e0e8b071a1c 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart @@ -9,7 +9,7 @@ abstract class A { void set x(int? value); } -class B { +mixin class B { void set x(int? value) {} } diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect index 379ac213dee..25ad7241219 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect index d733625ea53..dd290c30e46 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect index 441c5f839ba..30348449d40 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect @@ -4,7 +4,7 @@ abstract class A { void set x(int? value); } -class B { +mixin class B { void set x(int? value) {} } diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect index 441c5f839ba..2a091e0f1d5 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect @@ -4,10 +4,6 @@ abstract class A { void set x(int? value); } -class B { - void set x(int? value) {} -} - class C extends A { var x; } @@ -29,3 +25,7 @@ class G extends Object with B { } main() {} + +mixin class B { + void set x(int? value) {} +} diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect index 379ac213dee..25ad7241219 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect index 379ac213dee..25ad7241219 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect index f37771ee737..34fe67123a0 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B ; set x(core::int? value) → void diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect index d733625ea53..dd290c30e46 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart index 04db533bfd3..4db596867df 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart @@ -4,7 +4,7 @@ class I {} -class M0 extends I> {} +mixin class M0 extends I> {} class M1 extends I> {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect index a9334ea2586..762fa33eb7e 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -14,7 +18,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 : super self::I::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect index 668323bbcaf..102626cc42c 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -14,7 +18,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 : super self::I::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect index dd6e38ea2cb..30e79055f20 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect @@ -1,6 +1,6 @@ class I {} -class M0 extends I> {} +mixin class M0 extends I> {} class M1 extends I> {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect index 5ca8e99071f..becb65d526f 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect @@ -2,10 +2,10 @@ class A extends M2 with M0 {} class I {} -class M0 extends I> {} - class M1 extends I> {} class M2 extends M1> {} main() {} + +mixin class M0 extends I> {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect index a9334ea2586..762fa33eb7e 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -14,7 +18,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 : super self::I::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect index a9334ea2586..762fa33eb7e 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -14,7 +18,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 : super self::I::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect index ac7d6c93409..47debf78c21 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -13,7 +17,7 @@ class I extends core::Object { synthetic constructor •() → self::I ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 ; } diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect index 668323bbcaf..102626cc42c 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -14,7 +18,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 : super self::I::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart index 0e8f9f2c302..e312bb78361 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart @@ -4,7 +4,7 @@ class I {} -class M0 extends Object implements I {} +mixin class M0 extends Object implements I {} mixin M1 on I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect index 3052ecbfdcc..1cdc24e7050 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect @@ -25,7 +25,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.transformed.expect new file mode 100644 index 00000000000..286fbcbded9 --- /dev/null +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.transformed.expect @@ -0,0 +1,43 @@ +library /*isNonNullableByDefault*/; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart:7:13: Error: Expected 'on' instead of this. +// mixin M0 extends Object implements I {} +// ^^^^^^^ +// +// pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart:13:7: Error: '_A&Object&M0' doesn't implement 'I' so it can't be used with 'M1'. +// - 'Object with M0' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// - 'I' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// - 'M1' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// class A extends Object with M0, M1 {} +// ^ +// +import self as self; +import "dart:core" as core; + +class I extends core::Object { + synthetic constructor •() → self::I + : super core::Object::•() + ; +} +abstract class M0 extends core::Object /*isMixinDeclaration*/ { +} +abstract class M1 extends self::I /*isMixinDeclaration*/ { +} +abstract class _A&Object&M0 extends core::Object implements self::M0 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •() → self::_A&Object&M0 + : super core::Object::•() + ; +} +abstract class _A&Object&M0&M1 extends self::_A&Object&M0 implements self::M1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •() → self::_A&Object&M0&M1 + : super self::_A&Object&M0::•() + ; +} +class A extends self::_A&Object&M0&M1 { + synthetic constructor •() → self::A + : super self::_A&Object&M0&M1::•() + ; +} +static method main() → dynamic {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect index f771fb91c84..646b53c4289 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect @@ -1,6 +1,6 @@ class I {} -class M0 extends Object implements I {} +mixin class M0 extends Object implements I {} mixin M1 on I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect index ec16fbb3f94..c3725dc0e7a 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect @@ -2,7 +2,7 @@ class A extends Object with M0, M1 {} class I {} -class M0 extends Object implements I {} - main() {} mixin M1 on I {} + +mixin class M0 extends Object implements I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect index 3052ecbfdcc..1cdc24e7050 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect @@ -25,7 +25,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect index 3052ecbfdcc..1cdc24e7050 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect @@ -25,7 +25,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect index 1bf6e3215ff..5073c2fc41b 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect @@ -24,7 +24,7 @@ class I extends core::Object { synthetic constructor •() → self::I ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 ; } diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.transformed.expect new file mode 100644 index 00000000000..286fbcbded9 --- /dev/null +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.transformed.expect @@ -0,0 +1,43 @@ +library /*isNonNullableByDefault*/; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart:7:13: Error: Expected 'on' instead of this. +// mixin M0 extends Object implements I {} +// ^^^^^^^ +// +// pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart:13:7: Error: '_A&Object&M0' doesn't implement 'I' so it can't be used with 'M1'. +// - 'Object with M0' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// - 'I' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// - 'M1' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// class A extends Object with M0, M1 {} +// ^ +// +import self as self; +import "dart:core" as core; + +class I extends core::Object { + synthetic constructor •() → self::I + : super core::Object::•() + ; +} +abstract class M0 extends core::Object /*isMixinDeclaration*/ { +} +abstract class M1 extends self::I /*isMixinDeclaration*/ { +} +abstract class _A&Object&M0 extends core::Object implements self::M0 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •() → self::_A&Object&M0 + : super core::Object::•() + ; +} +abstract class _A&Object&M0&M1 extends self::_A&Object&M0 implements self::M1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •() → self::_A&Object&M0&M1 + : super self::_A&Object&M0::•() + ; +} +class A extends self::_A&Object&M0&M1 { + synthetic constructor •() → self::A + : super self::_A&Object&M0&M1::•() + ; +} +static method main() → dynamic {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart index 850e2ff0c41..98ba84f02a3 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart @@ -4,7 +4,7 @@ class I {} -class M0 extends Object implements I {} +mixin class M0 extends Object implements I {} mixin M1 on I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect index adf375a76c5..fec2f446cb7 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect @@ -15,7 +15,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect index d76d2391917..0630772a415 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect @@ -1,6 +1,6 @@ class I {} -class M0 extends Object implements I {} +mixin class M0 extends Object implements I {} mixin M1 on I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect index 38cc5856887..72e77a506a9 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect @@ -2,7 +2,7 @@ class A extends Object with M0, M1 implements I {} class I {} -class M0 extends Object implements I {} - main() {} mixin M1 on I {} + +mixin class M0 extends Object implements I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect index adf375a76c5..fec2f446cb7 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect @@ -15,7 +15,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect index adf375a76c5..fec2f446cb7 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect @@ -15,7 +15,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect index ca26ae38db8..54b96b1a11d 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect @@ -14,7 +14,7 @@ class I extends core::Object { synthetic constructor •() → self::I ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 ; } diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart b/pkg/front_end/testcases/nnbd/forbidden_supers.dart index d25e7ed0222..0cc7d1635c2 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart @@ -5,7 +5,7 @@ // This test checks for compile-time errors in cases when either Never or T? is // extended, implemented, or mixed in, where T is a type. -class Aoo {} +mixin class Aoo {} class Boo {} diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.expect index 45ecb5c51c9..7383a6f98b7 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.transformed.expect index 36281bff784..ff5568c53f3 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.transformed.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.textual_outline.expect index 2ebb04db0ba..e1e94d9ae18 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.textual_outline.expect @@ -1,4 +1,4 @@ -class Aoo {} +mixin class Aoo {} class Boo {} class Coo extends Boo with Aoo? {} class Doo extends Aoo? {} diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.expect index 45ecb5c51c9..7383a6f98b7 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.modular.expect index 45ecb5c51c9..7383a6f98b7 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.modular.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.outline.expect index 94601e34aff..c7fe69b5082 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.outline.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo ; } diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.transformed.expect index 36281bff784..ff5568c53f3 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.transformed.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart index a2ece5f5a57..0273b30b3bb 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart @@ -16,7 +16,7 @@ class Super { abstract final int extendedAbstractMixedInAbstractField; } -class Mixin { +mixin class Mixin { final int mixedInConcreteField = 0; abstract final int mixedInAbstractField; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline.expect index e4fbdcac137..b3db8cac366 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { abstract final int extendedAbstractMixedInAbstractField; } -class Mixin { +mixin class Mixin { final int mixedInConcreteField = 0; abstract final int mixedInAbstractField; final int extendedConcreteMixedInConcreteField = 0; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline_modelled.expect index a8220b45ae1..45b572367aa 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline_modelled.expect @@ -1,14 +1,5 @@ class ClassMixin extends Super with Mixin {} -class Mixin { - abstract final int extendedAbstractMixedInAbstractField; - abstract final int extendedConcreteMixedInAbstractField; - abstract final int mixedInAbstractField; - final int extendedAbstractMixedInConcreteField = 0; - final int extendedConcreteMixedInConcreteField = 0; - final int mixedInConcreteField = 0; -} - class NamedMixin = Super with Mixin; class Super { @@ -21,3 +12,12 @@ class Super { } main() {} + +mixin class Mixin { + abstract final int extendedAbstractMixedInAbstractField; + abstract final int extendedConcreteMixedInAbstractField; + abstract final int mixedInAbstractField; + final int extendedAbstractMixedInConcreteField = 0; + final int extendedConcreteMixedInConcreteField = 0; + final int mixedInConcreteField = 0; +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.expect index aa5c0aa6318..e50fdac2af3 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // abstract final int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedConcreteMixedInAbstractField // - Mixin.mixedInAbstractField @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:30:22: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. // abstract final int extendedAbstractMixedInAbstractField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { abstract get extendedAbstractMixedInConcreteField() → core::int; abstract get extendedAbstractMixedInAbstractField() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { final field core::int mixedInConcreteField = 0; final field core::int extendedConcreteMixedInConcreteField = 0; final field core::int extendedAbstractMixedInConcreteField = 0; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.modular.expect index aa5c0aa6318..e50fdac2af3 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.modular.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // abstract final int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedConcreteMixedInAbstractField // - Mixin.mixedInAbstractField @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:30:22: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. // abstract final int extendedAbstractMixedInAbstractField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { abstract get extendedAbstractMixedInConcreteField() → core::int; abstract get extendedAbstractMixedInAbstractField() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { final field core::int mixedInConcreteField = 0; final field core::int extendedConcreteMixedInConcreteField = 0; final field core::int extendedAbstractMixedInConcreteField = 0; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.outline.expect index 4622863d1a6..1631d36d3be 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.outline.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // abstract final int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedConcreteMixedInAbstractField // - Mixin.mixedInAbstractField @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:30:22: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. // abstract final int extendedAbstractMixedInAbstractField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -111,7 +111,7 @@ class Super extends core::Object { abstract get extendedAbstractMixedInConcreteField() → core::int; abstract get extendedAbstractMixedInAbstractField() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { final field core::int mixedInConcreteField; final field core::int extendedConcreteMixedInConcreteField; final field core::int extendedAbstractMixedInConcreteField; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.transformed.expect index 4a7ba311fd3..e39c2c0f956 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.transformed.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // abstract final int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedConcreteMixedInAbstractField // - Mixin.mixedInAbstractField @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:30:22: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. // abstract final int extendedAbstractMixedInAbstractField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { abstract get extendedAbstractMixedInConcreteField() → core::int; abstract get extendedAbstractMixedInAbstractField() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { final field core::int mixedInConcreteField = 0; final field core::int extendedConcreteMixedInConcreteField = 0; final field core::int extendedAbstractMixedInConcreteField = 0; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart index 748e72259ec..81145d9b4f8 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart @@ -16,7 +16,7 @@ class Super { int get extendedAbstractMixedInAbstractGetter; } -class Mixin { +mixin class Mixin { int get mixedInConcreteGetter => 0; int get mixedInAbstractGetter; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline.expect index df3e48805c4..bb3d611bf3d 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { int get extendedAbstractMixedInAbstractGetter; } -class Mixin { +mixin class Mixin { int get mixedInConcreteGetter => 0; int get mixedInAbstractGetter; int get extendedConcreteMixedInConcreteGetter => 0; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline_modelled.expect index e489b9dcf97..7134200a819 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline_modelled.expect @@ -1,14 +1,5 @@ class ClassMixin extends Super with Mixin {} -class Mixin { - int get extendedAbstractMixedInAbstractGetter; - int get extendedAbstractMixedInConcreteGetter => 0; - int get extendedConcreteMixedInAbstractGetter; - int get extendedConcreteMixedInConcreteGetter => 0; - int get mixedInAbstractGetter; - int get mixedInConcreteGetter => 0; -} - class NamedMixin = Super with Mixin; class Super { @@ -21,3 +12,12 @@ class Super { } main() {} + +mixin class Mixin { + int get extendedAbstractMixedInAbstractGetter; + int get extendedAbstractMixedInConcreteGetter => 0; + int get extendedConcreteMixedInAbstractGetter; + int get extendedConcreteMixedInConcreteGetter => 0; + int get mixedInAbstractGetter; + int get mixedInConcreteGetter => 0; +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.expect index 09d72f2fb20..0eed33747de 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // int get extendedAbstractMixedInConcreteGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractGetter // - Mixin.extendedConcreteMixedInAbstractGetter // - Mixin.mixedInAbstractGetter @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:30:11: Context: 'Mixin.extendedAbstractMixedInAbstractGetter' is defined here. // int get extendedAbstractMixedInAbstractGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -115,7 +115,7 @@ class Super extends core::Object { return 0; abstract get extendedAbstractMixedInAbstractGetter() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.modular.expect index 09d72f2fb20..0eed33747de 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.modular.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // int get extendedAbstractMixedInConcreteGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractGetter // - Mixin.extendedConcreteMixedInAbstractGetter // - Mixin.mixedInAbstractGetter @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:30:11: Context: 'Mixin.extendedAbstractMixedInAbstractGetter' is defined here. // int get extendedAbstractMixedInAbstractGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -115,7 +115,7 @@ class Super extends core::Object { return 0; abstract get extendedAbstractMixedInAbstractGetter() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.outline.expect index e9a420576e8..8f592953a56 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.outline.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // int get extendedAbstractMixedInConcreteGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractGetter // - Mixin.extendedConcreteMixedInAbstractGetter // - Mixin.mixedInAbstractGetter @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:30:11: Context: 'Mixin.extendedAbstractMixedInAbstractGetter' is defined here. // int get extendedAbstractMixedInAbstractGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -114,7 +114,7 @@ class Super extends core::Object { ; abstract get extendedAbstractMixedInAbstractGetter() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin ; get mixedInConcreteGetter() → core::int diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.transformed.expect index f307297d26f..277f62823ee 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.transformed.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // int get extendedAbstractMixedInConcreteGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractGetter // - Mixin.extendedConcreteMixedInAbstractGetter // - Mixin.mixedInAbstractGetter @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:30:11: Context: 'Mixin.extendedAbstractMixedInAbstractGetter' is defined here. // int get extendedAbstractMixedInAbstractGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -115,7 +115,7 @@ class Super extends core::Object { return 0; abstract get extendedAbstractMixedInAbstractGetter() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart index 89e649d539b..5ce6507b275 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart @@ -16,7 +16,7 @@ class Super { void extendedAbstractMixedInAbstractMethod(); } -class Mixin { +mixin class Mixin { void mixedInConcreteMethod() {} void mixedInAbstractMethod(); diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline.expect index e43b692702c..00e15d55ce8 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { void extendedAbstractMixedInAbstractMethod(); } -class Mixin { +mixin class Mixin { void mixedInConcreteMethod() {} void mixedInAbstractMethod(); void extendedConcreteMixedInConcreteMethod() {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline_modelled.expect index b27951cc2e9..873f82b8041 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline_modelled.expect @@ -1,14 +1,5 @@ class ClassMixin extends Super with Mixin {} -class Mixin { - void extendedAbstractMixedInAbstractMethod(); - void extendedAbstractMixedInConcreteMethod() {} - void extendedConcreteMixedInAbstractMethod(); - void extendedConcreteMixedInConcreteMethod() {} - void mixedInAbstractMethod(); - void mixedInConcreteMethod() {} -} - class NamedMixin = Super with Mixin; class Super { @@ -21,3 +12,12 @@ class Super { } main() {} + +mixin class Mixin { + void extendedAbstractMixedInAbstractMethod(); + void extendedAbstractMixedInConcreteMethod() {} + void extendedConcreteMixedInAbstractMethod(); + void extendedConcreteMixedInConcreteMethod() {} + void mixedInAbstractMethod(); + void mixedInConcreteMethod() {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.expect index 2c5b76582e9..78bc9dcea7b 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { method extendedConcreteMixedInAbstractMethod() → void {} abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.modular.expect index 2c5b76582e9..78bc9dcea7b 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.modular.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { method extendedConcreteMixedInAbstractMethod() → void {} abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.outline.expect index f1ee6399e05..52a60bf72fb 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.outline.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -114,7 +114,7 @@ class Super extends core::Object { ; abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin ; method mixedInConcreteMethod() → void diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.transformed.expect index ab66dec5fe1..085ccd259f2 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.transformed.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { method extendedConcreteMixedInAbstractMethod() → void {} abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart index c841e0481f4..90b7191d34b 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart @@ -16,7 +16,7 @@ class Super { void extendedAbstractMixedInAbstractMethod(); } -class Mixin { +mixin class Mixin { void mixedInConcreteMethod(int i) {} void mixedInAbstractMethod(int i); diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline.expect index 00840cbd75d..690d1ff0496 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { void extendedAbstractMixedInAbstractMethod(); } -class Mixin { +mixin class Mixin { void mixedInConcreteMethod(int i) {} void mixedInAbstractMethod(int i); void extendedConcreteMixedInConcreteMethod(int i) {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline_modelled.expect index 7e105209799..b0375bb75b5 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline_modelled.expect @@ -1,14 +1,5 @@ class ClassMixin extends Super with Mixin {} -class Mixin { - void extendedAbstractMixedInAbstractMethod(int i); - void extendedAbstractMixedInConcreteMethod(int i) {} - void extendedConcreteMixedInAbstractMethod(int i); - void extendedConcreteMixedInConcreteMethod(int i) {} - void mixedInAbstractMethod(int i); - void mixedInConcreteMethod(int i) {} -} - class NamedMixin = Super with Mixin; class Super { @@ -21,3 +12,12 @@ class Super { } main() {} + +mixin class Mixin { + void extendedAbstractMixedInAbstractMethod(int i); + void extendedAbstractMixedInConcreteMethod(int i) {} + void extendedConcreteMixedInAbstractMethod(int i); + void extendedConcreteMixedInConcreteMethod(int i) {} + void mixedInAbstractMethod(int i); + void mixedInConcreteMethod(int i) {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.expect index 77883edb86a..b4b5f2c2c19 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -202,7 +202,7 @@ class Super extends core::Object { method extendedConcreteMixedInAbstractMethod() → void {} abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.modular.expect index 77883edb86a..b4b5f2c2c19 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.modular.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -202,7 +202,7 @@ class Super extends core::Object { method extendedConcreteMixedInAbstractMethod() → void {} abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.outline.expect index 2799f002d68..b39329d6127 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.outline.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -204,7 +204,7 @@ class Super extends core::Object { ; abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin ; method mixedInConcreteMethod(core::int i) → void diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart index 3a6cf3f73e2..aeabf09d0b8 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart @@ -16,7 +16,7 @@ class Super { void set extendedAbstractMixedInAbstractSetter(int i); } -class Mixin { +mixin class Mixin { void set mixedInConcreteSetter(int i) {} void set mixedInAbstractSetter(int i); diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline.expect index 92bb9825f79..c383a7f44f5 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { void set extendedAbstractMixedInAbstractSetter(int i); } -class Mixin { +mixin class Mixin { void set mixedInConcreteSetter(int i) {} void set mixedInAbstractSetter(int i); void set extendedConcreteMixedInConcreteSetter(int i) {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline_modelled.expect index 1cb957db8ab..9fde2d59bf8 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline_modelled.expect @@ -1,14 +1,5 @@ class ClassMixin extends Super with Mixin {} -class Mixin { - void set extendedAbstractMixedInAbstractSetter(int i); - void set extendedAbstractMixedInConcreteSetter(int i) {} - void set extendedConcreteMixedInAbstractSetter(int i); - void set extendedConcreteMixedInConcreteSetter(int i) {} - void set mixedInAbstractSetter(int i); - void set mixedInConcreteSetter(int i) {} -} - class NamedMixin = Super with Mixin; class Super { @@ -21,3 +12,12 @@ class Super { } main() {} + +mixin class Mixin { + void set extendedAbstractMixedInAbstractSetter(int i); + void set extendedAbstractMixedInConcreteSetter(int i) {} + void set extendedConcreteMixedInAbstractSetter(int i); + void set extendedConcreteMixedInConcreteSetter(int i) {} + void set mixedInAbstractSetter(int i); + void set mixedInConcreteSetter(int i) {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.expect index c9a2f79d844..5e6fe2f78d6 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void set extendedAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractSetter= // - Mixin.extendedConcreteMixedInAbstractSetter= // - Mixin.mixedInAbstractSetter= @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:30:12: Context: 'Mixin.extendedAbstractMixedInAbstractSetter=' is defined here. // void set extendedAbstractMixedInAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { set extendedConcreteMixedInAbstractSetter(core::int i) → void {} abstract set extendedAbstractMixedInAbstractSetter(core::int i) → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.modular.expect index c9a2f79d844..5e6fe2f78d6 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.modular.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void set extendedAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractSetter= // - Mixin.extendedConcreteMixedInAbstractSetter= // - Mixin.mixedInAbstractSetter= @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:30:12: Context: 'Mixin.extendedAbstractMixedInAbstractSetter=' is defined here. // void set extendedAbstractMixedInAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { set extendedConcreteMixedInAbstractSetter(core::int i) → void {} abstract set extendedAbstractMixedInAbstractSetter(core::int i) → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.outline.expect index 180ebb4a98e..69e32dad81a 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.outline.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void set extendedAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractSetter= // - Mixin.extendedConcreteMixedInAbstractSetter= // - Mixin.mixedInAbstractSetter= @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:30:12: Context: 'Mixin.extendedAbstractMixedInAbstractSetter=' is defined here. // void set extendedAbstractMixedInAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -114,7 +114,7 @@ class Super extends core::Object { ; abstract set extendedAbstractMixedInAbstractSetter(core::int i) → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin ; set mixedInConcreteSetter(core::int i) → void diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.transformed.expect index 7bdf664dc47..06dab80f7d9 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.transformed.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void set extendedAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractSetter= // - Mixin.extendedConcreteMixedInAbstractSetter= // - Mixin.mixedInAbstractSetter= @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:30:12: Context: 'Mixin.extendedAbstractMixedInAbstractSetter=' is defined here. // void set extendedAbstractMixedInAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { set extendedConcreteMixedInAbstractSetter(core::int i) → void {} abstract set extendedAbstractMixedInAbstractSetter(core::int i) → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart index f1e2e068678..c1e0f0fdb78 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart @@ -28,13 +28,13 @@ class FromSuperConcrete extends SuperConcrete implements Interface {} class FromSuperConcreteAbstract extends SuperConcrete implements SuperAbstract, Interface {} -class MixinAbstract { +mixin class MixinAbstract { noSuchMethod(Invocation invocation); } class FromMixinAbstract extends MixinAbstract implements Interface {} -class MixinConcrete { +mixin class MixinConcrete { @override noSuchMethod(Invocation invocation) { return null; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline.expect index 1093cfd893c..6ac047e1742 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline.expect @@ -22,13 +22,13 @@ class FromSuperConcrete extends SuperConcrete implements Interface {} class FromSuperConcreteAbstract extends SuperConcrete implements SuperAbstract, Interface {} -class MixinAbstract { +mixin class MixinAbstract { noSuchMethod(Invocation invocation); } class FromMixinAbstract extends MixinAbstract implements Interface {} -class MixinConcrete { +mixin class MixinConcrete { @override noSuchMethod(Invocation invocation) {} } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline_modelled.expect index 27e9d701144..decd6c65c49 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline_modelled.expect @@ -43,15 +43,6 @@ class InterfaceConcrete { noSuchMethod(Invocation invocation) {} } -class MixinAbstract { - noSuchMethod(Invocation invocation); -} - -class MixinConcrete { - @override - noSuchMethod(Invocation invocation) {} -} - class SuperAbstract { noSuchMethod(Invocation invocation); } @@ -62,3 +53,12 @@ class SuperConcrete { } main() {} + +mixin class MixinAbstract { + noSuchMethod(Invocation invocation); +} + +mixin class MixinConcrete { + @override + noSuchMethod(Invocation invocation) {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.expect index 6f9e3a73147..4e2dba80ea5 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.expect @@ -228,7 +228,7 @@ class FromSuperConcreteAbstract extends self::SuperConcrete implements self::Sup no-such-method-forwarder set setter(core::int value) → void return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable([value]), core::Map::unmodifiable(#C5))){(core::Invocation) → dynamic}; } -class MixinAbstract extends core::Object { +mixin class MixinAbstract extends core::Object { synthetic constructor •() → self::MixinAbstract : super core::Object::•() ; @@ -239,7 +239,7 @@ class FromMixinAbstract extends self::MixinAbstract implements self::Interface { : super self::MixinAbstract::•() ; } -class MixinConcrete extends core::Object { +mixin class MixinConcrete extends core::Object { synthetic constructor •() → self::MixinConcrete : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.modular.expect index 6f9e3a73147..4e2dba80ea5 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.modular.expect @@ -228,7 +228,7 @@ class FromSuperConcreteAbstract extends self::SuperConcrete implements self::Sup no-such-method-forwarder set setter(core::int value) → void return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable([value]), core::Map::unmodifiable(#C5))){(core::Invocation) → dynamic}; } -class MixinAbstract extends core::Object { +mixin class MixinAbstract extends core::Object { synthetic constructor •() → self::MixinAbstract : super core::Object::•() ; @@ -239,7 +239,7 @@ class FromMixinAbstract extends self::MixinAbstract implements self::Interface { : super self::MixinAbstract::•() ; } -class MixinConcrete extends core::Object { +mixin class MixinConcrete extends core::Object { synthetic constructor •() → self::MixinConcrete : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.outline.expect index 2ee47b2923b..95f8fa7d9b7 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.outline.expect @@ -212,7 +212,7 @@ class FromSuperConcreteAbstract extends self::SuperConcrete implements self::Sup no-such-method-forwarder set setter(core::int value) → void return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#setter=, 2, const [], core::List::unmodifiable([value]), core::Map::unmodifiable(const {}))){(core::Invocation) → dynamic}; } -class MixinAbstract extends core::Object { +mixin class MixinAbstract extends core::Object { synthetic constructor •() → self::MixinAbstract ; abstract method noSuchMethod(core::Invocation invocation) → dynamic; @@ -221,7 +221,7 @@ class FromMixinAbstract extends self::MixinAbstract implements self::Interface { synthetic constructor •() → self::FromMixinAbstract ; } -class MixinConcrete extends core::Object { +mixin class MixinConcrete extends core::Object { synthetic constructor •() → self::MixinConcrete ; @core::override diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect index 575743a3add..adf0d071f2f 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect @@ -228,7 +228,7 @@ class FromSuperConcreteAbstract extends self::SuperConcrete implements self::Sup no-such-method-forwarder set setter(core::int value) → void return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable(core::_GrowableList::_literal1(value)), core::Map::unmodifiable(#C5))){(core::Invocation) → dynamic}; } -class MixinAbstract extends core::Object { +mixin class MixinAbstract extends core::Object { synthetic constructor •() → self::MixinAbstract : super core::Object::•() ; @@ -239,7 +239,7 @@ class FromMixinAbstract extends self::MixinAbstract implements self::Interface { : super self::MixinAbstract::•() ; } -class MixinConcrete extends core::Object { +mixin class MixinConcrete extends core::Object { synthetic constructor •() → self::MixinConcrete : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.expect index 8139dad4922..52cb3ede4a7 100644 --- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.expect @@ -225,7 +225,7 @@ library /*isNonNullableByDefault*/; import self as mix2; import "dart:core" as core; -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → mix2::B : super core::Object::•() ; @@ -235,7 +235,7 @@ class B extends core::Object { method m((core::int) → core::int x) → (core::int) → core::int return x; } -class Bq extends core::Object { +mixin class Bq extends core::Object { synthetic constructor •() → mix2::Bq : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.modular.expect index 8139dad4922..52cb3ede4a7 100644 --- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.modular.expect @@ -225,7 +225,7 @@ library /*isNonNullableByDefault*/; import self as mix2; import "dart:core" as core; -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → mix2::B : super core::Object::•() ; @@ -235,7 +235,7 @@ class B extends core::Object { method m((core::int) → core::int x) → (core::int) → core::int return x; } -class Bq extends core::Object { +mixin class Bq extends core::Object { synthetic constructor •() → mix2::Bq : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.outline.expect index 239138e5a13..0b3653b7252 100644 --- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.outline.expect @@ -216,7 +216,7 @@ library /*isNonNullableByDefault*/; import self as mix2; import "dart:core" as core; -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → mix2::B ; get a() → core::List<(core::int) → core::int> @@ -226,7 +226,7 @@ class B extends core::Object { method m((core::int) → core::int x) → (core::int) → core::int ; } -class Bq extends core::Object { +mixin class Bq extends core::Object { synthetic constructor •() → mix2::Bq ; get a() → core::List<(core::int?) → core::int?> diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect index 3e5c8913c15..dcf99fcefd2 100644 --- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect @@ -221,7 +221,7 @@ library /*isNonNullableByDefault*/; import self as mix2; import "dart:core" as core; -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → mix2::B : super core::Object::•() ; @@ -231,7 +231,7 @@ class B extends core::Object { method m((core::int) → core::int x) → (core::int) → core::int return x; } -class Bq extends core::Object { +mixin class Bq extends core::Object { synthetic constructor •() → mix2::Bq : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in_lib2.dart b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in_lib2.dart index 55a1a29f54f..ce0160a1ca5 100644 --- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in_lib2.dart +++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in_lib2.dart @@ -2,13 +2,13 @@ // 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. -class B { +mixin class B { List get a => []; set a(List _) {} int Function(int) m(int Function(int) x) => x; } -class Bq { +mixin class Bq { List get a => []; set a(List _) {} int? Function(int?) m(int? Function(int?) x) => x; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart index f09e2fa7588..91659119b2d 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart @@ -12,7 +12,7 @@ abstract class A { int? foo; } -class B implements A { +mixin class B implements A { noSuchMethod(i) { ++count; return null; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect index 8e1d8754dfc..71eff2e9523 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect index 98f847e5608..c5a41bd9fc2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline.expect index dbd8bc4b9af..5a076f8a4a7 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline.expect @@ -4,7 +4,7 @@ abstract class A { int? foo; } -class B implements A { +mixin class B implements A { noSuchMethod(i) {} } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline_modelled.expect index 8b516c43b31..11ef99d1ec8 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline_modelled.expect @@ -2,10 +2,6 @@ abstract class A { int? foo; } -class B implements A { - noSuchMethod(i) {} -} - class C extends Object with B { int? get foo => 42; void set foo(int? value) {} @@ -13,3 +9,7 @@ class C extends Object with B { int count = 0; main() {} + +mixin class B implements A { + noSuchMethod(i) {} +} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.expect index 8e1d8754dfc..71eff2e9523 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.modular.expect index 8e1d8754dfc..71eff2e9523 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.modular.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.outline.expect index c290c2be075..a66cc3645a0 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class A extends core::Object { synthetic constructor •() → self::A ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B ; method noSuchMethod(core::Invocation i) → dynamic @@ -38,11 +38,11 @@ static method main() → dynamic Extra constant evaluation status: -Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> SymbolConstant(#foo) -Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> ListConstant(const []) -Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> ListConstant(const []) -Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> MapConstant(const {}) -Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> SymbolConstant(#foo=) -Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> ListConstant(const []) -Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> MapConstant(const {}) +Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> SymbolConstant(#foo) +Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> ListConstant(const []) +Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> ListConstant(const []) +Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> MapConstant(const {}) +Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> SymbolConstant(#foo=) +Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> ListConstant(const []) +Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> MapConstant(const {}) Extra constant evaluation: evaluated: 21, effectively constant: 7 diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.transformed.expect index 98f847e5608..c5a41bd9fc2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.expect index b4e4d90e091..547b32f4322 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.expect @@ -479,14 +479,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.transformed.expect index 12952911b66..f92de0ef8c4 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.transformed.expect @@ -463,14 +463,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.expect index b4e4d90e091..547b32f4322 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.expect @@ -479,14 +479,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.modular.expect index b4e4d90e091..547b32f4322 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.modular.expect @@ -479,14 +479,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.outline.expect index 864adad934d..a19cf205a79 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.outline.expect @@ -439,7 +439,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass ; method _inaccessibleMethod1() → void @@ -447,7 +447,7 @@ class SuperClass extends core::Object { method accessibleMethod() → void ; } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass ; abstract method noSuchMethod(core::Invocation invocation) → dynamic; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.transformed.expect index 12952911b66..f92de0ef8c4 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.transformed.expect @@ -463,14 +463,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm_lib.dart b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm_lib.dart index 2fa901aa791..a0aadf3afe0 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm_lib.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm_lib.dart @@ -4,11 +4,11 @@ import 'access_abstract_nsm.dart'; -class SuperClass { +mixin class SuperClass { void _inaccessibleMethod1() {} void accessibleMethod() {} } -class NoSuchMethodClass { +mixin class NoSuchMethodClass { dynamic noSuchMethod(Invocation invocation); } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.expect index 8cf0f6cc6af..c1007d839fc 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.expect @@ -457,14 +457,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.transformed.expect index 3360825627c..ecdc2bd4332 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.transformed.expect @@ -441,14 +441,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.expect index 8cf0f6cc6af..c1007d839fc 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.expect @@ -457,14 +457,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.modular.expect index 8cf0f6cc6af..c1007d839fc 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.modular.expect @@ -457,14 +457,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.outline.expect index c6f9a8bd398..4eb983da145 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.outline.expect @@ -411,7 +411,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass ; method _inaccessibleMethod1() → void @@ -419,7 +419,7 @@ class SuperClass extends core::Object { method accessibleMethod() → void ; } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass ; method noSuchMethod(core::Invocation invocation) → dynamic diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.transformed.expect index 3360825627c..ecdc2bd4332 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.transformed.expect @@ -441,14 +441,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm_lib.dart b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm_lib.dart index 34c2320d143..fd2b9b4c954 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm_lib.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm_lib.dart @@ -4,11 +4,11 @@ import 'access_concrete_nsm.dart'; -class SuperClass { +mixin class SuperClass { void _inaccessibleMethod1() {} void accessibleMethod() {} } -class NoSuchMethodClass { +mixin class NoSuchMethodClass { dynamic noSuchMethod(Invocation invocation) => 42; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.expect index 5f8c4d4466e..6158c4d1624 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.expect @@ -139,7 +139,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.transformed.expect index 413046b8434..1fab764dd38 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.transformed.expect @@ -135,7 +135,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.expect index 5f8c4d4466e..6158c4d1624 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.expect @@ -139,7 +139,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.modular.expect index 5f8c4d4466e..6158c4d1624 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.modular.expect @@ -139,7 +139,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.outline.expect index 350964970e0..a2f79989e5f 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.outline.expect @@ -127,7 +127,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass ; method _inaccessibleMethod1() → void diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.transformed.expect index 413046b8434..1fab764dd38 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.transformed.expect @@ -135,7 +135,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm_lib.dart b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm_lib.dart index 63988b35b2e..19e01f75294 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm_lib.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm_lib.dart @@ -4,7 +4,7 @@ import 'access_no_nsm.dart'; -class SuperClass { +mixin class SuperClass { void _inaccessibleMethod1() {} void accessibleMethod() {} } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart index de97201f78e..8e99b2655cd 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart @@ -14,7 +14,7 @@ class A { foo() {} } -class B implements I { +mixin class B implements I { noSuchMethod(_) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect index 28b3e96dfb4..09b9e75700b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect @@ -14,7 +14,7 @@ class A extends core::Object { ; method foo() → dynamic {} } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect index ada9683cdb2..24ee6e737ae 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect @@ -14,7 +14,7 @@ class A extends core::Object { ; method foo() → dynamic {} } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline.expect index d94d661d1bf..deec6e7ce7a 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline.expect @@ -6,7 +6,7 @@ class A { foo() {} } -class B implements I { +mixin class B implements I { noSuchMethod(_) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline_modelled.expect index d94d661d1bf..0b2241a13b0 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline_modelled.expect @@ -6,10 +6,10 @@ class A { foo() {} } -class B implements I { - noSuchMethod(_) => null; -} - class C extends A with B {} main() {} + +mixin class B implements I { + noSuchMethod(_) => null; +} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.expect index 28b3e96dfb4..09b9e75700b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.expect @@ -14,7 +14,7 @@ class A extends core::Object { ; method foo() → dynamic {} } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.modular.expect index 28b3e96dfb4..09b9e75700b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.modular.expect @@ -14,7 +14,7 @@ class A extends core::Object { ; method foo() → dynamic {} } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.outline.expect index 8cb49efd590..46058c00f5b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.outline.expect @@ -13,7 +13,7 @@ class A extends core::Object { method foo() → dynamic ; } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B ; method noSuchMethod(core::Invocation _) → dynamic @@ -37,8 +37,8 @@ static method main() → dynamic Extra constant evaluation status: -Evaluated: SymbolLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:7 -> SymbolConstant(#foo) -Evaluated: ListLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:7 -> ListConstant(const []) -Evaluated: ListLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:7 -> ListConstant(const []) -Evaluated: MapLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:7 -> MapConstant(const {}) +Evaluated: SymbolLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:13 -> SymbolConstant(#foo) +Evaluated: ListLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:13 -> ListConstant(const []) +Evaluated: ListLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:13 -> ListConstant(const []) +Evaluated: MapLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:13 -> MapConstant(const {}) Extra constant evaluation: evaluated: 11, effectively constant: 4 diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.transformed.expect index ada9683cdb2..24ee6e737ae 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.transformed.expect @@ -14,7 +14,7 @@ class A extends core::Object { ; method foo() → dynamic {} } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart index 6a76ef8761a..fb89416dfb6 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart @@ -10,7 +10,7 @@ abstract class I { void foo(); } -class A implements I { +mixin class A implements I { dynamic noSuchMethod(Invocation i) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect index 48a7894298c..8a75a175e8a 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect index e10f723d04d..31aab7005e5 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline.expect index 02f378d5837..45d35c5b7ba 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline.expect @@ -2,7 +2,7 @@ abstract class I { void foo(); } -class A implements I { +mixin class A implements I { dynamic noSuchMethod(Invocation i) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline_modelled.expect index 02f378d5837..0acbd7ed760 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline_modelled.expect @@ -2,10 +2,10 @@ abstract class I { void foo(); } -class A implements I { - dynamic noSuchMethod(Invocation i) => null; -} - class B extends Object with A {} main() {} + +mixin class A implements I { + dynamic noSuchMethod(Invocation i) => null; +} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.expect index 48a7894298c..8a75a175e8a 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.modular.expect index 48a7894298c..8a75a175e8a 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.modular.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.outline.expect index 534e0fe3ea2..05fab8ee3e2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A ; method noSuchMethod(core::Invocation i) → dynamic @@ -33,10 +33,10 @@ static method main() → dynamic Extra constant evaluation status: -Evaluated: SymbolLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:7 -> SymbolConstant(#foo) -Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:7 -> ListConstant(const []) -Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:7 -> ListConstant(const []) -Evaluated: MapLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:7 -> MapConstant(const {}) +Evaluated: SymbolLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:13 -> SymbolConstant(#foo) +Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:13 -> ListConstant(const []) +Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:13 -> ListConstant(const []) +Evaluated: MapLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:13 -> MapConstant(const {}) Evaluated: SymbolLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:17:7 -> SymbolConstant(#foo) Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:17:7 -> ListConstant(const []) Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:17:7 -> ListConstant(const []) diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.transformed.expect index e10f723d04d..31aab7005e5 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.transformed.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart index af56a39f658..6eaed0ed4c2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart @@ -15,7 +15,7 @@ class I { void foo(); } -class M { +mixin class M { dynamic noSuchMethod(Invocation i) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect index 14e093d77e3..a8e6208c53b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect @@ -11,7 +11,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable(#C4))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect index d99487fdb9a..0c6c3e62b28 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect @@ -11,7 +11,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable(#C4))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline.expect index bbc3c6caf9c..dfacdaa64a2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline.expect @@ -3,7 +3,7 @@ class I { void foo(); } -class M { +mixin class M { dynamic noSuchMethod(Invocation i) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline_modelled.expect index a90747d0316..27cedc28f7c 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline_modelled.expect @@ -7,8 +7,8 @@ class I { void foo(); } -class M { +main() {} + +mixin class M { dynamic noSuchMethod(Invocation i) => null; } - -main() {} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.expect index 14e093d77e3..a8e6208c53b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.expect @@ -11,7 +11,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable(#C4))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.modular.expect index 14e093d77e3..a8e6208c53b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.modular.expect @@ -11,7 +11,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable(#C4))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.outline.expect index 6c96a46b96c..0d19f332fa7 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.outline.expect @@ -10,7 +10,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const [], const [], core::Map::unmodifiable(const {}))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M ; method noSuchMethod(core::Invocation i) → dynamic diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.transformed.expect index d99487fdb9a..0c6c3e62b28 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.transformed.expect @@ -11,7 +11,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable(#C4))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart index 66ca171b41f..62f5351ac26 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart @@ -11,7 +11,7 @@ class Super { void method3(num n) {} } -class Mixin { +mixin class Mixin { dynamic noSuchMethod(_) => null; void method1(int i); void method2(covariant int i); diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.strong.expect index 710f7d6f473..d9b6dce2ead 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.strong.expect @@ -29,7 +29,7 @@ class Super extends core::Object { method method2(core::num n) → void {} method method3(core::num n) → void {} } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline.expect index 35d6b0a6f14..50d31d78d9f 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { void method3(num n) {} } -class Mixin { +mixin class Mixin { dynamic noSuchMethod(_) => null; void method1(int i); void method2(covariant int i); diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline_modelled.expect index 9cdc5bc0862..356e268e7d4 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline_modelled.expect @@ -4,14 +4,14 @@ abstract class Interface { class Class = Super with Mixin implements Interface; -class Mixin { +class Super { + void method2(num n) {} + void method3(num n) {} +} + +mixin class Mixin { dynamic noSuchMethod(_) => null; void method1(int i); void method2(covariant int i); void method3(num n); } - -class Super { - void method2(num n) {} - void method3(num n) {} -} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.expect index 710f7d6f473..d9b6dce2ead 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.expect @@ -29,7 +29,7 @@ class Super extends core::Object { method method2(core::num n) → void {} method method3(core::num n) → void {} } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.modular.expect index 710f7d6f473..d9b6dce2ead 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.modular.expect @@ -29,7 +29,7 @@ class Super extends core::Object { method method2(core::num n) → void {} method method3(core::num n) → void {} } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.outline.expect index edd87ec7b34..c351746b3e2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.outline.expect @@ -29,7 +29,7 @@ class Super extends core::Object { method method3(core::num n) → void ; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin ; method noSuchMethod(core::Invocation _) → dynamic diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart index 284d817be68..f2abc428e57 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart @@ -5,7 +5,7 @@ // This test checks that the noSuchMethod forwarder is generated in cases when // the user-defined noSuchMethod is mixed in to a class with abstract methods. -class A { +mixin class A { dynamic noSuchMethod(Invocation i) { return null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect index 29b29b42ee9..14d1611ff25 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect index 97fe39ef2ab..e6560ef3282 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline.expect index eece1da273a..4bce39676d3 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline.expect @@ -1,4 +1,4 @@ -class A { +mixin class A { dynamic noSuchMethod(Invocation i) {} } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline_modelled.expect index eece1da273a..fc591d00e06 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline_modelled.expect @@ -1,9 +1,9 @@ -class A { - dynamic noSuchMethod(Invocation i) {} -} - class B extends Object with A { void foo(); } main() {} + +mixin class A { + dynamic noSuchMethod(Invocation i) {} +} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.expect index 29b29b42ee9..14d1611ff25 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.modular.expect index 29b29b42ee9..14d1611ff25 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.modular.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.outline.expect index 73d435671e3..8d5d4b796b6 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.outline.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A ; method noSuchMethod(core::Invocation i) → dynamic diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.transformed.expect index 97fe39ef2ab..e6560ef3282 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.transformed.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart index 8879c0ef00c..4e05f858a45 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart @@ -10,7 +10,7 @@ abstract class I { T foo(); } -class M { +mixin class M { dynamic noSuchMethod(Invocation i) { return null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.expect index 9f65b28e895..3bcb2f86421 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.transformed.expect index a95de302a49..acc7fe5f427 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.transformed.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline.expect index 9ae8a309d87..bcefe83a459 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline.expect @@ -2,7 +2,7 @@ abstract class I { T foo(); } -class M { +mixin class M { dynamic noSuchMethod(Invocation i) {} } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline_modelled.expect index 1762a6e61ba..d619499cb52 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline_modelled.expect @@ -4,8 +4,8 @@ abstract class I { class A extends Object with M implements I {} -class M { +main() {} + +mixin class M { dynamic noSuchMethod(Invocation i) {} } - -main() {} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.expect index 9f65b28e895..3bcb2f86421 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.modular.expect index 9f65b28e895..3bcb2f86421 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.modular.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.outline.expect index 6655ace8fcf..7e190622ee5 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M ; method noSuchMethod(core::Invocation i) → dynamic diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.transformed.expect index a95de302a49..acc7fe5f427 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.transformed.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.expect b/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.expect index 35c19b7a1bf..e646dd280f0 100644 --- a/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.expect +++ b/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.expect @@ -7,7 +7,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:8:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -15,7 +15,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:9:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -23,7 +23,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:10:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -31,7 +31,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:11:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -39,7 +39,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:12:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -47,7 +47,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:16:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, c: 2, d: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -55,7 +55,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:17:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, d: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -63,7 +63,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:18:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, d: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -71,7 +71,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:19:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (d: 0, a: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -79,7 +79,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:20:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, 2, a: 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -87,7 +87,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:21:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -95,7 +95,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:22:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -103,7 +103,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:23:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, c: 4, 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -111,7 +111,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:24:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, a: 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -119,7 +119,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:25:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -127,7 +127,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:30:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: this, 0); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.transformed.expect b/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.transformed.expect index 35c19b7a1bf..e646dd280f0 100644 --- a/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.transformed.expect @@ -7,7 +7,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:8:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -15,7 +15,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:9:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -23,7 +23,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:10:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -31,7 +31,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:11:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -39,7 +39,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:12:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -47,7 +47,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:16:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, c: 2, d: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -55,7 +55,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:17:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, d: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -63,7 +63,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:18:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, d: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -71,7 +71,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:19:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (d: 0, a: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -79,7 +79,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:20:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, 2, a: 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -87,7 +87,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:21:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -95,7 +95,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:22:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -103,7 +103,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:23:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, c: 4, 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -111,7 +111,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:24:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, a: 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -119,7 +119,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:25:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -127,7 +127,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:30:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: this, 0); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.expect b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.expect index 1474cf2ae79..e4266c93052 100644 --- a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.expect +++ b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.expect @@ -3,7 +3,7 @@ library; // Problems in library: // // pkg/front_end/testcases/records/record_literal_unsupported.dart:8:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -11,7 +11,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:9:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -19,7 +19,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:10:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -27,7 +27,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:11:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -35,7 +35,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:12:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -43,7 +43,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:16:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, c: 2, d: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -51,7 +51,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:17:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, d: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -59,7 +59,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:18:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, d: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -67,7 +67,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:19:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (d: 0, a: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -75,7 +75,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:20:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, 2, a: 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -83,7 +83,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:21:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -91,7 +91,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:22:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -99,7 +99,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:23:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, c: 4, 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -107,7 +107,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:24:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, a: 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -115,7 +115,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:25:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -123,7 +123,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:30:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: this, 0); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.modular.expect b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.modular.expect index 1474cf2ae79..e4266c93052 100644 --- a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.modular.expect +++ b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.modular.expect @@ -3,7 +3,7 @@ library; // Problems in library: // // pkg/front_end/testcases/records/record_literal_unsupported.dart:8:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -11,7 +11,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:9:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -19,7 +19,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:10:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -27,7 +27,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:11:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -35,7 +35,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:12:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -43,7 +43,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:16:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, c: 2, d: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -51,7 +51,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:17:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, d: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -59,7 +59,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:18:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, d: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -67,7 +67,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:19:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (d: 0, a: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -75,7 +75,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:20:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, 2, a: 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -83,7 +83,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:21:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -91,7 +91,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:22:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -99,7 +99,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:23:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, c: 4, 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -107,7 +107,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:24:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, a: 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -115,7 +115,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:25:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -123,7 +123,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:30:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: this, 0); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.transformed.expect b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.transformed.expect index 1474cf2ae79..e4266c93052 100644 --- a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.transformed.expect @@ -3,7 +3,7 @@ library; // Problems in library: // // pkg/front_end/testcases/records/record_literal_unsupported.dart:8:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -11,7 +11,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:9:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -19,7 +19,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:10:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -27,7 +27,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:11:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -35,7 +35,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:12:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -43,7 +43,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:16:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, c: 2, d: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -51,7 +51,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:17:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, d: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -59,7 +59,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:18:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, d: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -67,7 +67,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:19:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (d: 0, a: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -75,7 +75,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:20:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, 2, a: 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -83,7 +83,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:21:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -91,7 +91,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:22:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -99,7 +99,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:23:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, c: 4, 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -107,7 +107,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:24:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, a: 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -115,7 +115,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:25:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -123,7 +123,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:30:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: this, 0); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/records/type_record.dart b/pkg/front_end/testcases/records/type_record.dart index 8e226f93a55..58288a6058c 100644 --- a/pkg/front_end/testcases/records/type_record.dart +++ b/pkg/front_end/testcases/records/type_record.dart @@ -2,7 +2,7 @@ // 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. -abstract class A {} +abstract mixin class A {} typedef R = Record; diff --git a/pkg/front_end/testcases/records/type_record.dart.strong.expect b/pkg/front_end/testcases/records/type_record.dart.strong.expect index 5f3e43cc949..e9057c5d788 100644 --- a/pkg/front_end/testcases/records/type_record.dart.strong.expect +++ b/pkg/front_end/testcases/records/type_record.dart.strong.expect @@ -15,7 +15,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/type_record.dart.strong.transformed.expect b/pkg/front_end/testcases/records/type_record.dart.strong.transformed.expect index 799191c2697..ee1deb62e65 100644 --- a/pkg/front_end/testcases/records/type_record.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/records/type_record.dart.strong.transformed.expect @@ -15,7 +15,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/type_record.dart.textual_outline.expect b/pkg/front_end/testcases/records/type_record.dart.textual_outline.expect index d2523282e98..c1d259f54fe 100644 --- a/pkg/front_end/testcases/records/type_record.dart.textual_outline.expect +++ b/pkg/front_end/testcases/records/type_record.dart.textual_outline.expect @@ -1,4 +1,4 @@ -abstract class A {} +abstract mixin class A {} typedef R = Record; typedef AR = A; diff --git a/pkg/front_end/testcases/records/type_record.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/records/type_record.dart.textual_outline_modelled.expect index 6c07bf33cf5..14ba6281322 100644 --- a/pkg/front_end/testcases/records/type_record.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/records/type_record.dart.textual_outline_modelled.expect @@ -4,8 +4,6 @@ R foo9() => throw ''; RR foo11() => throw ''; Record foo1() => throw ''; -abstract class A {} - abstract class A1 extends A {} abstract class A2 implements A {} @@ -20,6 +18,8 @@ abstract class A6 extends AR3 {} abstract class A7 extends AR4 {} +abstract mixin class A {} + bar(Record record) {} dynamic foo12(R r) => null; dynamic foo13(AR l) => null; diff --git a/pkg/front_end/testcases/records/type_record.dart.weak.expect b/pkg/front_end/testcases/records/type_record.dart.weak.expect index ab3f4dfd0f2..028525697b2 100644 --- a/pkg/front_end/testcases/records/type_record.dart.weak.expect +++ b/pkg/front_end/testcases/records/type_record.dart.weak.expect @@ -15,7 +15,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/type_record.dart.weak.modular.expect b/pkg/front_end/testcases/records/type_record.dart.weak.modular.expect index ab3f4dfd0f2..028525697b2 100644 --- a/pkg/front_end/testcases/records/type_record.dart.weak.modular.expect +++ b/pkg/front_end/testcases/records/type_record.dart.weak.modular.expect @@ -15,7 +15,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/type_record.dart.weak.outline.expect b/pkg/front_end/testcases/records/type_record.dart.weak.outline.expect index 266db253b7b..49f0ea6854e 100644 --- a/pkg/front_end/testcases/records/type_record.dart.weak.outline.expect +++ b/pkg/front_end/testcases/records/type_record.dart.weak.outline.expect @@ -8,7 +8,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A ; } diff --git a/pkg/front_end/testcases/records/type_record.dart.weak.transformed.expect b/pkg/front_end/testcases/records/type_record.dart.weak.transformed.expect index 8b645c9ead3..410c9a40864 100644 --- a/pkg/front_end/testcases/records/type_record.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/records/type_record.dart.weak.transformed.expect @@ -15,7 +15,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart b/pkg/front_end/testcases/records/type_record_as_supertype.dart index 7a909bcbfa8..44d67c3d093 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart @@ -9,18 +9,27 @@ typedef RR = R; class G {} abstract class A1 extends Record {} // Error. + abstract class A2 extends RR {} // Error. + abstract class A3 extends G {} // Ok. + abstract class A4 extends G {} // Ok. abstract class B1 implements Record {} // Error. + abstract class B2 implements RR {} // Error. + abstract class B3 implements G {} // Ok. + abstract class B4 implements G {} // Ok. abstract class C1 with Record {} // Error. + abstract class C2 with RR {} // Error. + abstract class C3 with G {} // Ok. + abstract class C4 with G {} // Ok. main() {} diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.expect index df2e4483475..17dfac79e44 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.transformed.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.transformed.expect index b4092d315b6..261f7b3452a 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.transformed.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.expect index df2e4483475..17dfac79e44 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.modular.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.modular.expect index df2e4483475..17dfac79e44 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.modular.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.modular.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.outline.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.outline.expect index c89ec82bf60..a5fa05022ec 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.outline.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.outline.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.transformed.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.transformed.expect index b4092d315b6..261f7b3452a 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.transformed.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status index 27b65788510..3dee221e78f 100644 --- a/pkg/front_end/testcases/textual_outline.status +++ b/pkg/front_end/testcases/textual_outline.status @@ -51,7 +51,6 @@ extensions/issue38712: FormatterCrash extensions/issue38745: FormatterCrash general/annotation_eof: FormatterCrash general/bad_setter_abstract: FormatterCrash -general/base_class_declaration: FormatterCrash general/bug31124: FormatterCrash general/clone_function_type: FormatterCrash general/constants/js_semantics/number_folds: FormatterCrash @@ -86,7 +85,6 @@ general/extension_types_feature_not_enabled: FormatterCrash general/function_type_default_value: FormatterCrash general/incomplete_field_formal_parameter: FormatterCrash general/inline_class_declaration: FormatterCrash -general/interface_class_declaration: FormatterCrash general/invalid_operator2: FormatterCrash general/invalid_operator: FormatterCrash general/invalid_super_initializer: FormatterCrash diff --git a/runtime/vm/experimental_features.cc b/runtime/vm/experimental_features.cc index f99b93ab8cc..88a0de89c6e 100644 --- a/runtime/vm/experimental_features.cc +++ b/runtime/vm/experimental_features.cc @@ -18,8 +18,8 @@ namespace dart { bool GetExperimentalFeatureDefault(ExperimentalFeature feature) { constexpr bool kFeatureValues[] = { + true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, - true, true, true, true, true, true, true, }; ASSERT(static_cast(feature) < ARRAY_SIZE(kFeatureValues)); return kFeatureValues[static_cast(feature)]; @@ -27,6 +27,8 @@ bool GetExperimentalFeatureDefault(ExperimentalFeature feature) { const char* GetExperimentalFeatureName(ExperimentalFeature feature) { constexpr const char* kFeatureNames[] = { + "sealed-class", + "class-modifiers", "nonfunction-type-aliases", "non-nullable", "extension-methods", diff --git a/runtime/vm/experimental_features.h b/runtime/vm/experimental_features.h index b0b954b9e55..e0d98ef1e9c 100644 --- a/runtime/vm/experimental_features.h +++ b/runtime/vm/experimental_features.h @@ -14,6 +14,8 @@ namespace dart { enum class ExperimentalFeature { + sealed_class, + class_modifiers, nonfunction_type_aliases, non_nullable, extension_methods, diff --git a/tests/web/native/native_mixin_field2_test.dart b/tests/web/native/native_mixin_field2_test.dart index 80370cea36d..a6dafc45cff 100644 --- a/tests/web/native/native_mixin_field2_test.dart +++ b/tests/web/native/native_mixin_field2_test.dart @@ -2,6 +2,8 @@ // 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. +// SharedOptions=--enable-experiment=class-modifiers + import "native_testing.dart"; // Test that native classes can use ordinary Dart classes with fields @@ -27,11 +29,11 @@ class B1 extends A1 with M1, M2 { set bar(value) {} } -class M1 { +mixin class M1 { var baz; // This field is not a native field, even when mixed in. } -class M2 { +mixin class M2 { var bar; var buz; } diff --git a/tests/web/native/native_mixin_field_test.dart b/tests/web/native/native_mixin_field_test.dart index e9c80e94126..253fb3198e3 100644 --- a/tests/web/native/native_mixin_field_test.dart +++ b/tests/web/native/native_mixin_field_test.dart @@ -2,6 +2,8 @@ // 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. +// SharedOptions=--enable-experiment=class-modifiers + import "native_testing.dart"; // Test that native classes can use ordinary Dart classes with fields @@ -17,11 +19,11 @@ class B extends A with M1, M2 { var bar; } -class M1 { +mixin class M1 { var baz; // This field is not a native field, even when mixed in. } -class M2 { +mixin class M2 { var bar; var buz; } diff --git a/tests/web/native/native_mixin_multiple2_test.dart b/tests/web/native/native_mixin_multiple2_test.dart index 04f5b71ec30..4896b85880b 100644 --- a/tests/web/native/native_mixin_multiple2_test.dart +++ b/tests/web/native/native_mixin_multiple2_test.dart @@ -14,15 +14,15 @@ class A { @Native("B") class B extends A with M1, M2, M3 {} -class M1 {} +mixin M1 {} -class M2 { +mixin M2 { // These methods are only defined in this non-first, non-last mixin. plain(x) => 'P $x'; bar(x, [y]) => '$y,$x'; } -class M3 {} +mixin M3 {} makeB() native; diff --git a/tests/web/native/native_mixin_multiple3_test.dart b/tests/web/native/native_mixin_multiple3_test.dart index ac3442dfd88..639d84b685f 100644 --- a/tests/web/native/native_mixin_multiple3_test.dart +++ b/tests/web/native/native_mixin_multiple3_test.dart @@ -13,13 +13,13 @@ class E extends D { foo() => 'E.foo'; } -class M1 {} +mixin M1 {} -class M2 { +mixin M2 { foo() => 'M2.foo'; } -class M3 {} +mixin M3 {} @Native("A") class A { diff --git a/tests/web/native/native_mixin_multiple_test.dart b/tests/web/native/native_mixin_multiple_test.dart index 68e6714e092..6d9dc44e907 100644 --- a/tests/web/native/native_mixin_multiple_test.dart +++ b/tests/web/native/native_mixin_multiple_test.dart @@ -2,6 +2,8 @@ // 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. +// SharedOptions=--enable-experiment=class-modifiers + import "native_testing.dart"; // Test that native classes can use ordinary Dart classes as mixins. @@ -17,12 +19,12 @@ class B extends A with M1, M2 { bar() => baz(); } -class M1 { +mixin class M1 { foo() => "M1-foo"; baz() => "M1-baz"; } -class M2 { +mixin class M2 { foo() => "M2-foo"; } diff --git a/tests/web/native/native_mixin_test.dart b/tests/web/native/native_mixin_test.dart index 2ba35232096..67622f69e7d 100644 --- a/tests/web/native/native_mixin_test.dart +++ b/tests/web/native/native_mixin_test.dart @@ -2,6 +2,8 @@ // 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. +// SharedOptions=--enable-experiment=class-modifiers + import "native_testing.dart"; // Test that native classes can use ordinary Dart classes as mixins. @@ -17,7 +19,7 @@ class B extends A with M { bar() => baz(); } -class M { +mixin class M { foo() => "M-foo"; bar() => "M-bar"; } diff --git a/tests/web/native/native_mixin_with_plain_test.dart b/tests/web/native/native_mixin_with_plain_test.dart index e31b9045e62..f8f61c3c9f3 100644 --- a/tests/web/native/native_mixin_with_plain_test.dart +++ b/tests/web/native/native_mixin_with_plain_test.dart @@ -2,6 +2,8 @@ // 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. +// SharedOptions=--enable-experiment=class-modifiers + import "native_testing.dart"; // Test that native classes and ordinary Dart classes can both use the same @@ -20,7 +22,7 @@ class B extends A with M { get mm => 'B.mm($aa)'; } -class M { +mixin class M { foo() => "M-foo ${this.mm}"; bar() => "M-bar ${this.mm}"; get mm => 'M.mm'; diff --git a/tests/web/native/subclassing_3_test.dart b/tests/web/native/subclassing_3_test.dart index b7f89d3f024..4cee2ef30bf 100644 --- a/tests/web/native/subclassing_3_test.dart +++ b/tests/web/native/subclassing_3_test.dart @@ -11,7 +11,7 @@ import 'dart:_interceptors' show Interceptor, findInterceptorForType; doFoo(r, x) => '$x,${r.oof()},${r.miz()}'; -class M { +mixin M { miz() => 'M'; } diff --git a/tests/web/native/subclassing_4_test.dart b/tests/web/native/subclassing_4_test.dart index 7dd5e728dac..532d14519ed 100644 --- a/tests/web/native/subclassing_4_test.dart +++ b/tests/web/native/subclassing_4_test.dart @@ -8,7 +8,7 @@ import 'dart:_interceptors' show Interceptor, findInterceptorForType; // Test calling convention on subclasses of native classes. -class M { +mixin M { miz() => 'M'; } diff --git a/tests/web/native/subclassing_5_test.dart b/tests/web/native/subclassing_5_test.dart index 553b1f88fa4..2169840e273 100644 --- a/tests/web/native/subclassing_5_test.dart +++ b/tests/web/native/subclassing_5_test.dart @@ -10,7 +10,7 @@ import 'dart:_interceptors' show Interceptor, findInterceptorForType; class I {} -class M implements I { +mixin M implements I { miz() => 'M'; } diff --git a/tests/web/native/subclassing_type_test.dart b/tests/web/native/subclassing_type_test.dart index e5cc2beabcb..d734262ab8b 100644 --- a/tests/web/native/subclassing_type_test.dart +++ b/tests/web/native/subclassing_type_test.dart @@ -9,7 +9,7 @@ import 'dart:_interceptors' show Interceptor, findInterceptorForType; // Test that type checks and casts work for subclasses of native classes and // mixins on native classes. -class M {} +mixin M {} @Native("N") class N {} diff --git a/tools/FAKE_COMMITS b/tools/FAKE_COMMITS index 508cd6437cd..d85d533ba70 100644 --- a/tools/FAKE_COMMITS +++ b/tools/FAKE_COMMITS @@ -31,6 +31,7 @@ Trigger bots Trigger builds to check recipe changes Trigger builds to test builder configuration change Trigger mac builds now that the snoopy service is installed +Trigger bots Analyzer branch commits: Force build on new analyzer-branch linux build with new workflow diff --git a/tools/experimental_features.yaml b/tools/experimental_features.yaml index 6903371886d..d13d1fe2bda 100644 --- a/tools/experimental_features.yaml +++ b/tools/experimental_features.yaml @@ -132,21 +132,41 @@ features: records: help: "Records" - experimentalReleaseVersion: "2.19.0" + validation: | + final x = (1, 2); + void main() { + final x = ('feature', 'enabled'); + print('${x.$1} ${x.$2}'); + } patterns: help: "Patterns" + validation: | + void main() { + final [x, y] = ['feature', 'enabled']; + print('$x $y'); + } inline-class: help: "Inline class" sealed-class: help: "Sealed class" - experimentalReleaseVersion: "3.0.0" + enabledIn: '3.0.0' + validation: | + sealed class A {} + void main() { + print('feature enabled'); + } class-modifiers: help: "Class modifiers" - experimentalReleaseVersion: "3.0.0" + enabledIn: '3.0.0' + validation: | + interface class A {} + void main() { + print('feature enabled'); + } # Experiment flag only used for testing. test-experiment: