mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 02:07:06 +00:00
Legacy. Remove 'typeProvider' from Member.
Change-Id: Ic6dbadc6d3ce93e4dc57490dd5b921f81875a648 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/350345 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
parent
624a7b742c
commit
83aca6c5c2
|
@ -11,7 +11,6 @@ import 'package:analyzer/source/source.dart';
|
|||
import 'package:analyzer/src/dart/element/display_string_builder.dart';
|
||||
import 'package:analyzer/src/dart/element/element.dart';
|
||||
import 'package:analyzer/src/dart/element/type_algebra.dart';
|
||||
import 'package:analyzer/src/dart/element/type_provider.dart';
|
||||
import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
|
||||
import 'package:analyzer/src/generated/utilities_dart.dart';
|
||||
import 'package:pub_semver/pub_semver.dart';
|
||||
|
@ -24,11 +23,10 @@ class ConstructorMember extends ExecutableMember
|
|||
/// Initialize a newly created element to represent a constructor, based on
|
||||
/// the [declaration], and applied [substitution].
|
||||
ConstructorMember({
|
||||
required TypeProviderImpl? typeProvider,
|
||||
required ConstructorElement declaration,
|
||||
required MapSubstitution augmentationSubstitution,
|
||||
required MapSubstitution substitution,
|
||||
}) : super(typeProvider, declaration, augmentationSubstitution, substitution,
|
||||
}) : super(declaration, augmentationSubstitution, substitution,
|
||||
const <TypeParameterElement>[]);
|
||||
|
||||
@override
|
||||
|
@ -117,7 +115,6 @@ class ConstructorMember extends ExecutableMember
|
|||
}
|
||||
|
||||
return ConstructorMember(
|
||||
typeProvider: _typeProvider,
|
||||
declaration: declaration,
|
||||
augmentationSubstitution: augmentationSubstitution,
|
||||
substitution: substitution,
|
||||
|
@ -142,7 +139,6 @@ class ConstructorMember extends ExecutableMember
|
|||
}
|
||||
|
||||
return ConstructorMember(
|
||||
typeProvider: constructor.library.typeProvider as TypeProviderImpl,
|
||||
declaration: constructor,
|
||||
augmentationSubstitution: augmentationSubstitution,
|
||||
substitution: Substitution.fromInterfaceType(definingType),
|
||||
|
@ -166,7 +162,6 @@ abstract class ExecutableMember extends Member implements ExecutableElement {
|
|||
/// their bounds. The [substitution] includes replacing [declaration] type
|
||||
/// parameters with the provided fresh [typeParameters].
|
||||
ExecutableMember(
|
||||
super.typeProvider,
|
||||
ExecutableElement super.declaration,
|
||||
super.augmentationSubstitution,
|
||||
super.substitution,
|
||||
|
@ -226,14 +221,13 @@ abstract class ExecutableMember extends Member implements ExecutableElement {
|
|||
return declaration.parameters.map<ParameterElement>((p) {
|
||||
if (p is FieldFormalParameterElement) {
|
||||
return FieldFormalParameterMember(
|
||||
_typeProvider, p, augmentationSubstitution, _substitution);
|
||||
p, augmentationSubstitution, _substitution);
|
||||
}
|
||||
if (p is SuperFormalParameterElement) {
|
||||
return SuperFormalParameterMember(
|
||||
_typeProvider, p, augmentationSubstitution, _substitution);
|
||||
p, augmentationSubstitution, _substitution);
|
||||
}
|
||||
return ParameterMember(
|
||||
_typeProvider, p, augmentationSubstitution, _substitution);
|
||||
return ParameterMember(p, augmentationSubstitution, _substitution);
|
||||
}).toList();
|
||||
}
|
||||
|
||||
|
@ -262,13 +256,11 @@ abstract class ExecutableMember extends Member implements ExecutableElement {
|
|||
ExecutableElement element,
|
||||
MapSubstitution substitution,
|
||||
) {
|
||||
TypeProviderImpl? typeProvider;
|
||||
var augmentationSubstitution = Substitution.empty;
|
||||
var combined = substitution;
|
||||
if (element is ExecutableMember) {
|
||||
ExecutableMember member = element;
|
||||
element = member.declaration;
|
||||
typeProvider = member._typeProvider;
|
||||
|
||||
augmentationSubstitution = member.augmentationSubstitution;
|
||||
|
||||
|
@ -278,8 +270,6 @@ abstract class ExecutableMember extends Member implements ExecutableElement {
|
|||
}
|
||||
map.addAll(substitution.map);
|
||||
combined = Substitution.fromMap(map);
|
||||
} else {
|
||||
typeProvider = element.library.typeProvider as TypeProviderImpl;
|
||||
}
|
||||
|
||||
if (augmentationSubstitution.map.isEmpty && combined.map.isEmpty) {
|
||||
|
@ -288,17 +278,15 @@ abstract class ExecutableMember extends Member implements ExecutableElement {
|
|||
|
||||
if (element is ConstructorElement) {
|
||||
return ConstructorMember(
|
||||
typeProvider: typeProvider,
|
||||
declaration: element,
|
||||
augmentationSubstitution: augmentationSubstitution,
|
||||
substitution: combined,
|
||||
);
|
||||
} else if (element is MethodElement) {
|
||||
return MethodMember(
|
||||
typeProvider, element, augmentationSubstitution, combined);
|
||||
return MethodMember(element, augmentationSubstitution, combined);
|
||||
} else if (element is PropertyAccessorElement) {
|
||||
return PropertyAccessorMember(
|
||||
typeProvider, element, augmentationSubstitution, combined);
|
||||
element, augmentationSubstitution, combined);
|
||||
} else {
|
||||
throw UnimplementedError('(${element.runtimeType}) $element');
|
||||
}
|
||||
|
@ -312,20 +300,18 @@ abstract class ExecutableMember extends Member implements ExecutableElement {
|
|||
return element;
|
||||
}
|
||||
|
||||
var typeProvider = element.library.typeProvider as TypeProviderImpl;
|
||||
if (element is ConstructorElement) {
|
||||
return ConstructorMember(
|
||||
typeProvider: typeProvider,
|
||||
declaration: element,
|
||||
augmentationSubstitution: augmentationSubstitution,
|
||||
substitution: Substitution.empty,
|
||||
);
|
||||
} else if (element is MethodElement) {
|
||||
return MethodMember(
|
||||
typeProvider, element, augmentationSubstitution, Substitution.empty);
|
||||
element, augmentationSubstitution, Substitution.empty);
|
||||
} else if (element is PropertyAccessorElement) {
|
||||
return PropertyAccessorMember(
|
||||
typeProvider, element, augmentationSubstitution, Substitution.empty);
|
||||
element, augmentationSubstitution, Substitution.empty);
|
||||
} else {
|
||||
throw UnimplementedError('(${element.runtimeType}) $element');
|
||||
}
|
||||
|
@ -337,7 +323,6 @@ abstract class ExecutableMember extends Member implements ExecutableElement {
|
|||
class FieldFormalParameterMember extends ParameterMember
|
||||
implements FieldFormalParameterElement {
|
||||
factory FieldFormalParameterMember(
|
||||
TypeProviderImpl? typeProvider,
|
||||
FieldFormalParameterElement declaration,
|
||||
MapSubstitution augmentationSubstitution,
|
||||
MapSubstitution substitution,
|
||||
|
@ -347,7 +332,6 @@ class FieldFormalParameterMember extends ParameterMember
|
|||
substitution,
|
||||
);
|
||||
return FieldFormalParameterMember._(
|
||||
typeProvider,
|
||||
declaration,
|
||||
augmentationSubstitution,
|
||||
freshTypeParameters.substitution,
|
||||
|
@ -356,7 +340,6 @@ class FieldFormalParameterMember extends ParameterMember
|
|||
}
|
||||
|
||||
FieldFormalParameterMember._(
|
||||
super.typeProvider,
|
||||
FieldFormalParameterElement super.declaration,
|
||||
super.augmentationSubstitution,
|
||||
super.substitution,
|
||||
|
@ -370,8 +353,7 @@ class FieldFormalParameterMember extends ParameterMember
|
|||
return null;
|
||||
}
|
||||
|
||||
return FieldMember(
|
||||
_typeProvider, field, augmentationSubstitution, _substitution);
|
||||
return FieldMember(field, augmentationSubstitution, _substitution);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -391,7 +373,6 @@ class FieldMember extends VariableMember implements FieldElement {
|
|||
/// Initialize a newly created element to represent a field, based on the
|
||||
/// [declaration], with applied [substitution].
|
||||
FieldMember(
|
||||
super.typeProvider,
|
||||
FieldElement super.declaration,
|
||||
super.augmentationSubstitution,
|
||||
super.substitution,
|
||||
|
@ -423,7 +404,7 @@ class FieldMember extends VariableMember implements FieldElement {
|
|||
return null;
|
||||
}
|
||||
return PropertyAccessorMember(
|
||||
_typeProvider, baseGetter, augmentationSubstitution, _substitution);
|
||||
baseGetter, augmentationSubstitution, _substitution);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -460,7 +441,7 @@ class FieldMember extends VariableMember implements FieldElement {
|
|||
return null;
|
||||
}
|
||||
return PropertyAccessorMember(
|
||||
_typeProvider, baseSetter, augmentationSubstitution, _substitution);
|
||||
baseSetter, augmentationSubstitution, _substitution);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -479,7 +460,6 @@ class FieldMember extends VariableMember implements FieldElement {
|
|||
return field;
|
||||
}
|
||||
return FieldMember(
|
||||
field.library.typeProvider as TypeProviderImpl,
|
||||
field,
|
||||
field is FieldMember
|
||||
? field.augmentationSubstitution
|
||||
|
@ -495,9 +475,7 @@ class FieldMember extends VariableMember implements FieldElement {
|
|||
if (substitution.map.isEmpty) {
|
||||
return element;
|
||||
}
|
||||
var typeProvider = element.library.typeProvider as TypeProviderImpl;
|
||||
return FieldMember(
|
||||
typeProvider,
|
||||
element,
|
||||
element is FieldMember
|
||||
? element.augmentationSubstitution
|
||||
|
@ -513,16 +491,13 @@ class FieldMember extends VariableMember implements FieldElement {
|
|||
if (augmentationSubstitution.map.isEmpty) {
|
||||
return element;
|
||||
}
|
||||
var typeProvider = element.library.typeProvider as TypeProviderImpl;
|
||||
return FieldMember(
|
||||
typeProvider, element, augmentationSubstitution, Substitution.empty);
|
||||
return FieldMember(element, augmentationSubstitution, Substitution.empty);
|
||||
}
|
||||
}
|
||||
|
||||
class FunctionMember extends ExecutableMember implements FunctionElement {
|
||||
FunctionMember(TypeProviderImpl? typeProvider, FunctionElement declaration)
|
||||
FunctionMember(FunctionElement declaration)
|
||||
: super(
|
||||
typeProvider,
|
||||
declaration,
|
||||
Substitution.empty,
|
||||
Substitution.empty,
|
||||
|
@ -566,9 +541,6 @@ class FunctionMember extends ExecutableMember implements FunctionElement {
|
|||
/// An element defined in a parameterized type where the values of the type
|
||||
/// parameters are known.
|
||||
abstract class Member implements Element {
|
||||
/// A type provider (might be legacy, might be null-safe).
|
||||
final TypeProviderImpl? _typeProvider;
|
||||
|
||||
/// The element on which the parameterized element was created.
|
||||
final Element _declaration;
|
||||
|
||||
|
@ -579,8 +551,7 @@ abstract class Member implements Element {
|
|||
|
||||
/// Initialize a newly created element to represent a member, based on the
|
||||
/// [declaration], and applied [_substitution].
|
||||
Member(this._typeProvider, this._declaration, this.augmentationSubstitution,
|
||||
this._substitution) {
|
||||
Member(this._declaration, this.augmentationSubstitution, this._substitution) {
|
||||
if (_declaration is Member) {
|
||||
throw StateError('Members must be created from a declaration, but is '
|
||||
'(${_declaration.runtimeType}) "$_declaration".');
|
||||
|
@ -782,7 +753,6 @@ abstract class Member implements Element {
|
|||
/// type parameters are known.
|
||||
class MethodMember extends ExecutableMember implements MethodElement {
|
||||
factory MethodMember(
|
||||
TypeProviderImpl? typeProvider,
|
||||
MethodElement declaration,
|
||||
MapSubstitution augmentationSubstitution,
|
||||
MapSubstitution substitution,
|
||||
|
@ -792,7 +762,6 @@ class MethodMember extends ExecutableMember implements MethodElement {
|
|||
substitution,
|
||||
);
|
||||
return MethodMember._(
|
||||
typeProvider,
|
||||
declaration,
|
||||
augmentationSubstitution,
|
||||
freshTypeParameters.substitution,
|
||||
|
@ -801,7 +770,6 @@ class MethodMember extends ExecutableMember implements MethodElement {
|
|||
}
|
||||
|
||||
MethodMember._(
|
||||
super.typeProvider,
|
||||
MethodElement super.declaration,
|
||||
super.augmentationSubstitution,
|
||||
super.substitution,
|
||||
|
@ -845,9 +813,7 @@ class MethodMember extends ExecutableMember implements MethodElement {
|
|||
return method;
|
||||
}
|
||||
|
||||
var typeProvider = method.library.typeProvider as TypeProviderImpl;
|
||||
return MethodMember(
|
||||
typeProvider,
|
||||
method,
|
||||
method is MethodMember
|
||||
? method.augmentationSubstitution
|
||||
|
@ -863,9 +829,7 @@ class MethodMember extends ExecutableMember implements MethodElement {
|
|||
if (substitution.map.isEmpty) {
|
||||
return element;
|
||||
}
|
||||
var typeProvider = element.library.typeProvider as TypeProviderImpl;
|
||||
return MethodMember(
|
||||
typeProvider,
|
||||
element,
|
||||
element is MethodMember
|
||||
? element.augmentationSubstitution
|
||||
|
@ -884,7 +848,6 @@ class ParameterMember extends VariableMember
|
|||
final List<TypeParameterElement> typeParameters;
|
||||
|
||||
factory ParameterMember(
|
||||
TypeProviderImpl? typeProvider,
|
||||
ParameterElement declaration,
|
||||
MapSubstitution augmentationSubstitution,
|
||||
MapSubstitution substitution,
|
||||
|
@ -894,7 +857,6 @@ class ParameterMember extends VariableMember
|
|||
substitution,
|
||||
);
|
||||
return ParameterMember._(
|
||||
typeProvider,
|
||||
declaration,
|
||||
augmentationSubstitution,
|
||||
freshTypeParameters.substitution,
|
||||
|
@ -905,7 +867,6 @@ class ParameterMember extends VariableMember
|
|||
/// Initialize a newly created element to represent a parameter, based on the
|
||||
/// [declaration], with applied [substitution].
|
||||
ParameterMember._(
|
||||
super.typeProvider,
|
||||
ParameterElement super.declaration,
|
||||
super.augmentationSubstitution,
|
||||
super.substitution,
|
||||
|
@ -968,12 +929,10 @@ class ParameterMember extends VariableMember
|
|||
|
||||
static ParameterElement from(
|
||||
ParameterElement element, MapSubstitution substitution) {
|
||||
TypeProviderImpl? typeProvider;
|
||||
var combined = substitution;
|
||||
if (element is ParameterMember) {
|
||||
var member = element;
|
||||
element = member.declaration;
|
||||
typeProvider = member._typeProvider;
|
||||
|
||||
var map = <TypeParameterElement, DartType>{};
|
||||
for (var entry in member._substitution.map.entries) {
|
||||
|
@ -988,7 +947,6 @@ class ParameterMember extends VariableMember
|
|||
}
|
||||
|
||||
return ParameterMember(
|
||||
typeProvider,
|
||||
element,
|
||||
element is ParameterMember
|
||||
? element.augmentationSubstitution
|
||||
|
@ -1003,7 +961,6 @@ class ParameterMember extends VariableMember
|
|||
class PropertyAccessorMember extends ExecutableMember
|
||||
implements PropertyAccessorElement {
|
||||
factory PropertyAccessorMember(
|
||||
TypeProviderImpl? typeProvider,
|
||||
PropertyAccessorElement declaration,
|
||||
MapSubstitution augmentationSubstitution,
|
||||
MapSubstitution substitution,
|
||||
|
@ -1013,7 +970,6 @@ class PropertyAccessorMember extends ExecutableMember
|
|||
substitution,
|
||||
);
|
||||
return PropertyAccessorMember._(
|
||||
typeProvider,
|
||||
declaration,
|
||||
augmentationSubstitution,
|
||||
freshTypeParameters.substitution,
|
||||
|
@ -1022,7 +978,6 @@ class PropertyAccessorMember extends ExecutableMember
|
|||
}
|
||||
|
||||
PropertyAccessorMember._(
|
||||
super.typeProvider,
|
||||
PropertyAccessorElement super.declaration,
|
||||
super.augmentationSubstitution,
|
||||
super.substitution,
|
||||
|
@ -1047,7 +1002,7 @@ class PropertyAccessorMember extends ExecutableMember
|
|||
return null;
|
||||
}
|
||||
return PropertyAccessorMember(
|
||||
_typeProvider, baseGetter, augmentationSubstitution, _substitution);
|
||||
baseGetter, augmentationSubstitution, _substitution);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -1057,7 +1012,7 @@ class PropertyAccessorMember extends ExecutableMember
|
|||
return null;
|
||||
}
|
||||
return PropertyAccessorMember(
|
||||
_typeProvider, baseSetter, augmentationSubstitution, _substitution);
|
||||
baseSetter, augmentationSubstitution, _substitution);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -1084,11 +1039,10 @@ class PropertyAccessorMember extends ExecutableMember
|
|||
// TODO(scheglov): revisit
|
||||
PropertyInducingElement variable = declaration.variable;
|
||||
if (variable is FieldElement) {
|
||||
return FieldMember(
|
||||
_typeProvider, variable, augmentationSubstitution, _substitution);
|
||||
return FieldMember(variable, augmentationSubstitution, _substitution);
|
||||
} else if (variable is TopLevelVariableElement) {
|
||||
return TopLevelVariableMember(
|
||||
_typeProvider, variable, augmentationSubstitution, _substitution);
|
||||
variable, augmentationSubstitution, _substitution);
|
||||
}
|
||||
return variable;
|
||||
}
|
||||
|
@ -1116,9 +1070,7 @@ class PropertyAccessorMember extends ExecutableMember
|
|||
return accessor;
|
||||
}
|
||||
|
||||
var typeProvider = accessor.library.typeProvider as TypeProviderImpl;
|
||||
return PropertyAccessorMember(
|
||||
typeProvider,
|
||||
accessor,
|
||||
accessor is PropertyAccessorMember
|
||||
? accessor.augmentationSubstitution
|
||||
|
@ -1131,7 +1083,6 @@ class PropertyAccessorMember extends ExecutableMember
|
|||
class SuperFormalParameterMember extends ParameterMember
|
||||
implements SuperFormalParameterElement {
|
||||
factory SuperFormalParameterMember(
|
||||
TypeProviderImpl? typeProvider,
|
||||
SuperFormalParameterElement declaration,
|
||||
MapSubstitution augmentationSubstitution,
|
||||
MapSubstitution substitution,
|
||||
|
@ -1141,7 +1092,6 @@ class SuperFormalParameterMember extends ParameterMember
|
|||
substitution,
|
||||
);
|
||||
return SuperFormalParameterMember._(
|
||||
typeProvider,
|
||||
declaration,
|
||||
augmentationSubstitution,
|
||||
freshTypeParameters.substitution,
|
||||
|
@ -1150,7 +1100,6 @@ class SuperFormalParameterMember extends ParameterMember
|
|||
}
|
||||
|
||||
SuperFormalParameterMember._(
|
||||
super.typeProvider,
|
||||
SuperFormalParameterElement super.declaration,
|
||||
super.augmentationSubstitution,
|
||||
super.substitution,
|
||||
|
@ -1182,7 +1131,6 @@ class SuperFormalParameterMember extends ParameterMember
|
|||
class TopLevelVariableMember extends VariableMember
|
||||
implements TopLevelVariableElement {
|
||||
TopLevelVariableMember(
|
||||
super.typeProvider,
|
||||
super.declaration,
|
||||
super.augmentationSubstitution,
|
||||
super.substitution,
|
||||
|
@ -1212,7 +1160,7 @@ class TopLevelVariableMember extends VariableMember
|
|||
return null;
|
||||
}
|
||||
return PropertyAccessorMember(
|
||||
_typeProvider, baseGetter, augmentationSubstitution, _substitution);
|
||||
baseGetter, augmentationSubstitution, _substitution);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -1237,7 +1185,7 @@ class TopLevelVariableMember extends VariableMember
|
|||
return null;
|
||||
}
|
||||
return PropertyAccessorMember(
|
||||
_typeProvider, baseSetter, augmentationSubstitution, _substitution);
|
||||
baseSetter, augmentationSubstitution, _substitution);
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -1257,7 +1205,6 @@ abstract class VariableMember extends Member implements VariableElement {
|
|||
/// Initialize a newly created element to represent a variable, based on the
|
||||
/// [declaration], with applied [substitution].
|
||||
VariableMember(
|
||||
super.typeProvider,
|
||||
VariableElement super.declaration,
|
||||
super.augmentationSubstitution,
|
||||
super.substitution,
|
||||
|
|
|
@ -430,8 +430,6 @@ class TypesBuilder {
|
|||
}
|
||||
}
|
||||
|
||||
final typeProvider = element.library.typeProvider;
|
||||
|
||||
if (element is InterfaceElementImpl &&
|
||||
augmented is AugmentedInterfaceElementImpl &&
|
||||
declaration is InterfaceElementImpl) {
|
||||
|
@ -454,7 +452,6 @@ class TypesBuilder {
|
|||
return element;
|
||||
}
|
||||
return ConstructorMember(
|
||||
typeProvider: typeProvider,
|
||||
declaration: element,
|
||||
augmentationSubstitution: toDeclaration,
|
||||
substitution: Substitution.empty,
|
||||
|
@ -475,8 +472,7 @@ class TypesBuilder {
|
|||
if (toDeclaration.map.isEmpty) {
|
||||
return element;
|
||||
}
|
||||
return FieldMember(
|
||||
typeProvider, element, toDeclaration, Substitution.empty);
|
||||
return FieldMember(element, toDeclaration, Substitution.empty);
|
||||
}),
|
||||
];
|
||||
|
||||
|
@ -487,7 +483,7 @@ class TypesBuilder {
|
|||
return element;
|
||||
}
|
||||
return PropertyAccessorMember(
|
||||
typeProvider, element, toDeclaration, Substitution.empty);
|
||||
element, toDeclaration, Substitution.empty);
|
||||
}),
|
||||
];
|
||||
|
||||
|
@ -497,8 +493,7 @@ class TypesBuilder {
|
|||
if (toDeclaration.map.isEmpty) {
|
||||
return element;
|
||||
}
|
||||
return MethodMember(
|
||||
typeProvider, element, toDeclaration, Substitution.empty);
|
||||
return MethodMember(element, toDeclaration, Substitution.empty);
|
||||
}),
|
||||
];
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue