@@ -445,7 +445,7 @@ abstract class ExecutableMember extends Member
445445class FieldFormalParameterMember extends ParameterMember
446446 implements FieldFormalParameterElement {
447447 factory FieldFormalParameterMember ({
448- required FieldFormalParameterElement declaration,
448+ required FieldFormalParameterElementImpl declaration,
449449 required MapSubstitution substitution,
450450 }) {
451451 var freshTypeParameters = _SubstitutedTypeParameters (
@@ -460,14 +460,19 @@ class FieldFormalParameterMember extends ParameterMember
460460 }
461461
462462 FieldFormalParameterMember ._({
463- required FieldFormalParameterElement super .declaration,
463+ required FieldFormalParameterElementImpl super .declaration,
464464 required super .substitution,
465465 required super .typeParameters,
466466 }) : super ._();
467467
468+ @override
469+ FieldFormalParameterElementImpl get declaration {
470+ return _declaration as FieldFormalParameterElementImpl ;
471+ }
472+
468473 @override
469474 FieldElementOrMember ? get field {
470- var field = ( declaration as FieldFormalParameterElement ) .field;
475+ var field = declaration.field;
471476 if (field == null ) {
472477 return null ;
473478 }
@@ -497,7 +502,7 @@ class FieldMember extends VariableMember
497502 /// Initialize a newly created element to represent a field, based on the
498503 /// [declaration] , with applied [substitution] .
499504 FieldMember ({
500- required FieldElement super .declaration,
505+ required FieldElementImpl super .declaration,
501506 required super .substitution,
502507 });
503508
@@ -539,7 +544,7 @@ class FieldMember extends VariableMember
539544 }
540545
541546 @override
542- PropertyAccessorElement ? get getter {
547+ PropertyAccessorElementOrMember ? get getter {
543548 var baseGetter = declaration.getter;
544549 if (baseGetter == null ) {
545550 return null ;
@@ -603,7 +608,7 @@ class FieldMember extends VariableMember
603608 Element2 get nonSynthetic2 => _element2.nonSynthetic2;
604609
605610 @override
606- PropertyAccessorElement ? get setter {
611+ PropertyAccessorElementOrMember ? get setter {
607612 var baseSetter = declaration.setter;
608613 if (baseSetter == null ) {
609614 return null ;
@@ -667,24 +672,26 @@ class FieldMember extends VariableMember
667672 @override
668673 void visitChildren2 <T >(ElementVisitor2 <T > visitor) {}
669674
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
671676 /// defining type's declaration are replaced with the actual type arguments
672677 /// from the [definingType] , create a field member representing the given
673678 /// field. Return the member that was created, or the base field if no member
674679 /// was created.
675680 static FieldElementOrMember from (
676- FieldElementOrMember field, InterfaceType definingType) {
681+ FieldElementImpl element,
682+ InterfaceType definingType,
683+ ) {
677684 if (definingType.typeArguments.isEmpty) {
678- return field ;
685+ return element ;
679686 }
680687 return FieldMember (
681- declaration: field ,
688+ declaration: element ,
682689 substitution: Substitution .fromInterfaceType (definingType),
683690 );
684691 }
685692
686- static FieldElement from2 (
687- FieldElement element,
693+ static FieldElementOrMember from2 (
694+ FieldElementImpl element,
688695 MapSubstitution substitution,
689696 ) {
690697 if (substitution.map.isEmpty) {
@@ -1112,7 +1119,7 @@ class ParameterMember extends VariableMember
11121119 final List <TypeParameterElement > typeParameters;
11131120
11141121 factory ParameterMember ({
1115- required ParameterElement declaration,
1122+ required ParameterElementImpl declaration,
11161123 required MapSubstitution substitution,
11171124 }) {
11181125 var freshTypeParameters = _SubstitutedTypeParameters (
@@ -1129,7 +1136,7 @@ class ParameterMember extends VariableMember
11291136 /// Initialize a newly created element to represent a parameter, based on the
11301137 /// [declaration] , with applied [substitution] .
11311138 ParameterMember ._({
1132- required ParameterElement super .declaration,
1139+ required ParameterElementImpl super .declaration,
11331140 required super .substitution,
11341141 required this .typeParameters,
11351142 });
@@ -1282,24 +1289,27 @@ class ParameterMember extends VariableMember
12821289
12831290 static ParameterElementMixin from (
12841291 ParameterElementMixin element, MapSubstitution substitution) {
1292+ ParameterElementImpl declaration;
12851293 var combined = substitution;
12861294 if (element is ParameterMember ) {
12871295 var member = element;
1288- element = member.declaration;
1296+ declaration = member.declaration;
12891297
12901298 var map = < TypeParameterElement2 , DartType > {
12911299 for (var MapEntry (: key, : value) in member.substitution.map.entries)
12921300 key: substitution.substituteType (value),
12931301 };
12941302 combined = Substitution .fromMap2 (map);
1303+ } else {
1304+ declaration = element as ParameterElementImpl ;
12951305 }
12961306
12971307 if (combined.map.isEmpty) {
12981308 return element;
12991309 }
13001310
13011311 return ParameterMember (
1302- declaration: element ,
1312+ declaration: declaration ,
13031313 substitution: combined,
13041314 );
13051315 }
@@ -1518,7 +1528,7 @@ class SetterMember extends PropertyAccessorMember
15181528class SuperFormalParameterMember extends ParameterMember
15191529 implements SuperFormalParameterElement {
15201530 factory SuperFormalParameterMember ({
1521- required SuperFormalParameterElement declaration,
1531+ required SuperFormalParameterElementImpl declaration,
15221532 required MapSubstitution substitution,
15231533 }) {
15241534 var freshTypeParameters = _SubstitutedTypeParameters (
@@ -1533,11 +1543,16 @@ class SuperFormalParameterMember extends ParameterMember
15331543 }
15341544
15351545 SuperFormalParameterMember ._({
1536- required SuperFormalParameterElement super .declaration,
1546+ required SuperFormalParameterElementImpl super .declaration,
15371547 required super .substitution,
15381548 required super .typeParameters,
15391549 }) : super ._();
15401550
1551+ @override
1552+ SuperFormalParameterElementImpl get declaration {
1553+ return _declaration as SuperFormalParameterElementImpl ;
1554+ }
1555+
15411556 @override
15421557 bool get hasDefaultValue => declaration.hasDefaultValue;
15431558
@@ -1546,9 +1561,7 @@ class SuperFormalParameterMember extends ParameterMember
15461561
15471562 @override
15481563 ParameterElement ? get superConstructorParameter {
1549- var superConstructorParameter =
1550- (declaration as SuperFormalParameterElementImpl )
1551- .superConstructorParameter;
1564+ var superConstructorParameter = declaration.superConstructorParameter;
15521565 if (superConstructorParameter == null ) {
15531566 return null ;
15541567 }
@@ -1574,7 +1587,7 @@ abstract class VariableMember extends Member
15741587 /// Initialize a newly created element to represent a variable, based on the
15751588 /// [declaration] , with applied [substitution] .
15761589 VariableMember ({
1577- required VariableElement super .declaration,
1590+ required VariableElementImpl super .declaration,
15781591 required super .substitution,
15791592 });
15801593
0 commit comments