Skip to content

Commit 2710e34

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Migrate ElementsTypesMixin, part#3
Change-Id: I6c27e6c0a374bb378b3527e0970b87b0e4ddba83 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/409620 Reviewed-by: Brian Wilkerson <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 5719dea commit 2710e34

21 files changed

+711
-742
lines changed

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -586,6 +586,12 @@ extension ParameterElementExtension on ParameterElement {
586586
}
587587
}
588588

589+
extension ParameterElementImplExtension on ParameterElementImpl {
590+
FormalParameterElementImpl get asElement2 {
591+
return element;
592+
}
593+
}
594+
589595
extension PrefixElement2Extension on PrefixElement2 {
590596
PrefixElement get asElement {
591597
return (this as PrefixElementImpl2).asElement;

pkg/analyzer/test/generated/elements_types_mixin.dart

Lines changed: 33 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,8 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// ignore_for_file: analyzer_use_new_elements
6-
75
import 'package:_fe_analyzer_shared/src/type_inference/type_analyzer_operations.dart';
86
import 'package:analyzer/dart/analysis/features.dart';
9-
import 'package:analyzer/dart/element/element.dart';
10-
import 'package:analyzer/dart/element/element2.dart';
117
import 'package:analyzer/dart/element/nullability_suffix.dart';
128
import 'package:analyzer/dart/element/type.dart';
139
import 'package:analyzer/source/line_info.dart';
@@ -262,51 +258,39 @@ mixin ElementsTypesMixin {
262258

263259
FunctionTypeImpl functionType({
264260
required List<TypeParameterElementImpl2> typeParameters,
265-
required List<ParameterElement> parameters,
261+
required List<FormalParameterElementImpl> formalParameters,
266262
required DartType returnType,
267263
required NullabilitySuffix nullabilitySuffix,
268264
}) {
269-
return FunctionTypeImpl(
270-
typeFormals: typeParameters.map((e) => e.asElement).toList(),
271-
parameters: parameters,
265+
return FunctionTypeImpl.v2(
266+
typeParameters: typeParameters,
267+
formalParameters: formalParameters,
272268
returnType: returnType,
273269
nullabilitySuffix: nullabilitySuffix,
274270
);
275271
}
276272

277273
FunctionTypeImpl functionTypeNone({
278274
List<TypeParameterElementImpl2> typeParameters = const [],
279-
List<ParameterElement> parameters = const [],
275+
List<FormalParameterElementImpl> formalParameters = const [],
280276
required DartType returnType,
281277
}) {
282278
return functionType(
283279
typeParameters: typeParameters,
284-
parameters: parameters,
280+
formalParameters: formalParameters,
285281
returnType: returnType,
286282
nullabilitySuffix: NullabilitySuffix.none,
287283
);
288284
}
289285

290-
FunctionTypeImpl functionTypeNone2({
291-
List<TypeParameterElementImpl2> typeParameters = const [],
292-
List<FormalParameterElement> parameters = const [],
293-
required DartType returnType,
294-
}) {
295-
return functionTypeNone(
296-
parameters: parameters.map((e) => e.asElement).toList(),
297-
typeParameters: typeParameters,
298-
returnType: returnType,
299-
);
300-
}
301-
302286
FunctionTypeImpl functionTypeQuestion({
303287
List<TypeParameterElementImpl2> typeParameters = const [],
304-
List<ParameterElement> parameters = const [],
288+
List<FormalParameterElementImpl> formalParameters = const [],
305289
required DartType returnType,
306290
}) {
307291
return functionType(
308292
typeParameters: typeParameters,
309-
parameters: parameters,
293+
formalParameters: formalParameters,
310294
returnType: returnType,
311295
nullabilitySuffix: NullabilitySuffix.question,
312296
);
@@ -469,11 +453,11 @@ mixin ElementsTypesMixin {
469453
DartType returnType, {
470454
bool isStatic = false,
471455
List<TypeParameterElementImpl2> typeParameters = const [],
472-
List<ParameterElementImpl> parameters = const [],
456+
List<FormalParameterElementImpl> formalParameters = const [],
473457
}) {
474458
return MethodElementImpl(name, 0)
475459
..isStatic = isStatic
476-
..parameters = parameters
460+
..parameters = formalParameters.map((e) => e.asElement).toList()
477461
..returnType = returnType
478462
..typeParameters = typeParameters.map((e) => e.asElement).toList();
479463
}
@@ -501,90 +485,57 @@ mixin ElementsTypesMixin {
501485
return fragment;
502486
}
503487

504-
ParameterElementImpl namedParameter({
488+
FormalParameterElementImpl namedParameter({
505489
required String name,
506490
required TypeImpl type,
507491
bool isCovariant = false,
508492
}) {
509-
var parameter = ParameterElementImpl(
493+
var fragment = ParameterElementImpl(
510494
name: name,
511495
nameOffset: 0,
512496
name2: name,
513497
nameOffset2: 0,
514498
parameterKind: ParameterKind.NAMED,
515499
);
516-
parameter.type = type;
517-
parameter.isExplicitlyCovariant = isCovariant;
518-
return parameter;
500+
fragment.type = type;
501+
fragment.isExplicitlyCovariant = isCovariant;
502+
return fragment.asElement2;
519503
}
520504

521-
FormalParameterElement namedParameter2({
505+
FormalParameterElementImpl namedRequiredParameter({
522506
required String name,
523507
required TypeImpl type,
524508
bool isCovariant = false,
525509
}) {
526-
return namedParameter(name: name, type: type, isCovariant: isCovariant)
527-
.asElement2;
528-
}
529-
530-
ParameterElementImpl namedRequiredParameter({
531-
required String name,
532-
required TypeImpl type,
533-
bool isCovariant = false,
534-
}) {
535-
var parameter = ParameterElementImpl(
510+
var fragment = ParameterElementImpl(
536511
name: name,
537512
nameOffset: 0,
538513
name2: name,
539514
nameOffset2: 0,
540515
parameterKind: ParameterKind.NAMED_REQUIRED,
541516
);
542-
parameter.type = type;
543-
parameter.isExplicitlyCovariant = isCovariant;
544-
return parameter;
545-
}
546-
547-
FormalParameterElement namedRequiredParameter2({
548-
required String name,
549-
required TypeImpl type,
550-
bool isCovariant = false,
551-
}) {
552-
return namedRequiredParameter(
553-
name: name, type: type, isCovariant: isCovariant)
554-
.asElement2;
517+
fragment.type = type;
518+
fragment.isExplicitlyCovariant = isCovariant;
519+
return fragment.asElement2;
555520
}
556521

557-
ParameterElementImpl positionalParameter({
522+
FormalParameterElementImpl positionalParameter({
558523
String? name,
559524
required TypeImpl type,
560525
bool isCovariant = false,
561526
String? defaultValueCode,
562527
}) {
563-
var parameter = ParameterElementImpl(
528+
var fragment = ParameterElementImpl(
564529
name: name ?? '',
565530
nameOffset: 0,
566531
name2: name,
567532
nameOffset2: 0,
568533
parameterKind: ParameterKind.POSITIONAL,
569534
);
570-
parameter.type = type;
571-
parameter.isExplicitlyCovariant = isCovariant;
572-
parameter.defaultValueCode = defaultValueCode;
573-
return parameter;
574-
}
575-
576-
FormalParameterElement positionalParameter2({
577-
String? name,
578-
required TypeImpl type,
579-
bool isCovariant = false,
580-
String? defaultValueCode,
581-
}) {
582-
return positionalParameter(
583-
name: name,
584-
type: type,
585-
isCovariant: isCovariant,
586-
defaultValueCode: defaultValueCode,
587-
).asElement2;
535+
fragment.type = type;
536+
fragment.isExplicitlyCovariant = isCovariant;
537+
fragment.defaultValueCode = defaultValueCode;
538+
return fragment.asElement2;
588539
}
589540

590541
TypeParameterTypeImpl promotedTypeParameterType({
@@ -664,33 +615,24 @@ mixin ElementsTypesMixin {
664615
);
665616
}
666617

667-
ParameterElementImpl requiredParameter({
618+
FormalParameterElementImpl requiredParameter({
668619
String? name,
669620
required TypeImpl type,
670621
bool isCovariant = false,
671622
}) {
672-
var parameter = ParameterElementImpl(
623+
var fragment = ParameterElementImpl(
673624
name: name ?? '',
674625
nameOffset: 0,
675626
name2: name,
676627
nameOffset2: 0,
677628
parameterKind: ParameterKind.REQUIRED,
678629
);
679-
parameter.type = type;
680-
parameter.isExplicitlyCovariant = isCovariant;
681-
return parameter;
682-
}
683-
684-
FormalParameterElement requiredParameter2({
685-
String? name,
686-
required TypeImpl type,
687-
bool isCovariant = false,
688-
}) {
689-
return requiredParameter(name: name, type: type, isCovariant: isCovariant)
690-
.asElement2;
630+
fragment.type = type;
631+
fragment.isExplicitlyCovariant = isCovariant;
632+
return fragment.asElement2;
691633
}
692634

693-
TypeAliasElementImpl2 typeAlias2({
635+
TypeAliasElementImpl2 typeAlias({
694636
required String name,
695637
required List<TypeParameterElementImpl2> typeParameters,
696638
required DartType aliasedType,
@@ -704,7 +646,7 @@ mixin ElementsTypesMixin {
704646
return TypeAliasElementImpl2(Reference.root(), fragment);
705647
}
706648

707-
TypeImpl typeAliasTypeNone2(
649+
TypeImpl typeAliasTypeNone(
708650
TypeAliasElementImpl2 element, {
709651
List<DartType> typeArguments = const [],
710652
}) {

pkg/analyzer/test/src/dart/constant/has_type_parameter_reference_test.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class HasTypeParameterReferenceTest extends AbstractTypeSystemTest {
3434
_checkTrue(
3535
functionTypeNone(
3636
returnType: voidNone,
37-
parameters: [requiredParameter(type: T_none)],
37+
formalParameters: [requiredParameter(type: T_none)],
3838
),
3939
);
4040

pkg/analyzer/test/src/dart/element/display_string_test.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:analyzer/src/dart/element/element.dart';
6+
import 'package:analyzer/src/utilities/extensions/element.dart';
67
import 'package:test/test.dart';
78
import 'package:test_reflective_loader/test_reflective_loader.dart';
89

@@ -66,7 +67,7 @@ class ElementDisplayStringTest extends AbstractTypeSystemTest {
6667
var methodA = method(
6768
'longMethodName',
6869
stringQuestion,
69-
parameters: [
70+
formalParameters: [
7071
requiredParameter(name: 'aaa', type: stringQuestion),
7172
positionalParameter(
7273
name: 'bbb', type: stringQuestion, defaultValueCode: "'a'"),
@@ -95,12 +96,12 @@ String? longMethodName(
9596
var methodA = method(
9697
'longMethodName',
9798
stringQuestion,
98-
parameters: [
99+
formalParameters: [
99100
requiredParameter(name: 'aaa', type: stringQuestion),
100101
positionalParameter(
101102
name: 'bbb',
102103
type: functionTypeNone(
103-
parameters: [
104+
formalParameters: [
104105
requiredParameter(name: 'xxx', type: stringQuestion),
105106
requiredParameter(name: 'yyy', type: stringQuestion),
106107
requiredParameter(name: 'zzz', type: stringQuestion),
@@ -141,7 +142,7 @@ String? longMethodName(
141142
..isSetter = true
142143
..returnType = voidNone
143144
..parameters = [
144-
requiredParameter(name: 'value', type: stringNone),
145+
requiredParameter(name: 'value', type: stringNone).asElement,
145146
];
146147

147148
expect(
@@ -154,7 +155,7 @@ String? longMethodName(
154155
var methodA = method(
155156
'm',
156157
stringQuestion,
157-
parameters: [
158+
formalParameters: [
158159
requiredParameter(name: 'a', type: stringQuestion),
159160
positionalParameter(name: 'b', type: stringQuestion),
160161
],

pkg/analyzer/test/src/dart/element/element_test.dart

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -966,7 +966,7 @@ class FunctionTypeImplTest extends AbstractTypeSystemTest {
966966
void test_getNamedParameterTypes_namedParameters() {
967967
var type = functionTypeNone(
968968
typeParameters: [],
969-
parameters: [
969+
formalParameters: [
970970
requiredParameter(name: 'a', type: intNone),
971971
namedParameter(name: 'b', type: doubleNone),
972972
namedParameter(name: 'c', type: stringNone),
@@ -982,7 +982,7 @@ class FunctionTypeImplTest extends AbstractTypeSystemTest {
982982
void test_getNamedParameterTypes_noNamedParameters() {
983983
var type = functionTypeNone(
984984
typeParameters: [],
985-
parameters: [
985+
formalParameters: [
986986
requiredParameter(type: intNone),
987987
requiredParameter(type: doubleNone),
988988
positionalParameter(type: stringNone),
@@ -996,7 +996,7 @@ class FunctionTypeImplTest extends AbstractTypeSystemTest {
996996
void test_getNamedParameterTypes_noParameters() {
997997
var type = functionTypeNone(
998998
typeParameters: [],
999-
parameters: [],
999+
formalParameters: [],
10001000
returnType: voidNone,
10011001
);
10021002
Map<String, DartType> types = type.namedParameterTypes;
@@ -1006,7 +1006,7 @@ class FunctionTypeImplTest extends AbstractTypeSystemTest {
10061006
void test_getNormalParameterTypes_noNormalParameters() {
10071007
var type = functionTypeNone(
10081008
typeParameters: [],
1009-
parameters: [
1009+
formalParameters: [
10101010
positionalParameter(type: intNone),
10111011
positionalParameter(type: doubleNone),
10121012
],
@@ -1019,7 +1019,7 @@ class FunctionTypeImplTest extends AbstractTypeSystemTest {
10191019
void test_getNormalParameterTypes_noParameters() {
10201020
var type = functionTypeNone(
10211021
typeParameters: [],
1022-
parameters: [],
1022+
formalParameters: [],
10231023
returnType: voidNone,
10241024
);
10251025
List<DartType> types = type.normalParameterTypes;
@@ -1029,7 +1029,7 @@ class FunctionTypeImplTest extends AbstractTypeSystemTest {
10291029
void test_getNormalParameterTypes_normalParameters() {
10301030
var type = functionTypeNone(
10311031
typeParameters: [],
1032-
parameters: [
1032+
formalParameters: [
10331033
requiredParameter(type: intNone),
10341034
requiredParameter(type: doubleNone),
10351035
positionalParameter(type: stringNone),
@@ -1045,7 +1045,7 @@ class FunctionTypeImplTest extends AbstractTypeSystemTest {
10451045
void test_getOptionalParameterTypes_noOptionalParameters() {
10461046
var type = functionTypeNone(
10471047
typeParameters: [],
1048-
parameters: [
1048+
formalParameters: [
10491049
requiredParameter(name: 'a', type: intNone),
10501050
namedParameter(name: 'b', type: doubleNone),
10511051
],
@@ -1058,7 +1058,7 @@ class FunctionTypeImplTest extends AbstractTypeSystemTest {
10581058
void test_getOptionalParameterTypes_noParameters() {
10591059
var type = functionTypeNone(
10601060
typeParameters: [],
1061-
parameters: [],
1061+
formalParameters: [],
10621062
returnType: voidNone,
10631063
);
10641064
List<DartType> types = type.optionalParameterTypes;
@@ -1068,7 +1068,7 @@ class FunctionTypeImplTest extends AbstractTypeSystemTest {
10681068
void test_getOptionalParameterTypes_optionalParameters() {
10691069
var type = functionTypeNone(
10701070
typeParameters: [],
1071-
parameters: [
1071+
formalParameters: [
10721072
requiredParameter(type: intNone),
10731073
positionalParameter(type: doubleNone),
10741074
positionalParameter(type: stringNone),

0 commit comments

Comments
 (0)