Implement isEnumConstant in ConstFieldElementImpl_EnumValue.

Change-Id: Icbb2dac7db5299a72294f31e119000bd8f535516
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/222100
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index d491590..0a5c264 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -1297,6 +1297,9 @@
   bool get hasInitializer => false;
 
   @override
+  bool get isEnumConstant => true;
+
+  @override
   Element get nonSynthetic => this;
 
   @override
@@ -3284,10 +3287,7 @@
   }
 
   @override
-  bool get isEnumConstant =>
-      enclosingElement is ClassElement &&
-      (enclosingElement as ClassElement).isEnum &&
-      !isSynthetic;
+  bool get isEnumConstant => false;
 
   @override
   bool get isExternal {
diff --git a/pkg/analyzer/lib/src/summary2/bundle_writer.dart b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
index f6fdf85..1adc959 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_writer.dart
@@ -173,7 +173,8 @@
     _sink._writeStringReference(element.name);
     _resolutionSink._writeAnnotationList(element.metadata);
 
-    var constants = element.fields.where((e) => !e.isSynthetic).toList();
+    var constants =
+        element.fields.whereType<ConstFieldElementImpl_EnumValue>().toList();
     _writeList<FieldElement>(constants, (field) {
       _sink._writeStringReference(field.name);
       _resolutionSink._writeAnnotationList(field.metadata);