@@ -570,9 +570,6 @@ class ClassElementImpl extends AbstractClassElementImpl
570570 return super .documentationComment;
571571 }
572572
573- @override
574- TypeParameterizedElementMixin get enclosingTypeParameterContext => null ;
575-
576573 @override
577574 List <FieldElement > get fields {
578575 if (_fields != null ) return _fields;
@@ -879,7 +876,7 @@ class ClassElementImpl extends AbstractClassElementImpl
879876 InterfaceType get type {
880877 if (_type == null ) {
881878 InterfaceTypeImpl type = new InterfaceTypeImpl (this );
882- type.typeArguments = typeParameterTypes ;
879+ type.typeArguments = typeParameters. map ((e) => e.type). toList () ;
883880 _type = type;
884881 }
885882 return _type;
@@ -2059,10 +2056,6 @@ class ConstructorElementImpl extends ExecutableElementImpl
20592056 ClassElementImpl get enclosingElement =>
20602057 super .enclosingElement as ClassElementImpl ;
20612058
2062- @override
2063- TypeParameterizedElementMixin get enclosingTypeParameterContext =>
2064- super .enclosingElement as ClassElementImpl ;
2065-
20662059 /// Set whether this constructor represents a factory method.
20672060 void set factory (bool isFactory) {
20682061 setModifier (Modifier .FACTORY , isFactory);
@@ -4069,9 +4062,6 @@ class ExtensionElementImpl extends ElementImpl
40694062 return super .documentationComment;
40704063 }
40714064
4072- @override
4073- TypeParameterizedElementMixin get enclosingTypeParameterContext => null ;
4074-
40754065 @override
40764066 DartType get extendedType {
40774067 if (_extendedType != null ) return _extendedType;
@@ -4506,11 +4496,6 @@ class FunctionElementImpl extends ExecutableElementImpl
45064496 return super .displayName;
45074497 }
45084498
4509- @override
4510- TypeParameterizedElementMixin get enclosingTypeParameterContext {
4511- return (enclosingElement as ElementImpl ).typeParameterContext;
4512- }
4513-
45144499 @override
45154500 String get identifier {
45164501 String identifier = super .identifier;
@@ -4565,17 +4550,9 @@ class FunctionElementImpl_forFunctionTypedParameter
45654550 @override
45664551 final CompilationUnitElementImpl enclosingUnit;
45674552
4568- /// The enclosing function typed [ParameterElementImpl] .
4569- final ParameterElementImpl _parameter;
4570-
4571- FunctionElementImpl_forFunctionTypedParameter (
4572- this .enclosingUnit, this ._parameter)
4553+ FunctionElementImpl_forFunctionTypedParameter (this .enclosingUnit)
45734554 : super ('' , - 1 );
45744555
4575- @override
4576- TypeParameterizedElementMixin get enclosingTypeParameterContext =>
4577- _parameter.typeParameterContext;
4578-
45794556 @override
45804557 bool get isSynthetic => true ;
45814558}
@@ -4612,11 +4589,6 @@ class GenericFunctionTypeElementImpl extends ElementImpl
46124589 GenericFunctionTypeElementImpl .forOffset (int nameOffset)
46134590 : super ("" , nameOffset);
46144591
4615- @override
4616- TypeParameterizedElementMixin get enclosingTypeParameterContext {
4617- return _enclosingElement.typeParameterContext;
4618- }
4619-
46204592 @override
46214593 String get identifier => '-' ;
46224594
@@ -4808,9 +4780,6 @@ class GenericTypeAliasElementImpl extends ElementImpl
48084780 CompilationUnitElement get enclosingElement =>
48094781 super .enclosingElement as CompilationUnitElement ;
48104782
4811- @override
4812- TypeParameterizedElementMixin get enclosingTypeParameterContext => null ;
4813-
48144783 @override
48154784 CompilationUnitElementImpl get enclosingUnit =>
48164785 _enclosingElement as CompilationUnitElementImpl ;
@@ -5950,10 +5919,6 @@ class MethodElementImpl extends ExecutableElementImpl implements MethodElement {
59505919 return displayName;
59515920 }
59525921
5953- @override
5954- TypeParameterizedElementMixin get enclosingTypeParameterContext =>
5955- super .enclosingElement as TypeParameterizedElementMixin ;
5956-
59575922 /// Set whether this class is abstract.
59585923 void set isAbstract (bool isAbstract) {
59595924 setModifier (Modifier .ABSTRACT , isAbstract);
@@ -6444,9 +6409,6 @@ class MultiplyInheritedPropertyAccessorElementImpl
64446409 isSynthetic = true ;
64456410 }
64466411
6447- @override
6448- TypeParameterizedElementMixin get enclosingTypeParameterContext => null ;
6449-
64506412 @override
64516413 List <ExecutableElement > get inheritedElements => _elements;
64526414
@@ -7184,11 +7146,6 @@ class PropertyAccessorElementImpl extends ExecutableElementImpl
71847146 return variable.setter;
71857147 }
71867148
7187- @override
7188- TypeParameterizedElementMixin get enclosingTypeParameterContext {
7189- return (enclosingElement as ElementImpl ).typeParameterContext;
7190- }
7191-
71927149 /// Set whether this accessor is a getter.
71937150 void set getter (bool isGetter) {
71947151 setModifier (Modifier .GETTER , isGetter);
@@ -7716,28 +7673,15 @@ class TypeParameterElementImpl extends ElementImpl
77167673
77177674/// Mixin representing an element which can have type parameters.
77187675mixin TypeParameterizedElementMixin
7719- implements
7720- TypeParameterizedElement ,
7721- ElementImpl ,
7722- TypeParameterSerializationContext {
7676+ implements TypeParameterizedElement , ElementImpl {
77237677 /// A cached list containing the type parameters declared by this element
77247678 /// directly, or `null` if the elements have not been created yet. This does
77257679 /// not include type parameters that are declared by any enclosing elements.
77267680 List <TypeParameterElement > _typeParameterElements;
77277681
7728- /// A cached list containing the type parameter types declared by this element
7729- /// directly, or `null` if the list has not been computed yet.
7730- List <TypeParameterType > _typeParameterTypes;
7731-
7732- /// Get the type parameter context enclosing this one, if any.
7733- TypeParameterizedElementMixin get enclosingTypeParameterContext;
7734-
77357682 @override
77367683 bool get isSimplyBounded => true ;
77377684
7738- @override
7739- TypeParameterizedElementMixin get typeParameterContext => this ;
7740-
77417685 @override
77427686 List <TypeParameterElement > get typeParameters {
77437687 if (_typeParameterElements != null ) return _typeParameterElements;
@@ -7760,55 +7704,6 @@ mixin TypeParameterizedElementMixin
77607704
77617705 return _typeParameterElements ?? const < TypeParameterElement > [];
77627706 }
7763-
7764- /// Get a list of [TypeParameterType] objects corresponding to the
7765- /// element's type parameters.
7766- List <TypeParameterType > get typeParameterTypes {
7767- return _typeParameterTypes ?? = typeParameters
7768- .map ((TypeParameterElement e) =>
7769- e.instantiate (nullabilitySuffix: NullabilitySuffix .star))
7770- .toList (growable: false );
7771- }
7772-
7773- @override
7774- int computeDeBruijnIndex (TypeParameterElement typeParameter,
7775- {int offset = 0 }) {
7776- if (typeParameter.enclosingElement == this ) {
7777- var index = typeParameters.indexOf (typeParameter);
7778- assert (index >= 0 );
7779- return typeParameters.length - index + offset;
7780- } else if (enclosingTypeParameterContext != null ) {
7781- return enclosingTypeParameterContext.computeDeBruijnIndex (typeParameter,
7782- offset: offset + typeParameters.length);
7783- } else {
7784- return null ;
7785- }
7786- }
7787-
7788- /// Convert the given [index] into a type parameter type.
7789- TypeParameterType getTypeParameterType (int index) {
7790- List <TypeParameterType > types = typeParameterTypes;
7791- if (index <= types.length) {
7792- return types[types.length - index];
7793- } else if (enclosingTypeParameterContext != null ) {
7794- return enclosingTypeParameterContext
7795- .getTypeParameterType (index - types.length);
7796- } else {
7797- // If we get here, it means that a summary contained a type parameter
7798- // index that was out of range.
7799- throw new RangeError ('Invalid type parameter index' );
7800- }
7801- }
7802- }
7803-
7804- /// Interface used by linker serialization methods to convert type parameter
7805- /// references into De Bruijn indices.
7806- abstract class TypeParameterSerializationContext {
7807- /// Return the given [typeParameter] 's de Bruijn index in this context, or
7808- /// `null` if it's not in scope.
7809- ///
7810- /// If an [offset] is provided, then it is added to the computed index.
7811- int computeDeBruijnIndex (TypeParameterElement typeParameter, {int offset: 0 });
78127707}
78137708
78147709/// Container with information about explicit top-level property accessors and
0 commit comments