Skip to content

Commit 388f22a

Browse files
srawlinsCommit Queue
authored andcommitted
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 <[email protected]> Commit-Queue: Samuel Rawlins <[email protected]>
1 parent 1ebf3df commit 388f22a

File tree

6 files changed

+32
-23
lines changed

6 files changed

+32
-23
lines changed

pkg/analyzer/lib/src/dart/element/type.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -296,15 +296,15 @@ class FunctionTypeImpl extends TypeImpl
296296

297297
@override
298298
FunctionTypeImpl instantiate(List<DartType> argumentTypes) {
299-
if (argumentTypes.length != typeFormals.length) {
299+
if (argumentTypes.length != typeParameters.length) {
300300
throw ArgumentError("argumentTypes.length (${argumentTypes.length}) != "
301-
"typeFormals.length (${typeFormals.length})");
301+
"typeFormals.length (${typeParameters.length})");
302302
}
303303
if (argumentTypes.isEmpty) {
304304
return this;
305305
}
306306

307-
var substitution = Substitution.fromPairs(typeFormals, argumentTypes);
307+
var substitution = Substitution.fromPairs2(typeParameters, argumentTypes);
308308

309309
return FunctionTypeImpl(
310310
returnType: substitution.substituteType(returnType),

pkg/analyzer/lib/src/dart/resolver/invocation_inferrer.dart

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ abstract class FullInvocationInferrer<Node extends AstNodeImpl>
169169
DynamicTypeImpl.instance,
170170
);
171171
substitution =
172-
Substitution.fromPairs(rawType.typeFormals, typeArgumentTypes);
172+
Substitution.fromPairs2(rawType.typeParameters, typeArgumentTypes);
173173
} else {
174174
typeArgumentTypes = const <TypeImpl>[];
175175
}
@@ -188,8 +188,8 @@ abstract class FullInvocationInferrer<Node extends AstNodeImpl>
188188
.map((typeArgument) => typeArgument.typeOrThrow)
189189
.toList(growable: true);
190190
if (rawType != null && _needsTypeArgumentBoundsCheck) {
191-
var typeParameters = rawType.typeFormals;
192-
var substitution = Substitution.fromPairs(
191+
var typeParameters = rawType.typeParameters;
192+
var substitution = Substitution.fromPairs2(
193193
typeParameters,
194194
typeArgumentTypes,
195195
);
@@ -203,7 +203,7 @@ abstract class FullInvocationInferrer<Node extends AstNodeImpl>
203203
resolver.errorReporter.atNode(
204204
typeArgumentList.arguments[i],
205205
CompileTimeErrorCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS,
206-
arguments: [typeArgument, typeParameter.name, bound],
206+
arguments: [typeArgument, typeParameter.name3!, bound],
207207
);
208208
}
209209
}
@@ -213,7 +213,7 @@ abstract class FullInvocationInferrer<Node extends AstNodeImpl>
213213

214214
if (rawType != null) {
215215
substitution =
216-
Substitution.fromPairs(rawType.typeFormals, typeArgumentTypes);
216+
Substitution.fromPairs2(rawType.typeParameters, typeArgumentTypes);
217217
}
218218
} else if (rawType == null || rawType.typeFormals.isEmpty) {
219219
typeArgumentTypes = const <TypeImpl>[];
@@ -240,8 +240,8 @@ abstract class FullInvocationInferrer<Node extends AstNodeImpl>
240240
nodeForTesting: node,
241241
);
242242

243-
substitution = Substitution.fromPairs(
244-
rawType.typeFormals, inferrer.choosePreliminaryTypes());
243+
substitution = Substitution.fromPairs2(
244+
rawType.typeParameters, inferrer.choosePreliminaryTypes());
245245
}
246246

