| library; | 
 | import self as self; | 
 | import "dart:core" as core; | 
 |  | 
 | abstract class M1 extends core::Object /*isMixinDeclaration*/  { | 
 |   get foo() → core::String | 
 |     return "foo"; | 
 | } | 
 | abstract class M2 extends core::Object /*isMixinDeclaration*/  { | 
 |   method bar() → core::int | 
 |     return 42; | 
 | } | 
 | abstract class M3 extends core::Object /*isMixinDeclaration*/  { | 
 |   set callOnAssignment(() → void f) → void { | 
 |     f(){() → void}; | 
 |   } | 
 | } | 
 | abstract class _E1&_Enum&M1 = core::_Enum with self::M1 /*isAnonymousMixin,hasConstConstructor*/  { | 
 |   const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&M1 | 
 |     : super core::_Enum::•(index, _name) | 
 |     ; | 
 |   mixin-super-stub get foo() → core::String | 
 |     return super.{self::M1::foo}; | 
 | } | 
 | class E1 extends self::_E1&_Enum&M1 /*isEnum*/  { | 
 |   enum-element static const field self::E1 one = #C3; | 
 |   enum-element static const field self::E1 two = #C6; | 
 |   static const field core::List<self::E1> values = #C7; | 
 |   const synthetic constructor •(core::int #index, core::String #name) → self::E1 | 
 |     : super self::_E1&_Enum&M1::•(#index, #name) | 
 |     ; | 
 |   method _enumToString() → core::String | 
 |     return "E1.${this.{core::_Enum::_name}{core::String}}"; | 
 | } | 
 | abstract class _E2&_Enum&M1 = core::_Enum with self::M1 /*isAnonymousMixin,hasConstConstructor*/  { | 
 |   const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1 | 
 |     : super core::_Enum::•(index, _name) | 
 |     ; | 
 |   mixin-super-stub get foo() → core::String | 
 |     return super.{self::M1::foo}; | 
 | } | 
 | abstract class _E2&_Enum&M1&M2 = self::_E2&_Enum&M1 with self::M2 /*isAnonymousMixin,hasConstConstructor*/  { | 
 |   const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1&M2 | 
 |     : super self::_E2&_Enum&M1::•(index, _name) | 
 |     ; | 
 |   mixin-super-stub method bar() → core::int | 
 |     return super.{self::M2::bar}(); | 
 | } | 
 | class E2 extends self::_E2&_Enum&M1&M2 /*isEnum*/  { | 
 |   enum-element static const field self::E2 one = #C8; | 
 |   enum-element static const field self::E2 two = #C9; | 
 |   static const field core::List<self::E2> values = #C10; | 
 |   const synthetic constructor •(core::int #index, core::String #name) → self::E2 | 
 |     : super self::_E2&_Enum&M1&M2::•(#index, #name) | 
 |     ; | 
 |   method _enumToString() → core::String | 
 |     return "E2.${this.{core::_Enum::_name}{core::String}}"; | 
 | } | 
 | abstract class _E3&_Enum&M3 = core::_Enum with self::M3 /*isAnonymousMixin,hasConstConstructor*/  { | 
 |   const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M3 | 
 |     : super core::_Enum::•(index, _name) | 
 |     ; | 
 |   mixin-super-stub set callOnAssignment(() → void f) → void | 
 |     return super.{self::M3::callOnAssignment} = f; | 
 | } | 
 | class E3 extends self::_E3&_Enum&M3 /*isEnum*/  { | 
 |   enum-element static const field self::E3 one = #C11; | 
 |   enum-element static const field self::E3 two = #C12; | 
 |   static const field core::List<self::E3> values = #C13; | 
 |   const synthetic constructor •(core::int #index, core::String #name) → self::E3 | 
 |     : super self::_E3&_Enum&M3::•(#index, #name) | 
 |     ; | 
 |   method _enumToString() → 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&M1::foo}{core::String}, "foo"); | 
 |   self::expectEquals(#C6.{self::_E1&_Enum&M1::foo}{core::String}, "foo"); | 
 |   self::expectEquals(#C8.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); | 
 |   self::expectEquals(#C9.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); | 
 |   self::expectEquals(#C8.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); | 
 |   self::expectEquals(#C9.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); | 
 |   self::expectThrows(#C11.{self::_E3&_Enum&M3::callOnAssignment} = #C14); | 
 |   self::expectThrows(#C12.{self::_E3&_Enum&M3::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&M1. (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&M1&M2. (from org-dartlang-testcase:///simple_mixins.dart:21:6) | 
 | - _E2&_Enum&M1. (from org-dartlang-testcase:///simple_mixins.dart:21:6) | 
 | - E3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) | 
 | - _E3&_Enum&M3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) |