Skip to content

Commit f72732c

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Migrate, remove v1 getters from SimpleResolutionResult.
Change-Id: I4eb55afe0a04bd2ff16daa8d29d88d2847fb9c08 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406100 Reviewed-by: Phil Quitslund <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent e4d0480 commit f72732c

14 files changed

+68
-51
lines changed

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

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,19 @@ extension ElementExtension on Element {
170170
}
171171
}
172172

173+
extension ExecutableElement2OrMemberQuestionExtension
174+
on ExecutableElement2OrMember? {
175+
TypeImpl? get firstParameterType {
176+
var self = this;
177+
if (self is MethodElement2OrMember) {
178+
// TODO(paulberry): eliminate this cast by changing this extension to
179+
// apply to `ExecutableElementOrMember?`.
180+
return self.formalParameters.firstOrNull?.type as TypeImpl?;
181+
}
182+
return null;
183+
}
184+
}
185+
173186
extension ExecutableElementExtension on ExecutableElement {
174187
/// Whether the enclosing element is the class `Object`.
175188
bool get isObjectMember {
@@ -178,7 +191,8 @@ extension ExecutableElementExtension on ExecutableElement {
178191
}
179192
}
180193

181-
extension ExecutableElementExtensionQuestion on ExecutableElement? {
194+
extension ExecutableElementOrMemberQuestionExtension
195+
on ExecutableElementOrMember? {
182196
TypeImpl? get firstParameterType {
183197
var self = this;
184198
if (self is MethodElementOrMember) {

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import 'package:analyzer/src/dart/element/type_system.dart';
2121
import 'package:analyzer/src/dart/resolver/type_property_resolver.dart';
2222
import 'package:analyzer/src/error/codes.dart';
2323
import 'package:analyzer/src/generated/resolver.dart';
24+
import 'package:analyzer/src/utilities/extensions/element.dart';
2425

2526
/// Helper for resolving [AssignmentExpression]s.
2627
class AssignmentExpressionResolver {
@@ -254,7 +255,7 @@ class AssignmentExpressionResolver {
254255
propertyErrorEntity: operator,
255256
nameErrorEntity: operator,
256257
);
257-
node.staticElement = result.getter as MethodElement?;
258+
node.staticElement = result.getter2?.asElement as MethodElement?;
258259
if (result.needsGetterError) {
259260
_errorReporter.atToken(
260261
operator,

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import 'package:analyzer/src/dart/resolver/type_property_resolver.dart';
2424
import 'package:analyzer/src/error/codes.dart';
2525
import 'package:analyzer/src/generated/resolver.dart';
2626
import 'package:analyzer/src/generated/super_context.dart';
27+
import 'package:analyzer/src/utilities/extensions/element.dart';
2728

2829
/// Helper for resolving [BinaryExpression]s.
2930
class BinaryExpressionResolver {
@@ -454,8 +455,8 @@ class BinaryExpressionResolver {
454455
nameErrorEntity: node,
455456
);
456457

457-
node.staticElement = result.getter as MethodElement?;
458-
node.staticInvokeType = result.getter?.type;
458+
node.staticElement = result.getter2?.asElement as MethodElement?;
459+
node.staticInvokeType = result.getter2?.type;
459460
if (result.needsGetterError) {
460461
if (leftOperand is SuperExpression) {
461462
_errorReporter.atToken(

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import 'package:analyzer/src/dart/element/type_provider.dart';
1414
import 'package:analyzer/src/dart/element/type_system.dart';
1515
import 'package:analyzer/src/dart/resolver/type_property_resolver.dart';
1616
import 'package:analyzer/src/generated/resolver.dart';
17+
import 'package:analyzer/src/utilities/extensions/element.dart';
1718

1819
class CommentReferenceResolver {
1920
final TypeProviderImpl _typeProvider;
@@ -181,7 +182,7 @@ class CommentReferenceResolver {
181182
propertyErrorEntity: identifier,
182183
nameErrorEntity: identifier,
183184
);
184-
element = result.getter ?? result.setter;
185+
element = result.getter2?.asElement ?? result.setter2?.asElement;
185186
}
186187
return element;
187188
}

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -479,15 +479,9 @@ enum ExtensionResolutionError implements ExtensionResolutionResult {
479479
/// Resolution failed because multiple elements were found.
480480
ambiguous;
481481

482-
@override
483-
ExecutableElementOrMember? get getter => null;
484-
485482
@override
486483
ExecutableElement2OrMember? get getter2 => null;
487484

488-
@override
489-
ExecutableElement? get setter => null;
490-
491485
@override
492486
ExecutableElement2? get setter2 => null;
493487
}

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import 'package:analyzer/src/dart/resolver/type_property_resolver.dart';
1717
import 'package:analyzer/src/error/codes.dart';
1818
import 'package:analyzer/src/error/nullable_dereference_verifier.dart';
1919
import 'package:analyzer/src/generated/resolver.dart';
20+
import 'package:analyzer/src/utilities/extensions/element.dart';
2021

2122
/// Helper for resolving [FunctionExpressionInvocation]s.
2223
class FunctionExpressionInvocationResolver {
@@ -83,7 +84,7 @@ class FunctionExpressionInvocationResolver {
8384
propertyErrorEntity: function,
8485
nameErrorEntity: function,
8586
);
86-
var callElement = result.getter;
87+
var callElement = result.getter2?.asElement;
8788

8889
if (callElement == null) {
8990
if (result.needsGetterError) {
@@ -169,7 +170,7 @@ class FunctionExpressionInvocationResolver {
169170
function,
170171
FunctionElement.CALL_METHOD_NAME,
171172
);
172-
var callElement = result.getter;
173+
var callElement = result.getter2?.asElement;
173174
node.staticElement = callElement;
174175

175176
if (callElement == null) {

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

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import 'package:analyzer/src/dart/element/type.dart';
1717
import 'package:analyzer/src/dart/resolver/extension_member_resolver.dart';
1818
import 'package:analyzer/src/error/codes.dart';
1919
import 'package:analyzer/src/generated/resolver.dart';
20+
import 'package:analyzer/src/utilities/extensions/element.dart';
2021

2122
/// A resolver for [FunctionReference] nodes.
2223
///
@@ -166,13 +167,17 @@ class FunctionReferenceResolver {
166167
// applies.
167168
return _extensionResolver
168169
.findExtension(type, node, callMethodName)
169-
.getter;
170+
.getter2
171+
?.asElement;
170172
}
171173
// Otherwise, a 'call' method on the interface, or on an applicable
172174
// extension method applies.
173175
return type.lookUpMethod2(
174176
FunctionElement.CALL_METHOD_NAME, type.element.library) ??
175-
_extensionResolver.findExtension(type, node, callMethodName).getter;
177+
_extensionResolver
178+
.findExtension(type, node, callMethodName)
179+
.getter2
180+
?.asElement;
176181
}
177182

178183
void _reportInvalidAccessToStaticMember(
@@ -357,7 +362,7 @@ class FunctionReferenceResolver {
357362
var propertyName = function.propertyName;
358363
var result =
359364
_extensionResolver.getOverrideMember(override, propertyName.name);
360-
var member = result.getter;
365+
var member = result.getter2?.asElement;
361366

362367
if (member == null) {
363368
node.recordStaticType(InvalidTypeImpl.instance, resolver: _resolver);
@@ -406,7 +411,8 @@ class FunctionReferenceResolver {
406411
propertyErrorEntity: methodName,
407412
nameErrorEntity: methodName,
408413
)
409-
.getter;
414+
.getter2
415+
?.asElement;
410416
if (methodElement != null && methodElement.isStatic) {
411417
_reportInvalidAccessToStaticMember(methodName, methodElement,
412418
implicitReceiver: false);
@@ -586,7 +592,8 @@ class FunctionReferenceResolver {
586592
propertyErrorEntity: function.propertyName,
587593
nameErrorEntity: function,
588594
)
589-
.getter;
595+
.getter2
596+
?.asElement;
590597

591598
if (propertyElement is TypeParameterElement) {
592599
_resolve(node: node, rawType: propertyElement!.type);
@@ -699,7 +706,7 @@ class FunctionReferenceResolver {
699706
nameErrorEntity: function,
700707
);
701708

702-
var method = result.getter;
709+
var method = result.getter2?.asElement;
703710
if (method != null) {
704711
if (method.isStatic) {
705712
_reportInvalidAccessToStaticMember(function, method,
@@ -916,7 +923,8 @@ class FunctionReferenceResolver {
916923
propertyErrorEntity: name,
917924
nameErrorEntity: nameErrorEntity,
918925
)
919-
.getter;
926+
.getter2
927+
?.asElement;
920928
name.staticElement = element;
921929
if (element != null && element.isStatic) {
922930
_reportInvalidAccessToStaticMember(name, element,

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import 'package:analyzer/src/generated/resolver.dart';
2424
import 'package:analyzer/src/generated/scope_helpers.dart';
2525
import 'package:analyzer/src/generated/super_context.dart';
2626
import 'package:analyzer/src/generated/variable_type_provider.dart';
27+
import 'package:analyzer/src/utilities/extensions/element.dart';
2728

2829
class MethodInvocationResolver with ScopeHelpers {
2930
/// The resolver driving this participant.
@@ -414,7 +415,7 @@ class MethodInvocationResolver with ScopeHelpers {
414415
List<WhyNotPromotedGetter> whyNotPromotedArguments,
415416
{required TypeImpl contextType}) {
416417
var result = _extensionResolver.getOverrideMember(override, name);
417-
var member = result.getter;
418+
var member = result.getter2?.asElement;
418419

419420
if (member == null) {
420421
_setInvalidTypeResolution(node,
@@ -853,7 +854,7 @@ class MethodInvocationResolver with ScopeHelpers {
853854
return _rewriteAsFunctionExpressionInvocation(node, recordField.type);
854855
}
855856

856-
var target = result.getter;
857+
var target = result.getter2?.asElement;
857858
if (target != null) {
858859
nameNode.staticElement = target;
859860

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import 'package:analyzer/src/dart/resolver/invocation_inferrer.dart';
2121
import 'package:analyzer/src/dart/resolver/type_property_resolver.dart';
2222
import 'package:analyzer/src/error/codes.dart';
2323
import 'package:analyzer/src/generated/resolver.dart';
24+
import 'package:analyzer/src/utilities/extensions/element.dart';
2425

2526
/// Helper for resolving [PostfixExpression]s.
2627
class PostfixExpressionResolver {
@@ -144,7 +145,7 @@ class PostfixExpressionResolver {
144145
propertyErrorEntity: node.operator,
145146
nameErrorEntity: operand,
146147
);
147-
node.staticElement = result.getter as MethodElement?;
148+
node.staticElement = result.getter2?.asElement as MethodElement?;
148149
if (result.needsGetterError) {
149150
if (operand is SuperExpression) {
150151
_errorReporter.atToken(

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import 'package:analyzer/src/dart/resolver/invocation_inferrer.dart';
2121
import 'package:analyzer/src/dart/resolver/type_property_resolver.dart';
2222
import 'package:analyzer/src/error/codes.dart';
2323
import 'package:analyzer/src/generated/resolver.dart';
24+
import 'package:analyzer/src/utilities/extensions/element.dart';
2425

2526
/// Helper for resolving [PrefixExpression]s.
2627
class PrefixExpressionResolver {
@@ -192,7 +193,7 @@ class PrefixExpressionResolver {
192193
propertyErrorEntity: node.operator,
193194
nameErrorEntity: operand,
194195
);
195-
node.staticElement = result.getter as MethodElement?;
196+
node.staticElement = result.getter2?.asElement as MethodElement?;
196197
if (result.needsGetterError) {
197198
if (operand is SuperExpression) {
198199
_errorReporter.atToken(

0 commit comments

Comments
 (0)