[analyzer] Remove FormalParameterElementOrMember class.

The only reason this class was needed was to serve as a common
interface (not part of the analyzer public API) shared by
`ParameterMember` and `FormalParameterElementImpl`, which could be
used as a type argument when the analyzer instantiates generic classes
in `_fe_analyzer_shared`. Now that we have
`FormalParameterElementMixin`, it can serve as the common interface.

Change-Id: Idc25ca4077dc9c801d7eeb2e54b0d6b7809f1912
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404362
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 22376af92..5049f5f 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -4513,8 +4513,7 @@
         FragmentedElementMixin<FormalParameterFragment>,
         FormalParameterElementMixin,
         _HasSinceSdkVersionMixin,
-        _NonTopLevelVariableOrParameter
-    implements FormalParameterElementOrMember {
+        _NonTopLevelVariableOrParameter {
   final ParameterElementImpl wrappedElement;
 
   FormalParameterElementImpl(this.wrappedElement) {
@@ -4658,7 +4657,10 @@
 
 /// A mixin that provides a common implementation for methods defined in
 /// [FormalParameterElement].
-mixin FormalParameterElementMixin implements FormalParameterElement {
+mixin FormalParameterElementMixin
+    implements
+        FormalParameterElement,
+        SharedNamedFunctionParameterStructure<TypeImpl> {
   @override
   void appendToWithoutDelimiters2(StringBuffer buffer) {
     buffer.write(
@@ -4673,11 +4675,6 @@
   }
 }
 
-abstract class FormalParameterElementOrMember
-    implements
-        FormalParameterElement,
-        SharedNamedFunctionParameterStructure<TypeImpl> {}
-
 mixin FragmentedAnnotatableElementMixin<E extends Fragment>
     implements FragmentedElementMixin<E> {
   String? get documentationComment {
diff --git a/pkg/analyzer/lib/src/dart/element/member.dart b/pkg/analyzer/lib/src/dart/element/member.dart
index 55a0675..efa4449 100644
--- a/pkg/analyzer/lib/src/dart/element/member.dart
+++ b/pkg/analyzer/lib/src/dart/element/member.dart
@@ -1135,7 +1135,7 @@
 /// type parameters are known.
 class ParameterMember extends VariableMember
     with ParameterElementMixin, FormalParameterElementMixin
-    implements ParameterElement, FormalParameterElementOrMember {
+    implements ParameterElement {
   @override
   final List<TypeParameterElement> typeParameters;
 
diff --git a/pkg/analyzer/lib/src/dart/element/type.dart b/pkg/analyzer/lib/src/dart/element/type.dart
index daf05b8..05ef272 100644
--- a/pkg/analyzer/lib/src/dart/element/type.dart
+++ b/pkg/analyzer/lib/src/dart/element/type.dart
@@ -91,7 +91,7 @@
     implements
         FunctionType,
         SharedFunctionTypeStructure<TypeImpl, TypeParameterElementImpl2,
-            FormalParameterElementOrMember> {
+            FormalParameterElementMixin> {
   @override
   late int hashCode = _computeHashCode();
 
@@ -243,9 +243,9 @@
   // TODO(paulberry): see if this type can be changed to
   // `List<FormalParameterElementImpl>`. See
   // https://dart-review.googlesource.com/c/sdk/+/402341/comment/b1669e20_15938fcd/.
-  List<FormalParameterElementOrMember> get sortedNamedParametersShared =>
+  List<FormalParameterElementMixin> get sortedNamedParametersShared =>
       sortedNamedParameters
-          .map((p) => p.asElement2 as FormalParameterElementOrMember)
+          .map((p) => p.asElement2 as FormalParameterElementMixin)
           .toList();
 
   @override
diff --git a/pkg/analyzer/lib/src/dart/element/type_constraint_gatherer.dart b/pkg/analyzer/lib/src/dart/element/type_constraint_gatherer.dart
index bf41f9e..c4ddb05 100644
--- a/pkg/analyzer/lib/src/dart/element/type_constraint_gatherer.dart
+++ b/pkg/analyzer/lib/src/dart/element/type_constraint_gatherer.dart
@@ -101,7 +101,7 @@
 /// attempt to make one type schema a subtype of another.
 class TypeConstraintGatherer extends shared.TypeConstraintGenerator<
         DartType,
-        FormalParameterElementOrMember,
+        FormalParameterElementMixin,
         PromotableElementImpl2,
         TypeParameterElementImpl2,
         InterfaceTypeImpl,
@@ -110,7 +110,7 @@
     with
         shared.TypeConstraintGeneratorMixin<
             DartType,
-            FormalParameterElementOrMember,
+            FormalParameterElementMixin,
             PromotableElementImpl2,
             TypeParameterElementImpl2,
             InterfaceTypeImpl,
diff --git a/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart
index 66912a0..848a3e1 100644
--- a/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart
@@ -515,7 +515,7 @@
   @override
   TypeConstraintGenerator<
           DartType,
-          FormalParameterElementOrMember,
+          FormalParameterElementMixin,
           PromotableElementImpl2,
           TypeParameterElementImpl2,
           InterfaceTypeImpl,