247247
List<_IdenticalArgumentInfo?>? identicalArgumentInfo =
@@ -263,8 +263,8 @@ abstract class FullInvocationInferrer<Node extends AstNodeImpl>
263263
rawType, parameterMap, deferredFunctionLiterals))
264264
.planReconciliationStages()) {
265265
if (inferrer != null && !isFirstStage) {
266-
substitution = Substitution.fromPairs(
267-
rawType!.typeFormals, inferrer.choosePreliminaryTypes());
266+
substitution = Substitution.fromPairs2(
267+
rawType!.typeParameters, inferrer.choosePreliminaryTypes());
268268
}
269269
_resolveDeferredFunctionLiterals(
270270
deferredFunctionLiterals: stage,

pkg/analyzer/lib/src/summary2/augmentation.dart

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -305,17 +305,23 @@ abstract class InstanceElementBuilder<E extends InstanceElementImpl2,
305305
void _updatedAugmented(InstanceElementImpl augmentation) {
306306
var element = this.element;
307307
var firstFragment = this.firstFragment;
308-
var firstTypeParameters = firstFragment.typeParameters;
308+
var firstTypeParameters = element.typeParameters2;
309309

310310
MapSubstitution toFirstFragment;
311-
var augmentationTypeParameters = augmentation.typeParameters;
311+
var augmentationTypeParameters = [
312+
for (var tp in augmentation.typeParameters)
313+
TypeParameterElementImpl2(
314+
firstFragment: tp,
315+
name3: tp.name.nullIfEmpty,
316+
),
317+
];
312318
if (augmentationTypeParameters.length == firstTypeParameters.length) {
313-
toFirstFragment = Substitution.fromPairs(
319+
toFirstFragment = Substitution.fromPairs2(
314320
augmentationTypeParameters,
315321
firstTypeParameters.instantiateNone(),
316322
);
317323
} else {
318-
toFirstFragment = Substitution.fromPairs(
324+
toFirstFragment = Substitution.fromPairs2(
319325
augmentationTypeParameters,
320326
List.filled(
321327
augmentationTypeParameters.length,

pkg/analyzer/lib/src/summary2/bundle_reader.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2089,7 +2089,8 @@ class ResolutionReader {
20892089
var enclosing = element.enclosingElement3 as InstanceElement;
20902090

20912091
var declaration = enclosing.augmented.firstFragment;
2092-
var declarationTypeParameters = declaration.typeParameters;
2092+
var declarationTypeParameters =
2093+
declaration.typeParameters.map((tp) => tp.asElement2).toList();
20932094

20942095
var augmentationSubstitution = Substitution.empty;
20952096
if (enclosing != declaration) {
@@ -2113,7 +2114,7 @@ class ResolutionReader {
21132114
var substitution = Substitution.empty;
21142115
var typeArguments = _readTypeList();
21152116
if (typeArguments.isNotEmpty) {
2116-
substitution = Substitution.fromPairs(
2117+
substitution = Substitution.fromPairs2(
21172118
declarationTypeParameters,
21182119
typeArguments,
21192120
);

pkg/analyzer/lib/src/summary2/types_builder.dart

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -388,19 +388,21 @@ class TypesBuilder {
388388
}
389389

390390
var firstFragment = element.firstFragment;
391-
var firstTypeParameters = firstFragment.typeParameters;
391+
var firstTypeParameters =
392+
firstFragment.typeParameters.map((tp) => tp.asElement2).toList();
392393

393-
var fragmentTypeParameters = fragment.typeParameters;
394+
var fragmentTypeParameters =
395+
fragment.typeParameters.map((tp) => tp.asElement2).toList();
394396
if (fragmentTypeParameters.length != firstTypeParameters.length) {
395397
return;
396398
}
397399

398-
var toFirst = Substitution.fromPairs(
400+
var toFirst = Substitution.fromPairs2(
399401
fragmentTypeParameters,
400402
firstTypeParameters.instantiateNone(),
401403
);
402404

403-
var fromFirst = Substitution.fromPairs(
405+
var fromFirst = Substitution.fromPairs2(
404406
firstTypeParameters,
405407
fragmentTypeParameters.instantiateNone(),
406408
);

pkg/analyzer/lib/src/utilities/extensions/element.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,7 @@ extension LibraryImportElementExtension on LibraryImportElement {
607607
}
608608
}
609609

610-
extension ListOfTypeParameterElementExtension on List<TypeParameterElement> {
610+
extension ListOfTypeParameterElement2Extension on List<TypeParameterElement2> {
611611
List<TypeParameterType> instantiateNone() {
612612
return map((e) {
613613
return e.instantiate(

0 commit comments

Comments
 (0)