library;
import self as self;
import "dart:core" as core;

@#C1
class E extends core::Object {
  final field core::int* index;
  final field core::String* _name;
  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*
    : self::E::index = index, self::E::_name = _name, super core::Object::•()
    ;
  method toString() → core::String*
    return this.{=self::E::_name};
}
static const field dynamic a = #C1;
static method main() → dynamic {}

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