|  | library; | 
|  | // | 
|  | // Problems in library: | 
|  | // | 
|  | // pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart:21:20: Error: Can't implement 'I?' because it's nullable. | 
|  | // Try removing the question mark. | 
|  | // enum E3 implements I? { // Error. | 
|  | //                    ^^ | 
|  | // | 
|  | // pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart:16:6: Error: The non-abstract class 'E2' is missing implementations for these members: | 
|  | //  - I.foo | 
|  | // Try to either | 
|  | //  - provide an implementation, | 
|  | //  - inherit an implementation from a superclass or mixin, | 
|  | //  - mark the class as abstract, or | 
|  | //  - provide a 'noSuchMethod' implementation. | 
|  | // | 
|  | // enum E2 implements I { // Error. | 
|  | //      ^^ | 
|  | // pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart:6:8: Context: 'I.foo' is defined here. | 
|  | //   void foo(); | 
|  | //        ^^^ | 
|  | // | 
|  | // pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart:41:7: Error: The argument type 'E4' can't be assigned to the parameter type 'I'. | 
|  | //  - 'E4' is from 'pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart'. | 
|  | //  - 'I' is from 'pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart'. | 
|  | //   bar(e4); // Error. | 
|  | //       ^ | 
|  | // | 
|  | import self as self; | 
|  | import "dart:core" as core; | 
|  |  | 
|  | abstract class I extends core::Object { | 
|  | synthetic constructor •() → self::I | 
|  | : super core::Object::•() | 
|  | ; | 
|  | abstract method foo() → void; | 
|  | } | 
|  | class E1 extends core::_Enum implements self::I /*isEnum*/  { | 
|  | static const field core::List<self::E1> values = #C7; | 
|  | enum-element static const field self::E1 one = #C3; | 
|  | enum-element static const field self::E1 two = #C6; | 
|  | const synthetic constructor •(core::int #index, core::String #name) → self::E1 | 
|  | : super core::_Enum::•(#index, #name) | 
|  | ; | 
|  | method _enumToString() → core::String | 
|  | return "E1.${this.{core::_Enum::_name}{core::String}}"; | 
|  | method foo() → void {} | 
|  | } | 
|  | class E2 extends core::_Enum implements self::I /*isEnum*/  { | 
|  | static const field core::List<self::E2> values = #C10; | 
|  | enum-element static const field self::E2 one = #C8; | 
|  | enum-element static const field self::E2 two = #C9; | 
|  | const synthetic constructor •(core::int #index, core::String #name) → self::E2 | 
|  | : super core::_Enum::•(#index, #name) | 
|  | ; | 
|  | method _enumToString() → core::String | 
|  | return "E2.${this.{core::_Enum::_name}{core::String}}"; | 
|  | } | 
|  | class E3 extends core::_Enum implements self::I /*isEnum*/  { | 
|  | static const field core::List<self::E3> values = #C13; | 
|  | enum-element static const field self::E3 one = #C11; | 
|  | enum-element static const field self::E3 two = #C12; | 
|  | const synthetic constructor •(core::int #index, core::String #name) → self::E3 | 
|  | : super core::_Enum::•(#index, #name) | 
|  | ; | 
|  | method _enumToString() → core::String | 
|  | return "E3.${this.{core::_Enum::_name}{core::String}}"; | 
|  | method foo() → void {} | 
|  | } | 
|  | class E4 extends core::_Enum /*isEnum*/  { | 
|  | static const field core::List<self::E4> values = #C16; | 
|  | enum-element static const field self::E4 one = #C14; | 
|  | enum-element static const field self::E4 two = #C15; | 
|  | const synthetic constructor •(core::int #index, core::String #name) → self::E4 | 
|  | : super core::_Enum::•(#index, #name) | 
|  | ; | 
|  | method _enumToString() → core::String | 
|  | return "E4.${this.{core::_Enum::_name}{core::String}}"; | 
|  | method foo() → void {} | 
|  | } | 
|  | static method bar(self::I i) → dynamic {} | 
|  | static method test(self::E1 e1, self::E2 e2, self::E3 e3, self::E4 e4) → dynamic { | 
|  | self::bar(e1); | 
|  | self::bar(e2); | 
|  | self::bar(e3); | 
|  | self::bar(invalid-expression "pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart:41:7: Error: The argument type 'E4' can't be assigned to the parameter type 'I'. | 
|  | - 'E4' is from 'pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart'. | 
|  | - 'I' is from 'pkg/front_end/testcases/enhanced_enums/simple_interfaces.dart'. | 
|  | bar(e4); // Error. | 
|  | ^" in e4 as{TypeError} self::I); | 
|  | } | 
|  | static method main() → dynamic {} | 
|  |  | 
|  | 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 = self::E4 {index:#C1, _name:#C2} | 
|  | #C15 = self::E4 {index:#C4, _name:#C5} | 
|  | #C16 = <self::E4>[#C14, #C15] | 
|  | } | 
|  |  | 
|  |  | 
|  | Constructor coverage from constants: | 
|  | org-dartlang-testcase:///simple_interfaces.dart: | 
|  | - E1. (from org-dartlang-testcase:///simple_interfaces.dart:9: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_interfaces.dart:16:6) | 
|  | - E3. (from org-dartlang-testcase:///simple_interfaces.dart:21:6) | 
|  | - E4. (from org-dartlang-testcase:///simple_interfaces.dart:28:6) |