Skip to content

Commit df120f1

Browse files
committed
Elements. Require MethodElementImpl for MethodMember.
Change-Id: I5daca9f7fe0464279bd67414532bb070406ba5e7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/416822 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Paul Berry <[email protected]>
1 parent 8fa11b0 commit df120f1

File tree

8 files changed

+43
-17
lines changed

8 files changed

+43
-17
lines changed

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

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1248,12 +1248,8 @@ class InheritanceManager3 {
12481248
}
12491249

12501250
element.methods2.map((e) => e.asElement).forEach(addMember);
1251-
element.getters2
1252-
.map((e) => e.asElement as PropertyAccessorElementImpl)
1253-
.forEach(addMember);
1254-
element.setters2
1255-
.map((e) => e.asElement as PropertyAccessorElementImpl)
1256-
.forEach(addMember);
1251+
element.getters2.map((e) => e.asElement).forEach(addMember);
1252+
element.setters2.map((e) => e.asElement).forEach(addMember);
12571253

12581254
return declared;
12591255
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,7 +1027,7 @@ abstract class Member implements Element, ElementOrMember {
10271027
class MethodMember extends ExecutableMember
10281028
implements MethodElementOrMember, MethodElement2OrMember {
10291029
factory MethodMember({
1030-
required MethodElement declaration,
1030+
required MethodElementImpl declaration,
10311031
required MapSubstitution substitution,
10321032
}) {
10331033
var freshTypeParameters = _SubstitutedTypeParameters(
@@ -1042,13 +1042,13 @@ class MethodMember extends ExecutableMember
10421042
}
10431043

10441044
MethodMember._({
1045-
required MethodElement super.declaration,
1045+
required MethodElementImpl super.declaration,
10461046
required super.substitution,
10471047
required super.typeParameters,
10481048
});
10491049

10501050
@override
1051-
MethodElement2 get baseElement => _element2;
1051+
MethodElementImpl2 get baseElement => _element2;
10521052

10531053
@override
10541054
MethodElementImpl get declaration => _declaration as MethodElementImpl;
@@ -1085,7 +1085,7 @@ class MethodMember extends ExecutableMember
10851085
Source get source => _declaration.source!;
10861086

10871087
@override
1088-
MethodElement2 get _element2 => declaration.asElement2;
1088+
MethodElementImpl2 get _element2 => declaration.asElement2;
10891089

10901090
@Deprecated('Use Element2 and accept2() instead')
10911091
@override

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,11 +146,11 @@ class ExtensionMemberResolver {
146146
///
147147
/// The [node] is fully resolved, and its type arguments are set.
148148
ExtensionResolutionResult getOverrideMember(
149-
ExtensionOverride node, String name) {
149+
ExtensionOverrideImpl node, String name) {
150150
var element = node.element2;
151151

152-
ExecutableElement2? getter;
153-
ExecutableElement2? setter;
152+
ExecutableElementImpl2? getter;
153+
ExecutableElementImpl2? setter;
154154
if (name == '[]') {
155155
getter = element.getMethod2('[]');
156156
setter = element.getMethod2('[]=');

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ class FunctionExpressionInvocationResolver {
160160

161161
void _resolveReceiverExtensionOverride(
162162
FunctionExpressionInvocationImpl node,
163-
ExtensionOverride function,
163+
ExtensionOverrideImpl function,
164164
List<WhyNotPromotedGetter> whyNotPromotedArguments,
165165
{required TypeImpl contextType}) {
166166
var result = _extensionResolver.getOverrideMember(

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,7 @@ class FunctionReferenceResolver {
350350
void _resolveExtensionOverride(
351351
FunctionReferenceImpl node,
352352
PropertyAccessImpl function,
353-
ExtensionOverride override,
353+
ExtensionOverrideImpl override,
354354
) {
355355
var propertyName = function.propertyName;
356356
var result =

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ class MethodInvocationResolver with ScopeHelpers {
406406
/// process, then returns that new node. Otherwise, returns `null`.
407407
FunctionExpressionInvocationImpl? _resolveExtensionOverride(
408408
MethodInvocationImpl node,
409-
ExtensionOverride override,
409+
ExtensionOverrideImpl override,
410410
SimpleIdentifierImpl nameNode,
411411
String name,
412412
List<WhyNotPromotedGetter> whyNotPromotedArguments,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -605,7 +605,7 @@ class PropertyElementResolver with ScopeHelpers {
605605
}
606606

607607
PropertyElementResolverResult _resolveTargetExtensionOverride({
608-
required ExtensionOverride target,
608+
required ExtensionOverrideImpl target,
609609
required SimpleIdentifier propertyName,
610610
required bool hasRead,
611611
required bool hasWrite,

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,12 @@ extension ExecutableElementExtension on ExecutableElement {
374374
}
375375
}
376376

377+
extension ExecutableElementImpl2Extension on ExecutableElementImpl2 {
378+
ExecutableElementImpl get asElement {
379+
return lastFragment;
380+
}
381+
}
382+
377383
extension ExecutableElementImplExtension on ExecutableElementImpl {
378384
ExecutableElementImpl2 get asElement2 {
379385
return element;
@@ -486,6 +492,12 @@ extension FormalParameterElementMixinExtension on FormalParameterElementMixin {
486492
}
487493
}
488494

495+
extension GetterElementImplExtension on GetterElementImpl {
496+
PropertyAccessorElementImpl get asElement {
497+
return lastFragment;
498+
}
499+
}
500+
489501
extension InstanceElement2Extension on InstanceElement2 {
490502
InstanceElement get asElement {
491503
return firstFragment as InstanceElement;
@@ -635,6 +647,12 @@ extension MethodElementExtension on MethodElement {
635647
}
636648
}
637649

650+
extension MethodElementImpl2Extension on MethodElementImpl2 {
651+
MethodElementImpl get asElement {
652+
return lastFragment;
653+
}
654+
}
655+
638656
extension MethodElementImplExtension on MethodElementImpl {
639657
MethodElementImpl2 get asElement2 {
640658
return element;
@@ -772,12 +790,24 @@ extension PropertyInducingElementExtension on PropertyInducingElement2 {
772790
}
773791
}
774792

793+
extension SetterElementImplExtension on SetterElementImpl {
794+
PropertyAccessorElementImpl get asElement {
795+
return lastFragment;
796+
}
797+
}
798+
775799
extension TopLevelFunctionElementExtension on TopLevelFunctionElement {
776800
FunctionElement get asElement {
777801
return (this as TopLevelFunctionElementImpl).lastFragment;
778802
}
779803
}
780804

805+
extension TopLevelFunctionElementImplExtension on TopLevelFunctionElementImpl {
806+
FunctionElementImpl get asElement {
807+
return lastFragment;
808+
}
809+
}
810+
781811
extension TopLevelVariableElement2Extension on TopLevelVariableElement2 {
782812
TopLevelVariableElement get asElement {
783813
return baseElement.firstFragment as TopLevelVariableElement;

0 commit comments

Comments
 (0)