library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/enhanced_enums/recovery_in_elements.dart:8:3: Error: Expected an identifier, but got 'final'.
// Try inserting an identifier before 'final'.
//   final String foo = "foo"; // Error: attempt to parse the field as an element.
//   ^^^^^
//
// pkg/front_end/testcases/enhanced_enums/recovery_in_elements.dart:8:3: Error: Expected '}' before this.
//   final String foo = "foo"; // Error: attempt to parse the field as an element.
//   ^^^^^
//
import self as self;
import "dart:core" as core;

class E extends core::_Enum /*isEnum*/  {
  static const field core::List<self::E> values = #C4;
  static const field self::E element = #C3;
  const constructor •(core::int index, core::String name) → self::E
    : super core::_Enum::•(index, name)
    ;
  method toString() → core::String
    return "E.${this.{core::_Enum::_name}{core::String}}";
}
static method test() → dynamic {
  return #C3;
}
static method main() → dynamic {}

constants  {
  #C1 = 0
  #C2 = "element"
  #C3 = self::E {index:#C1, _name:#C2}
  #C4 = <self::E>[#C3]
}


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