Use new method lookup in trace references

Bug: b/226170842
Bug: b/214382176
Change-Id: I8d50ce7866772910578a69eff69a1963b0d9b4f3
diff --git a/src/main/java/com/android/tools/r8/tracereferences/Tracer.java b/src/main/java/com/android/tools/r8/tracereferences/Tracer.java
index a17a299..0468162 100644
--- a/src/main/java/com/android/tools/r8/tracereferences/Tracer.java
+++ b/src/main/java/com/android/tools/r8/tracereferences/Tracer.java
@@ -314,7 +314,7 @@
         assert lookupResult.getType().isStatic();
         DexMethod rewrittenMethod = lookupResult.getReference();
         handleRewrittenMethodResolution(
-            rewrittenMethod, appInfo().unsafeResolveMethodDueToDexFormatLegacy(rewrittenMethod));
+            rewrittenMethod, appInfo().unsafeResolveMethodDueToDexFormat(rewrittenMethod));
       }
 
       @Override
@@ -352,23 +352,25 @@
         handleRewrittenMethodResolution(
             method,
             lookupResult.getType().isInterface()
-                ? appInfo().resolveMethodOnInterfaceHolderLegacy(method)
-                : appInfo().resolveMethodOnClassHolderLegacy(method));
+                ? appInfo().resolveMethodOnInterfaceHolder(method)
+                : appInfo().resolveMethodOnClassHolder(method));
       }
 
       private void handleRewrittenMethodResolution(
           DexMethod method, MethodResolutionResult resolutionResult) {
-        if (resolutionResult.isFailedResolution()
-            && resolutionResult.asFailedResolution().hasMethodsCausingError()) {
-          resolutionResult
-              .asFailedResolution()
-              .forEachFailureDependency(
-                  type -> addType(type, referencedFrom),
-                  methodCausingFailure ->
-                      handleRewrittenMethodReference(method, methodCausingFailure));
-          return;
-        }
-        handleRewrittenMethodReference(method, resolutionResult.getResolutionPair());
+        resolutionResult.forEachMethodResolutionResult(
+            result -> {
+              if (result.isSingleResolution()) {
+                handleRewrittenMethodReference(method, result.getResolutionPair());
+              } else {
+                result
+                    .asFailedResolution()
+                    .forEachFailureDependency(
+                        type -> addType(type, referencedFrom),
+                        methodCausingFailure ->
+                            handleRewrittenMethodReference(method, methodCausingFailure));
+              }
+            });
       }
 
       private void handleRewrittenMethodReference(
diff --git a/src/test/java/com/android/tools/r8/tracereferences/TraceMethodResolutionWithLibraryAndProgramClassTest.java b/src/test/java/com/android/tools/r8/tracereferences/TraceMethodResolutionWithLibraryAndProgramClassTest.java
index 4dcf1cd..82661ee 100644
--- a/src/test/java/com/android/tools/r8/tracereferences/TraceMethodResolutionWithLibraryAndProgramClassTest.java
+++ b/src/test/java/com/android/tools/r8/tracereferences/TraceMethodResolutionWithLibraryAndProgramClassTest.java
@@ -18,6 +18,7 @@
 import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
 import com.google.common.collect.ImmutableSet;
 import java.nio.file.Path;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 import org.junit.Test;
@@ -94,14 +95,11 @@
     ImmutableSet<MethodReference> foundSet =
         ImmutableSet.of(
             Reference.methodFromMethod(A.class.getMethod("foo")),
-            Reference.methodFromMethod(A.class.getMethod("bar")));
-    ImmutableSet<MethodReference> missingSet =
-        ImmutableSet.of(
+            Reference.methodFromMethod(A.class.getMethod("bar")),
             Reference.methodFromMethod(B.class.getMethod("baz")),
             Reference.methodFromMethod(B.class.getMethod("qux")));
     assertEquals(foundSet, consumer.seenMethods);
-    // TODO(b/226170842): Methods should not be missing.
-    assertEquals(missingSet, consumer.seenMissingMethods);
+    assertEquals(Collections.emptySet(), consumer.seenMissingMethods);
   }
 
   // A is added to both library and program, but the program one is missing the methods {foo,bar}