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

class A extends core::_Enum /*isEnum*/  {
  static const field core::List<self::A> values = const <self::A>[self::A::a, self::A::b];
  static const field self::A a = const self::A::•(0, "a");
  static const field self::A b = const self::A::•(1, "b");
  const constructor •(core::int #index, core::String #name) → self::A
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "A.${this.{core::_Enum::_name}{core::String}}";
}
static method main() → dynamic
  ;


Extra constant evaluation status:
Evaluated: ListLiteral @ org-dartlang-testcase:///enum.dart:5:6 -> ListConstant(const <A*>[const A{_Enum.index: 0, _Enum._name: "a"}, const A{_Enum.index: 1, _Enum._name: "b"}])
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum.dart:6:3 -> InstanceConstant(const A{_Enum.index: 0, _Enum._name: "a"})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum.dart:7:3 -> InstanceConstant(const A{_Enum.index: 1, _Enum._name: "b"})
Extra constant evaluation: evaluated: 8, effectively constant: 3
