analyzer: Migrate call sites of Substitution.fromPairs to .fromPairs2
Also ListOfTypeParameterElementExtension.instantiateNone call sites
are migrated.
Change-Id: Ie6531360e4e20650eb98334b10b2aecf5ca60bd1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/410861
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/type.dart b/pkg/analyzer/lib/src/dart/element/type.dart
index cc415eb..9b5471a 100644
--- a/pkg/analyzer/lib/src/dart/element/type.dart
+++ b/pkg/analyzer/lib/src/dart/element/type.dart
@@ -296,15 +296,15 @@
@override
FunctionTypeImpl instantiate(List<DartType> argumentTypes) {
- if (argumentTypes.length != typeFormals.length) {
+ if (argumentTypes.length != typeParameters.length) {
throw ArgumentError("argumentTypes.length (${argumentTypes.length}) != "
- "typeFormals.length (${typeFormals.length})");
+ "typeFormals.length (${typeParameters.length})");
}
if (argumentTypes.isEmpty) {
return this;
}
- var substitution = Substitution.fromPairs(typeFormals, argumentTypes);
+ var substitution = Substitution.fromPairs2(typeParameters, argumentTypes);
return FunctionTypeImpl(
returnType: substitution.substituteType(returnType),
diff --git a/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart b/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
index 44592796..ed47efd 100644
--- a/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart
@@ -169,7 +169,7 @@
DynamicTypeImpl.instance,
);
substitution =
- Substitution.fromPairs(rawType.typeFormals, typeArgumentTypes);
+ Substitution.fromPairs2(rawType.typeParameters, typeArgumentTypes);
} else {
typeArgumentTypes = const <TypeImpl>[];
}
@@ -188,8 +188,8 @@
.map((typeArgument) => typeArgument.typeOrThrow)
.toList(growable: true);
if (rawType != null && _needsTypeArgumentBoundsCheck) {
- var typeParameters = rawType.typeFormals;
- var substitution = Substitution.fromPairs(
+ var typeParameters = rawType.typeParameters;
+ var substitution = Substitution.fromPairs2(
typeParameters,
typeArgumentTypes,
);
@@ -203,7 +203,7 @@
resolver.errorReporter.atNode(
typeArgumentList.arguments[i],
CompileTimeErrorCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS,
- arguments: [typeArgument, typeParameter.name, bound],
+ arguments: [typeArgument, typeParameter.name3!, bound],
);
}
}
@@ -213,7 +213,7 @@
if (rawType != null) {
substitution =
- Substitution.fromPairs(rawType.typeFormals, typeArgumentTypes);
+ Substitution.fromPairs2(rawType.typeParameters, typeArgumentTypes);
}
} else if (rawType == null || rawType.typeFormals.isEmpty) {
typeArgumentTypes = const <TypeImpl>[];
@@ -240,8 +240,8 @@
nodeForTesting: node,
);
- substitution = Substitution.fromPairs(
- rawType.typeFormals, inferrer.choosePreliminaryTypes());
+ substitution = Substitution.fromPairs2(
+ rawType.typeParameters, inferrer.choosePreliminaryTypes());
}
List<_IdenticalArgumentInfo?>? identicalArgumentInfo =
@@ -263,8 +263,8 @@
rawType, parameterMap, deferredFunctionLiterals))
.planReconciliationStages()) {
if (inferrer != null && !isFirstStage) {
- substitution = Substitution.fromPairs(
- rawType!.typeFormals, inferrer.choosePreliminaryTypes());
+ substitution = Substitution.fromPairs2(
+ rawType!.typeParameters, inferrer.choosePreliminaryTypes());
}
_resolveDeferredFunctionLiterals(
deferredFunctionLiterals: stage,
diff --git a/pkg/analyzer/lib/src/summary2/augmentation.dart b/pkg/analyzer/lib/src/summary2/augmentation.dart
index bf3ff49..4deaa97 100644
--- a/pkg/analyzer/lib/src/summary2/augmentation.dart
+++ b/pkg/analyzer/lib/src/summary2/augmentation.dart
@@ -305,17 +305,23 @@
void _updatedAugmented(InstanceElementImpl augmentation) {
var element = this.element;
var firstFragment = this.firstFragment;
- var firstTypeParameters = firstFragment.typeParameters;
+ var firstTypeParameters = element.typeParameters2;
MapSubstitution toFirstFragment;
- var augmentationTypeParameters = augmentation.typeParameters;
+ var augmentationTypeParameters = [
+ for (var tp in augmentation.typeParameters)
+ TypeParameterElementImpl2(
+ firstFragment: tp,
+ name3: tp.name.nullIfEmpty,
+ ),
+ ];
if (augmentationTypeParameters.length == firstTypeParameters.length) {
- toFirstFragment = Substitution.fromPairs(
+ toFirstFragment = Substitution.fromPairs2(
augmentationTypeParameters,
firstTypeParameters.instantiateNone(),
);
} else {
- toFirstFragment = Substitution.fromPairs(
+ toFirstFragment = Substitution.fromPairs2(
augmentationTypeParameters,
List.filled(
augmentationTypeParameters.length,
diff --git a/pkg/analyzer/lib/src/summary2/bundle_reader.dart b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
index 77e9371..9c67901 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
@@ -2089,7 +2089,8 @@
var enclosing = element.enclosingElement3 as InstanceElement;
var declaration = enclosing.augmented.firstFragment;
- var declarationTypeParameters = declaration.typeParameters;
+ var declarationTypeParameters =
+ declaration.typeParameters.map((tp) => tp.asElement2).toList();
var augmentationSubstitution = Substitution.empty;
if (enclosing != declaration) {
@@ -2113,7 +2114,7 @@
var substitution = Substitution.empty;
var typeArguments = _readTypeList();
if (typeArguments.isNotEmpty) {
- substitution = Substitution.fromPairs(
+ substitution = Substitution.fromPairs2(
declarationTypeParameters,
typeArguments,
);
diff --git a/pkg/analyzer/lib/src/summary2/types_builder.dart b/pkg/analyzer/lib/src/summary2/types_builder.dart
index 6a7c26b..8b69e9f 100644
--- a/pkg/analyzer/lib/src/summary2/types_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/types_builder.dart
@@ -388,19 +388,21 @@
}
var firstFragment = element.firstFragment;
- var firstTypeParameters = firstFragment.typeParameters;
+ var firstTypeParameters =
+ firstFragment.typeParameters.map((tp) => tp.asElement2).toList();
- var fragmentTypeParameters = fragment.typeParameters;
+ var fragmentTypeParameters =
+ fragment.typeParameters.map((tp) => tp.asElement2).toList();
if (fragmentTypeParameters.length != firstTypeParameters.length) {
return;
}
- var toFirst = Substitution.fromPairs(
+ var toFirst = Substitution.fromPairs2(
fragmentTypeParameters,
firstTypeParameters.instantiateNone(),
);
- var fromFirst = Substitution.fromPairs(
+ var fromFirst = Substitution.fromPairs2(
firstTypeParameters,
fragmentTypeParameters.instantiateNone(),
);
diff --git a/pkg/analyzer/lib/src/utilities/extensions/element.dart b/pkg/analyzer/lib/src/utilities/extensions/element.dart
index 78ec5bf..3016374 100644
--- a/pkg/analyzer/lib/src/utilities/extensions/element.dart
+++ b/pkg/analyzer/lib/src/utilities/extensions/element.dart
@@ -607,7 +607,7 @@
}
}
-extension ListOfTypeParameterElementExtension on List<TypeParameterElement> {
+extension ListOfTypeParameterElement2Extension on List<TypeParameterElement2> {
List<TypeParameterType> instantiateNone() {
return map((e) {
return e.instantiate(