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(