| Index: pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart
|
| diff --git a/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart b/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart
|
| index 6bdabc94d69031cd94b02246fad31f40ca1eb8eb..0e0229cb5ebc28b2a811a395312a2e2548ef3748 100644
|
| --- a/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart
|
| +++ b/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart
|
| @@ -525,7 +525,9 @@ class InheritanceManager {
|
| //
|
| // Interface elements
|
| //
|
| - for (InterfaceType interfaceType in interfaces) {
|
| + int interfaceLength = interfaces.length;
|
| + for (int i = 0; i < interfaceLength; i++) {
|
| + InterfaceType interfaceType = interfaces[i];
|
| ClassElement interfaceElement = interfaceType.element;
|
| if (interfaceElement != null) {
|
| if (!visitedInterfaces.contains(interfaceElement)) {
|
| @@ -561,26 +563,27 @@ class InheritanceManager {
|
| }
|
|
|
| /**
|
| - * Given some [ClassElement], this method finds and returns the [ExecutableElement] of
|
| - * the passed name in the class element. Static members, members in super types and members not
|
| - * accessible from the current library are not considered.
|
| - *
|
| - * @param classElt the class element to query
|
| - * @param memberName the name of the member to lookup in the class
|
| - * @return the found [ExecutableElement], or `null` if no such member was found
|
| + * Given some [classElement], this method finds and returns the executable
|
| + * element with the given [memberName] in the class element. Static members,
|
| + * members in super types and members not accessible from the current library
|
| + * are not considered.
|
| */
|
| ExecutableElement _lookupMemberInClass(
|
| - ClassElement classElt, String memberName) {
|
| - List<MethodElement> methods = classElt.methods;
|
| - for (MethodElement method in methods) {
|
| + ClassElement classElement, String memberName) {
|
| + List<MethodElement> methods = classElement.methods;
|
| + int methodLength = methods.length;
|
| + for (int i = 0; i < methodLength; i++) {
|
| + MethodElement method = methods[i];
|
| if (memberName == method.name &&
|
| method.isAccessibleIn(_library) &&
|
| !method.isStatic) {
|
| return method;
|
| }
|
| }
|
| - List<PropertyAccessorElement> accessors = classElt.accessors;
|
| - for (PropertyAccessorElement accessor in accessors) {
|
| + List<PropertyAccessorElement> accessors = classElement.accessors;
|
| + int accessorLength = accessors.length;
|
| + for (int i = 0; i < accessorLength; i++) {
|
| + PropertyAccessorElement accessor = accessors[i];
|
| if (memberName == accessor.name &&
|
| accessor.isAccessibleIn(_library) &&
|
| !accessor.isStatic) {
|
|
|