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:
Konstantin Shcheglov 2024-02-05 22:09:41 +00:00 committed by Commit Queue
parent 624a7b742c
commit 83aca6c5c2
2 changed files with 23 additions and 81 deletions

View file

@ -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,

View file

@ -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);
}),
];
}