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

class Foo extends core::_Enum /*isEnum*/  {
  static const field core::List<self::Foo> values = const <self::Foo>[self::Foo::ec1, self::Foo::ec2];
  static const field self::Foo ec1 = const self::Foo::•(0, "ec1");
  static const field self::Foo ec2 = const self::Foo::•(1, "ec2");
  const constructor •(core::int #index, core::String #name) → self::Foo
    : super core::_Enum::•(#index, #name)
    ;
  method toString() → core::String
    return "Foo.${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 <Foo*>[const Foo{_Enum.index: 0, _Enum._name: "ec1"}, const Foo{_Enum.index: 1, _Enum._name: "ec2"}])
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum.dart:6:3 -> InstanceConstant(const Foo{_Enum.index: 0, _Enum._name: "ec1"})
Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum.dart:7:3 -> InstanceConstant(const Foo{_Enum.index: 1, _Enum._name: "ec2"})
Extra constant evaluation: evaluated: 8, effectively constant: 3
