| library /*isNonNullableByDefault*/; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:7:39: Error: The class 'A' can't be extended outside of its library because it's a final class. |
| // final class ExtendsFinalClass extends A {} |
| // ^ |
| // |
| // pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:9:45: Error: The class 'A' can't be implemented outside of its library because it's a final class. |
| // final class ImplementsFinalClass implements A {} |
| // ^ |
| // |
| // pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:45: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin. |
| // final class ImplementsFinalMixin implements M {} |
| // ^ |
| // |
| // pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:13:34: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin. |
| // final class MixInFinalMixin with M {} |
| // ^ |
| // |
| // pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:15:42: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin. |
| // enum EnumImplementsFinalMixin implements M { x } |
| // ^ |
| // |
| // pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:17:31: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin. |
| // enum EnumMixInFinalMixin with M { x } |
| // ^ |
| // |
| import self as self; |
| import "main_lib.dart" as mai; |
| import "dart:core" as core; |
| |
| import "org-dartlang-testcase:///main_lib.dart"; |
| |
| final class ExtendsFinalClass extends mai::A { |
| synthetic constructor •() → self::ExtendsFinalClass |
| : super mai::A::•() |
| ; |
| } |
| final class ImplementsFinalClass extends core::Object implements mai::A { |
| synthetic constructor •() → self::ImplementsFinalClass |
| : super core::Object::•() |
| ; |
| } |
| final class ImplementsFinalMixin extends core::Object implements mai::M { |
| synthetic constructor •() → self::ImplementsFinalMixin |
| : super core::Object::•() |
| ; |
| } |
| abstract final class _MixInFinalMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/ { |
| const synthetic constructor •() → self::_MixInFinalMixin&Object&M |
| : super core::Object::•() |
| ; |
| } |
| final class MixInFinalMixin extends self::_MixInFinalMixin&Object&M { |
| synthetic constructor •() → self::MixInFinalMixin |
| : super self::_MixInFinalMixin&Object&M::•() |
| ; |
| } |
| class EnumImplementsFinalMixin extends core::_Enum implements mai::M /*isEnum*/ { |
| static const field core::List<self::EnumImplementsFinalMixin> values = #C4; |
| enum-element static const field self::EnumImplementsFinalMixin x = #C3; |
| const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixin |
| : super core::_Enum::•(#index, #name) |
| ; |
| method _enumToString() → core::String |
| return "EnumImplementsFinalMixin.${this.{core::_Enum::_name}{core::String}}"; |
| } |
| abstract final class _EnumMixInFinalMixin&_Enum&M = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/ { |
| const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixin&_Enum&M |
| : super core::_Enum::•(index, _name) |
| ; |
| } |
| class EnumMixInFinalMixin extends self::_EnumMixInFinalMixin&_Enum&M /*isEnum*/ { |
| static const field core::List<self::EnumMixInFinalMixin> values = #C6; |
| enum-element static const field self::EnumMixInFinalMixin x = #C5; |
| const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixin |
| : super self::_EnumMixInFinalMixin&_Enum&M::•(#index, #name) |
| ; |
| method _enumToString() → core::String |
| return "EnumMixInFinalMixin.${this.{core::_Enum::_name}{core::String}}"; |
| } |
| abstract final class MixinOnA extends mai::A /*isMixinDeclaration*/ { |
| } |
| abstract final class MixinOnM extends mai::M /*isMixinDeclaration*/ { |
| } |
| abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/ { |
| synthetic constructor •() → self::_MixinOnAM&A&M |
| : super core::Object::•() |
| ; |
| } |
| abstract final class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/ { |
| } |
| |
| constants { |
| #C1 = 0 |
| #C2 = "x" |
| #C3 = self::EnumImplementsFinalMixin {index:#C1, _name:#C2} |
| #C4 = <self::EnumImplementsFinalMixin*>[#C3] |
| #C5 = self::EnumMixInFinalMixin {index:#C1, _name:#C2} |
| #C6 = <self::EnumMixInFinalMixin*>[#C5] |
| } |
| |
| |
| Constructor coverage from constants: |
| org-dartlang-testcase:///main.dart: |
| - EnumImplementsFinalMixin. (from org-dartlang-testcase:///main.dart:15:6) |
| - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) |
| - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) |
| - EnumMixInFinalMixin. (from org-dartlang-testcase:///main.dart:17:6) |
| - _EnumMixInFinalMixin&_Enum&M. (from org-dartlang-testcase:///main.dart:17:6) |