| Index: pkg/compiler/lib/src/elements/modelx.dart
|
| diff --git a/pkg/compiler/lib/src/elements/modelx.dart b/pkg/compiler/lib/src/elements/modelx.dart
|
| index fbffa06d55267a19963a1b67bb0d401a609ab3ce..c5bef9020db1a91507c22df92bc86d7eb8eb1a8d 100644
|
| --- a/pkg/compiler/lib/src/elements/modelx.dart
|
| +++ b/pkg/compiler/lib/src/elements/modelx.dart
|
| @@ -2414,8 +2414,9 @@ abstract class ClassElementX extends BaseClassElementX {
|
| }
|
| }
|
|
|
| -class EnumClassElementX extends ClassElementX {
|
| +class EnumClassElementX extends ClassElementX implements EnumClassElement {
|
| final Enum node;
|
| + Iterable<FieldElement> enumValuesCache;
|
|
|
| EnumClassElementX(String name, Element enclosing, int id, this.node)
|
| : super(name, enclosing, id, STATE_NOT_STARTED);
|
| @@ -2433,9 +2434,21 @@ class EnumClassElementX extends ClassElementX {
|
| Node parseNode(Compiler compiler) => node;
|
|
|
| @override
|
| - accept(ElementVisitor visitor) => visitor.visitClassElement(this);
|
| + accept(ElementVisitor visitor) => visitor.visitEnumClassElement(this);
|
|
|
| List<DartType> computeTypeParameters(Compiler compiler) => const <DartType>[];
|
| +
|
| + Iterable<FieldElement> get enumValues {
|
| + assert(invariant(this, enumValuesCache != null,
|
| + message: "enumValues has not been computed for $this."));
|
| + return enumValuesCache;
|
| + }
|
| +
|
| + void set enumValues(Iterable<FieldElement> values) {
|
| + assert(invariant(this, enumValuesCache == null,
|
| + message: "enumValues has already been computed for $this."));
|
| + enumValuesCache = values;
|
| + }
|
| }
|
|
|
| class EnumConstructorElementX extends ConstructorElementX {
|
|
|