| library; |
| // |
| // 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 {} /* Error */ |
| // ^ |
| // |
| // 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 {} /* Error */ |
| // ^ |
| // |
| // pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:42: Error: The class 'A' can't be implemented outside of its library because it's a final class. |
| // enum EnumImplementsFinalMixin implements A { x } /* Error */ |
| // ^ |
| // |
| // pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:13:24: Error: The class 'A' can't be used as a mixin superclass constraint outside of its library because it's a final class. |
| // base mixin MixinOnA on A {} /* Error */ |
| // ^ |
| // |
| // pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:15:25: Error: The class 'A' can't be used as a mixin superclass constraint outside of its library because it's a final class. |
| // base mixin MixinOnAB on A, B {} /* Error */ |
| // ^ |
| // |
| // pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:15:28: Error: The class 'B' can't be used as a mixin superclass constraint outside of its library because it's a final class. |
| // base mixin MixinOnAB on A, B {} /* Error */ |
| // ^ |
| // |
| 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 |
| ; |
| } |
| final class ImplementsFinalClass extends core::Object implements mai::A { |
| synthetic constructor •() → self::ImplementsFinalClass |
| ; |
| } |
| class EnumImplementsFinalMixin extends core::_Enum implements mai::A /*isEnum*/ { |
| static const field core::List<self::EnumImplementsFinalMixin> values = const <self::EnumImplementsFinalMixin>[self::EnumImplementsFinalMixin::x]; |
| enum-element static const field self::EnumImplementsFinalMixin x = const self::EnumImplementsFinalMixin::•(0, "x"); |
| const synthetic 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 base class MixinOnA extends mai::A /*isMixinDeclaration*/ { |
| } |
| abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/ { |
| synthetic constructor •() → self::_MixinOnAB&A&B |
| ; |
| } |
| abstract base class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/ { |
| } |
| |
| library; |
| import self as mai; |
| import "dart:core" as core; |
| |
| final class A extends core::Object { |
| synthetic constructor •() → mai::A |
| ; |
| } |
| final class B extends core::Object { |
| synthetic constructor •() → mai::B |
| ; |
| } |
| |
| |
| Extra constant evaluation status: |
| Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:11:6 -> ListConstant(const <EnumImplementsFinalMixin>[const EnumImplementsFinalMixin{_Enum.index: 0, _Enum._name: "x"}]) |
| Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:11:46 -> InstanceConstant(const EnumImplementsFinalMixin{_Enum.index: 0, _Enum._name: "x"}) |
| Extra constant evaluation: evaluated: 7, effectively constant: 2 |