@@ -445,7 +445,7 @@ abstract class ExecutableMember extends Member
445
445
class FieldFormalParameterMember extends ParameterMember
446
446
implements FieldFormalParameterElement {
447
447
factory FieldFormalParameterMember ({
448
- required FieldFormalParameterElement declaration,
448
+ required FieldFormalParameterElementImpl declaration,
449
449
required MapSubstitution substitution,
450
450
}) {
451
451
var freshTypeParameters = _SubstitutedTypeParameters (
@@ -460,14 +460,19 @@ class FieldFormalParameterMember extends ParameterMember
460
460
}
461
461
462
462
FieldFormalParameterMember ._({
463
- required FieldFormalParameterElement super .declaration,
463
+ required FieldFormalParameterElementImpl super .declaration,
464
464
required super .substitution,
465
465
required super .typeParameters,
466
466
}) : super ._();
467
467
468
+ @override
469
+ FieldFormalParameterElementImpl get declaration {
470
+ return _declaration as FieldFormalParameterElementImpl ;
471
+ }
472
+
468
473
@override
469
474
FieldElementOrMember ? get field {
470
- var field = ( declaration as FieldFormalParameterElement ) .field;
475
+ var field = declaration.field;
471
476
if (field == null ) {
472
477
return null ;
473
478
}
@@ -497,7 +502,7 @@ class FieldMember extends VariableMember
497
502
/// Initialize a newly created element to represent a field, based on the
498
503
/// [declaration] , with applied [substitution] .
499
504
FieldMember ({
500
- required FieldElement super .declaration,
505
+ required FieldElementImpl super .declaration,
501
506
required super .substitution,
502
507
});
503
508
@@ -539,7 +544,7 @@ class FieldMember extends VariableMember
539
544
}
540
545
541
546
@override
542
- PropertyAccessorElement ? get getter {
547
+ PropertyAccessorElementOrMember ? get getter {
543
548
var baseGetter = declaration.getter;
544
549
if (baseGetter == null ) {
545
550
return null ;
@@ -603,7 +608,7 @@ class FieldMember extends VariableMember
603
608
Element2 get nonSynthetic2 => _element2.nonSynthetic2;
604
609
605
610
@override
606
- PropertyAccessorElement ? get setter {
611
+ PropertyAccessorElementOrMember ? get setter {
607
612
var baseSetter = declaration.setter;
608
613
if (baseSetter == null ) {
609
614
return null ;
@@ -667,24 +672,26 @@ class FieldMember extends VariableMember
667
672
@override
668
673
void visitChildren2 <T >(ElementVisitor2 <T > visitor) {}
669
674
670
- /// If the given [field ] 's type is different when any type parameters from the
675
+ /// If the given [element ] 's type is different when any type parameters from the
671
676
/// defining type's declaration are replaced with the actual type arguments
672
677
/// from the [definingType] , create a field member representing the given
673
678
/// field. Return the member that was created, or the base field if no member
674
679
/// was created.
675
680
static FieldElementOrMember from (
676
- FieldElementOrMember field, InterfaceType definingType) {
681
+ FieldElementImpl element,
682
+ InterfaceType definingType,
683
+ ) {
677
684
if (definingType.typeArguments.isEmpty) {
678
- return field ;
685
+ return element ;
679
686
}
680
687
return FieldMember (
681
- declaration: field ,
688
+ declaration: element ,
682
689
substitution: Substitution .fromInterfaceType (definingType),
683
690
);
684
691
}
685
692
686
- static FieldElement from2 (
687
- FieldElement element,
693
+ static FieldElementOrMember from2 (
694
+ FieldElementImpl element,
688
695
MapSubstitution substitution,
689
696
) {
690
697
if (substitution.map.isEmpty) {
@@ -1112,7 +1119,7 @@ class ParameterMember extends VariableMember
1112
1119
final List <TypeParameterElement > typeParameters;
1113
1120
1114
1121
factory ParameterMember ({
1115
- required ParameterElement declaration,
1122
+ required ParameterElementImpl declaration,
1116
1123
required MapSubstitution substitution,
1117
1124
}) {
1118
1125
var freshTypeParameters = _SubstitutedTypeParameters (
@@ -1129,7 +1136,7 @@ class ParameterMember extends VariableMember
1129
1136
/// Initialize a newly created element to represent a parameter, based on the
1130
1137
/// [declaration] , with applied [substitution] .
1131
1138
ParameterMember ._({
1132
- required ParameterElement super .declaration,
1139
+ required ParameterElementImpl super .declaration,
1133
1140
required super .substitution,
1134
1141
required this .typeParameters,
1135
1142
});
@@ -1282,24 +1289,27 @@ class ParameterMember extends VariableMember
1282
1289
1283
1290
static ParameterElementMixin from (
1284
1291
ParameterElementMixin element, MapSubstitution substitution) {
1292
+ ParameterElementImpl declaration;
1285
1293
var combined = substitution;
1286
1294
if (element is ParameterMember ) {
1287
1295
var member = element;
1288
- element = member.declaration;
1296
+ declaration = member.declaration;
1289
1297
1290
1298
var map = < TypeParameterElement2 , DartType > {
1291
1299
for (var MapEntry (: key, : value) in member.substitution.map.entries)
1292
1300
key: substitution.substituteType (value),
1293
1301
};
1294
1302
combined = Substitution .fromMap2 (map);
1303
+ } else {
1304
+ declaration = element as ParameterElementImpl ;
1295
1305
}
1296
1306
1297
1307
if (combined.map.isEmpty) {
1298
1308
return element;
1299
1309
}
1300
1310
1301
1311
return ParameterMember (
1302
- declaration: element ,
1312
+ declaration: declaration ,
1303
1313
substitution: combined,
1304
1314
);
1305
1315
}
@@ -1518,7 +1528,7 @@ class SetterMember extends PropertyAccessorMember
1518
1528
class SuperFormalParameterMember extends ParameterMember
1519
1529
implements SuperFormalParameterElement {
1520
1530
factory SuperFormalParameterMember ({
1521
- required SuperFormalParameterElement declaration,
1531
+ required SuperFormalParameterElementImpl declaration,
1522
1532
required MapSubstitution substitution,
1523
1533
}) {
1524
1534
var freshTypeParameters = _SubstitutedTypeParameters (
@@ -1533,11 +1543,16 @@ class SuperFormalParameterMember extends ParameterMember
1533
1543
}
1534
1544
1535
1545
SuperFormalParameterMember ._({
1536
- required SuperFormalParameterElement super .declaration,
1546
+ required SuperFormalParameterElementImpl super .declaration,
1537
1547
required super .substitution,
1538
1548
required super .typeParameters,
1539
1549
}) : super ._();
1540
1550
1551
+ @override
1552
+ SuperFormalParameterElementImpl get declaration {
1553
+ return _declaration as SuperFormalParameterElementImpl ;
1554
+ }
1555
+
1541
1556
@override
1542
1557
bool get hasDefaultValue => declaration.hasDefaultValue;
1543
1558
@@ -1546,9 +1561,7 @@ class SuperFormalParameterMember extends ParameterMember
1546
1561
1547
1562
@override
1548
1563
ParameterElement ? get superConstructorParameter {
1549
- var superConstructorParameter =
1550
- (declaration as SuperFormalParameterElementImpl )
1551
- .superConstructorParameter;
1564
+ var superConstructorParameter = declaration.superConstructorParameter;
1552
1565
if (superConstructorParameter == null ) {
1553
1566
return null ;
1554
1567
}
@@ -1574,7 +1587,7 @@ abstract class VariableMember extends Member
1574
1587
/// Initialize a newly created element to represent a variable, based on the
1575
1588
/// [declaration] , with applied [substitution] .
1576
1589
VariableMember ({
1577
- required VariableElement super .declaration,
1590
+ required VariableElementImpl super .declaration,
1578
1591
required super .substitution,
1579
1592
});
1580
1593
0 commit comments