| library /*isNonNullableByDefault*/; |
| import self as self; |
| import "dart:core" as core; |
| |
| class A extends core::Object { |
| synthetic constructor •() → self::A |
| : super core::Object::•() |
| ; |
| get foo() → core::String |
| return "foo"; |
| } |
| class B extends core::Object { |
| synthetic constructor •() → self::B |
| : super core::Object::•() |
| ; |
| method bar() → core::int |
| return 42; |
| } |
| abstract class M extends core::Object /*isMixinDeclaration*/ { |
| set callOnAssignment(() → void f) → void { |
| f(){() → void}; |
| } |
| } |
| abstract class _E1&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ { |
| const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&A |
| : super core::_Enum::•(index, _name) |
| ; |
| mixin-super-stub get foo() → core::String |
| return super.{self::A::foo}; |
| } |
| class E1 extends self::_E1&_Enum&A /*isEnum*/ { |
| static const field core::List<self::E1> values = #C7; |
| static const field self::E1 one = #C3; |
| static const field self::E1 two = #C6; |
| const constructor •(core::int #index, core::String #name) → self::E1 |
| : super self::_E1&_Enum&A::•(#index, #name) |
| ; |
| method toString() → core::String |
| return "E1.${this.{core::_Enum::_name}{core::String}}"; |
| } |
| abstract class _E2&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ { |
| const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A |
| : super core::_Enum::•(index, _name) |
| ; |
| mixin-super-stub get foo() → core::String |
| return super.{self::A::foo}; |
| } |
| abstract class _E2&_Enum&A&B = self::_E2&_Enum&A with self::B /*isAnonymousMixin,hasConstConstructor*/ { |
| const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A&B |
| : super self::_E2&_Enum&A::•(index, _name) |
| ; |
| mixin-super-stub method bar() → core::int |
| return super.{self::B::bar}(); |
| } |
| class E2 extends self::_E2&_Enum&A&B /*isEnum*/ { |
| static const field core::List<self::E2> values = #C10; |
| static const field self::E2 one = #C8; |
| static const field self::E2 two = #C9; |
| const constructor •(core::int #index, core::String #name) → self::E2 |
| : super self::_E2&_Enum&A&B::•(#index, #name) |
| ; |
| method toString() → core::String |
| return "E2.${this.{core::_Enum::_name}{core::String}}"; |
| } |
| abstract class _E3&_Enum&M = core::_Enum with self::M /*isAnonymousMixin,hasConstConstructor*/ { |
| const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M |
| : super core::_Enum::•(index, _name) |
| ; |
| mixin-super-stub set callOnAssignment(() → void f) → void |
| return super.{self::M::callOnAssignment} = f; |
| } |
| class E3 extends self::_E3&_Enum&M /*isEnum*/ { |
| static const field core::List<self::E3> values = #C13; |
| static const field self::E3 one = #C11; |
| static const field self::E3 two = #C12; |
| const constructor •(core::int #index, core::String #name) → self::E3 |
| : super self::_E3&_Enum&M::•(#index, #name) |
| ; |
| method toString() → core::String |
| return "E3.${this.{core::_Enum::_name}{core::String}}"; |
| } |
| static method expectEquals(dynamic x, dynamic y) → dynamic { |
| if(!(x =={core::Object::==}{(core::Object) → core::bool} y)) { |
| throw "Expected '${x}' and '${y}' to be equal."; |
| } |
| } |
| static method expectThrows(() → void f) → dynamic { |
| try { |
| f(){() → void}; |
| throw "Expected function to throw."; |
| } |
| on core::Object catch(final core::Object e) { |
| } |
| } |
| static method throwOnCall() → void { |
| throw 42; |
| } |
| static method main() → dynamic { |
| self::expectEquals(#C3.{self::_E1&_Enum&A::foo}{core::String}, "foo"); |
| self::expectEquals(#C6.{self::_E1&_Enum&A::foo}{core::String}, "foo"); |
| self::expectEquals(#C8.{self::_E2&_Enum&A::foo}{core::String}, "foo"); |
| self::expectEquals(#C9.{self::_E2&_Enum&A::foo}{core::String}, "foo"); |
| self::expectEquals(#C8.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); |
| self::expectEquals(#C9.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); |
| self::expectThrows(#C11.{self::_E3&_Enum&M::callOnAssignment} = #C14); |
| self::expectThrows(#C12.{self::_E3&_Enum&M::callOnAssignment} = #C14); |
| } |
| |
| constants { |
| #C1 = 0 |
| #C2 = "one" |
| #C3 = self::E1 {index:#C1, _name:#C2} |
| #C4 = 1 |
| #C5 = "two" |
| #C6 = self::E1 {index:#C4, _name:#C5} |
| #C7 = <self::E1>[#C3, #C6] |
| #C8 = self::E2 {index:#C1, _name:#C2} |
| #C9 = self::E2 {index:#C4, _name:#C5} |
| #C10 = <self::E2>[#C8, #C9] |
| #C11 = self::E3 {index:#C1, _name:#C2} |
| #C12 = self::E3 {index:#C4, _name:#C5} |
| #C13 = <self::E3>[#C11, #C12] |
| #C14 = static-tearoff self::throwOnCall |
| } |
| |
| |
| Constructor coverage from constants: |
| org-dartlang-testcase:///simple_mixins.dart: |
| - E1. (from org-dartlang-testcase:///simple_mixins.dart:19:6) |
| - _E1&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:19: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:///simple_mixins.dart:21:6) |
| - _E2&_Enum&A&B. (from org-dartlang-testcase:///simple_mixins.dart:21:6) |
| - _E2&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:21:6) |
| - E3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) |
| - _E3&_Enum&M. (from org-dartlang-testcase:///simple_mixins.dart:23:6) |