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(