library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

@#C1
class E extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E> values = #C11;
  static const field self::E E1 = #C4;
  static const field self::E E2 = #C7;
  static const field self::E E3 = #C10;
  const constructor •(core::int #index, core::String #name) → self::E
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "E.${this.{core::_Enum::_name}{core::String}}";
}
static const field dynamic a = #C1;
static method main() → dynamic {}

constants  {
  #C1 = null
  #C2 = 0
  #C3 = "E1"
  #C4 = self::E {index:#C2, _name:#C3}
  #C5 = 1
  #C6 = "E2"
  #C7 = self::E {index:#C5, _name:#C6}
  #C8 = 2
  #C9 = "E3"
  #C10 = self::E {index:#C8, _name:#C9}
  #C11 = <self::E*>[#C4, #C7, #C10]
}


Constructor coverage from constants:
org-dartlang-testcase:///metadata_enum.dart:
- E. (from org-dartlang-testcase:///metadata_enum.dart:8:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
