Fix build by moving check inside loop

Change-Id: I17d8f53750ced1e0bbda36d5ba784d18002241ba
diff --git a/src/main/java/com/android/tools/r8/graph/ResolutionResult.java b/src/main/java/com/android/tools/r8/graph/ResolutionResult.java
index 76e7c9a..fb8b35b 100644
--- a/src/main/java/com/android/tools/r8/graph/ResolutionResult.java
+++ b/src/main/java/com/android/tools/r8/graph/ResolutionResult.java
@@ -424,7 +424,7 @@
       boolean allowPackageBlocked = resolvedMethod.accessFlags.isPackagePrivate();
       DexClass current = dynamicInstance;
       DexEncodedMethod overrideTarget = resolvedMethod;
-      do {
+      while (current != null) {
         DexEncodedMethod candidate = lookupOverrideCandidate(overrideTarget, current);
         if (candidate == DexEncodedMethod.SENTINEL && allowPackageBlocked) {
           overrideTarget = findWideningOverride(resolvedMethod, current, appView);
@@ -432,11 +432,15 @@
           continue;
         }
         if (candidate == null || candidate == DexEncodedMethod.SENTINEL) {
+          // We cannot find a target above the resolved method.
+          if (current.type == overrideTarget.method.holder) {
+            return null;
+          }
           current = current.superType == null ? null : appView.definitionFor(current.superType);
           continue;
         }
         return candidate;
-      } while (current != null && current.type != overrideTarget.method.holder);
+      }
       assert resolvedHolder.isInterface();
       return lookupMaximallySpecificDispatchTarget(dynamicInstance, appView);
     }