Fix wrong LambdaMethodAnnotations

Use the original implementation method as the method for the annotation.

Bug: b/417709154
Change-Id: I50810dedd739092be3a08fa9a00fff68bae83de0
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
index ab3652f..5734a3e 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
@@ -640,13 +640,15 @@
               new DexAnnotationElement[] {
                 new DexAnnotationElement(
                     factory.createString("holder"),
-                    new DexValueString(callTarget.getHolderType().descriptor)),
+                    new DexValueString(getImplementationMethod().getHolderType().descriptor)),
                 new DexAnnotationElement(
-                    factory.createString("method"), new DexValueString(callTarget.getName())),
+                    factory.createString("method"),
+                    new DexValueString(getImplementationMethod().getName())),
                 new DexAnnotationElement(
                     factory.createString("proto"),
                     new DexValueString(
-                        factory.createString(callTarget.getProto().toDescriptorString())))
+                        factory.createString(
+                            getImplementationMethod().getProto().toDescriptorString())))
               }));
     }
   }
diff --git a/src/test/java/com/android/tools/r8/desugar/lambdas/LambdaCallTargetAnnotationTest.java b/src/test/java/com/android/tools/r8/desugar/lambdas/LambdaCallTargetAnnotationTest.java
index 6c6aa65..a4b9d3c 100644
--- a/src/test/java/com/android/tools/r8/desugar/lambdas/LambdaCallTargetAnnotationTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/lambdas/LambdaCallTargetAnnotationTest.java
@@ -48,21 +48,7 @@
     assertEquals(name, encodedAnnotation.getElement(index).getName().toString());
     DexValue elementValue = encodedAnnotation.getElement(index).getValue();
     assertTrue(elementValue.isDexValueString());
-    if (!forceLambdaAccessor) {
-      assertEquals(value, elementValue.asDexValueString().getValue().toString());
-    } else {
-      // Only check method names for reproduction of wrong annotation values.
-      if (!name.equals("method")) {
-        return;
-      }
-      if (value.equals("methodReturningJ")
-          || value.equals("methodReturningI")
-          || value.equals("<init>")) {
-        assertTrue(elementValue.asDexValueString().getValue().toString().startsWith("$r8$lambda"));
-      } else {
-        assertEquals(value, elementValue.asDexValueString().getValue().toString());
-      }
-    }
+    assertEquals(value, elementValue.asDexValueString().getValue().toString());
   }
 
   private void checkAnnotation(