Index: pkg/analyzer/lib/src/dart/element/element.dart |
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart |
index 84eff00310724fda8ae87f290e4bf10d95374738..df85f1aa7f9e46f5a7c9b62d815db366fcf74ad4 100644 |
--- a/pkg/analyzer/lib/src/dart/element/element.dart |
+++ b/pkg/analyzer/lib/src/dart/element/element.dart |
@@ -35,7 +35,6 @@ import 'package:analyzer/src/task/dart.dart'; |
* A concrete implementation of a [ClassElement]. |
*/ |
abstract class AbstractClassElementImpl extends ElementImpl |
- with TypeParameterizedElementMixin |
implements ClassElement { |
/** |
* A list containing all of the accessors (getters and setters) contained in |
@@ -49,13 +48,6 @@ abstract class AbstractClassElementImpl extends ElementImpl |
List<FieldElement> _fields = FieldElement.EMPTY_LIST; |
/** |
- * The superclass of the class, or `null` if the class does not have an |
- * explicit superclass. |
- */ |
- @override |
- InterfaceType _supertype; |
- |
- /** |
* The type defined by the class. |
*/ |
@override |
@@ -96,9 +88,6 @@ abstract class AbstractClassElementImpl extends ElementImpl |
String get displayName => name; |
@override |
- TypeParameterizedElementMixin get enclosingTypeParameterContext => null; |
- |
- @override |
List<FieldElement> get fields => _fields; |
/** |
@@ -117,19 +106,6 @@ abstract class AbstractClassElementImpl extends ElementImpl |
@override |
ElementKind get kind => ElementKind.CLASS; |
- /** |
- * Return resynthesized type parameter elements. |
- */ |
- List<TypeParameterElement> get resynthesizedTypeParameters { |
- return super.typeParameters; |
- } |
- |
- @override |
- TypeParameterizedElementMixin get typeParameterContext => this; |
- |
- @override |
- List<UnlinkedTypeParam> get unlinkedTypeParams => const <UnlinkedTypeParam>[]; |
- |
@override |
accept(ElementVisitor visitor) => visitor.visitClassElement(this); |
@@ -445,7 +421,8 @@ class AuxiliaryElements { |
/** |
* An [AbstractClassElementImpl] which is a class. |
*/ |
-class ClassElementImpl extends AbstractClassElementImpl { |
+class ClassElementImpl extends AbstractClassElementImpl |
+ with TypeParameterizedElementMixin { |
/** |
* The unlinked representation of the class in the summary. |
*/ |
@@ -457,6 +434,11 @@ class ClassElementImpl extends AbstractClassElementImpl { |
List<TypeParameterElement> _typeParameters = TypeParameterElement.EMPTY_LIST; |
/** |
+ * The superclass of the class, or `null` for [Object]. |
+ */ |
+ InterfaceType _supertype; |
+ |
+ /** |
* A list containing all of the mixins that are applied to the class being |
* extended in order to derive the superclass of this class. |
*/ |
@@ -629,6 +611,9 @@ class ClassElementImpl extends AbstractClassElementImpl { |
} |
@override |
+ TypeParameterizedElementMixin get enclosingTypeParameterContext => null; |
+ |
+ @override |
bool get hasNonFinalField { |
List<ClassElement> classesToVisit = new List<ClassElement>(); |
HashSet<ClassElement> visitedClasses = new HashSet<ClassElement>(); |
@@ -848,9 +833,12 @@ class ClassElementImpl extends AbstractClassElementImpl { |
} |
@override |
+ TypeParameterizedElementMixin get typeParameterContext => this; |
+ |
+ @override |
List<TypeParameterElement> get typeParameters { |
if (_unlinkedClass != null) { |
- return resynthesizedTypeParameters; |
+ return super.typeParameters; |
} |
return _typeParameters; |
} |