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

class Foo extends core::_Enum /*isEnum*/  {
  enum-element static const field self::Foo ec1 = const self::Foo::•(0, "ec1");
  enum-element static const field self::Foo ec2 = const self::Foo::•(1, "ec2");
  static const field core::List<self::Foo> values = const <self::Foo>[self::Foo::ec1, self::Foo::ec2];
  const synthetic constructor •(core::int #index, core::String #name) → self::Foo
    : super core::_Enum::•(#index, #name)
    ;
  method _enumToString() → core::String
    return "Foo.${this.{core::_Enum::_name}{core::String}}";
}
static method main() → dynamic
  ;


Extra constant evaluation status:
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"})
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"}])
Extra constant evaluation: evaluated: 8, effectively constant: 3
