Fine. Request specific members by name in havingMemberWithBaseName().
Iterating over all members adds too many dependencies.
Change-Id: Ic960d48fda02a7d2b192751b44cdc68f16e236cf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/444640
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/resolver/applicable_extensions.dart b/pkg/analyzer/lib/src/dart/resolver/applicable_extensions.dart
index bfa8e83..2a0521b 100644
--- a/pkg/analyzer/lib/src/dart/resolver/applicable_extensions.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/applicable_extensions.dart
@@ -134,15 +134,8 @@
var result = <_NotInstantiatedExtensionWithMember>[];
for (var extension in this) {
if (baseName.name == '[]') {
- ExecutableElement? getter;
- ExecutableElement? setter;
- for (var method in extension.methods) {
- if (method.name == '[]') {
- getter = method;
- } else if (method.name == '[]=') {
- setter = method;
- }
- }
+ var getter = extension.getMethod('[]');
+ var setter = extension.getMethod('[]=');
if (getter != null || setter != null) {
result.add(
_NotInstantiatedExtensionWithMember(
@@ -155,12 +148,9 @@
);
}
} else {
- for (var field in extension.fields) {
- if (field.isStatic) {
- continue;
- }
- var fieldName = Name.forElement(field);
- if (fieldName == baseName) {
+ var field = extension.getField(baseName.name);
+ if (field != null && !field.isStatic) {
+ if (Name.forElement(field) == baseName) {
result.add(
_NotInstantiatedExtensionWithMember(
// TODO(paulberry): eliminate this cast by changing the
@@ -170,15 +160,12 @@
setter: field.setter,
),
);
- break;
}
}
- for (var method in extension.methods) {
- if (method.isStatic) {
- continue;
- }
- var methodName = Name.forElement(method);
- if (methodName == baseName) {
+
+ var method = extension.getMethod(baseName.name);
+ if (method != null && !method.isStatic) {
+ if (Name.forElement(method) == baseName) {
result.add(
_NotInstantiatedExtensionWithMember(
// TODO(paulberry): eliminate this cast by changing the
@@ -187,7 +174,6 @@
getter: method,
),
);
- break;
}
}
}