Use other lookupVirtualDispatchTargets() when upper-bound-type is library

Change-Id: I5fabd9ca8b5ca5cb4adf909016381c0f3dae0dad
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java b/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java
index 9bf5391..f356690 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java
@@ -12,7 +12,8 @@
 import com.android.tools.r8.graph.DexMethod;
 import com.android.tools.r8.graph.DexProgramClass;
 import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.graph.LookupResult.LookupResultSuccess;
+import com.android.tools.r8.graph.LookupResult;
+import com.android.tools.r8.graph.ResolutionResult;
 import com.android.tools.r8.ir.analysis.ClassInitializationAnalysis;
 import com.android.tools.r8.ir.analysis.fieldvalueanalysis.AbstractFieldSet;
 import com.android.tools.r8.ir.analysis.modeling.LibraryMethodReadSetModeling;
@@ -98,17 +99,22 @@
       refinedReceiverLowerBound =
           asProgramClassOrNull(appView.definitionFor(refinedReceiverLowerBoundType.getClassType()));
     }
-    LookupResultSuccess lookupResult =
-        appView
-            .appInfo()
-            .resolveMethod(method.holder, method)
-            .lookupVirtualDispatchTargets(
-                appView.definitionForProgramType(invocationContext),
-                appView.withLiveness().appInfo(),
-                refinedReceiverUpperBound,
-                refinedReceiverLowerBound)
-            .asLookupResultSuccess();
-    if (lookupResult == null) {
+    ResolutionResult resolutionResult = appView.appInfo().resolveMethod(method.holder, method);
+    LookupResult lookupResult;
+    if (refinedReceiverUpperBound != null) {
+      lookupResult =
+          resolutionResult.lookupVirtualDispatchTargets(
+              appView.definitionForProgramType(invocationContext),
+              appView.withLiveness().appInfo(),
+              refinedReceiverUpperBound,
+              refinedReceiverLowerBound);
+    } else {
+      lookupResult =
+          resolutionResult.lookupVirtualDispatchTargets(
+              appView.definitionForProgramType(invocationContext),
+              appView.withLiveness().appInfo());
+    }
+    if (lookupResult.isLookupResultFailure()) {
       return null;
     }
     Set<DexEncodedMethod> result = Sets.newIdentityHashSet();