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

class A extends core::Object /*isEnum*/  {
  final field core::int index;
  final field core::String _name;
  static const field core::List<self::A> values = #C7;
  static const field self::A a = #C3;
  static const field self::A b = #C6;
  const constructor •(core::int index, core::String _name) → self::A
    : self::A::index = index, self::A::_name = _name, super core::Object::•()
    ;
  method toString() → core::String
    return this.{self::A::_name}{core::String};
}
static method main() → dynamic {}

constants  {
  #C1 = 0
  #C2 = "A.a"
  #C3 = self::A {index:#C1, _name:#C2}
  #C4 = 1
  #C5 = "A.b"
  #C6 = self::A {index:#C4, _name:#C5}
  #C7 = <self::A*>[#C3, #C6]
}


Constructor coverage from constants:
org-dartlang-testcase:///enum.dart:
- A. (from org-dartlang-testcase:///enum.dart:5:6)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
