Revise renaming of Jvm*Signature in Kotlin function.

Bug: 70169921
Change-Id: I4c666549995fec8ad9fa23563301eb6f84c00181
diff --git a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataSynthesizer.java b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataSynthesizer.java
index 6e959b6..6ff14a3 100644
--- a/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataSynthesizer.java
+++ b/src/main/java/com/android/tools/r8/kotlin/KotlinMetadataSynthesizer.java
@@ -125,7 +125,7 @@
             ? method.getKotlinMemberInfo().flag
             : method.accessFlags.getAsKotlinFlags();
     KmFunction kmFunction = new KmFunction(flag, renamedMethod.name.toString());
-    JvmExtensionsKt.setSignature(kmFunction, toJvmMethodSignature(method.method));
+    JvmExtensionsKt.setSignature(kmFunction, toJvmMethodSignature(renamedMethod));
     KmType kmReturnType = toRenamedKmType(method.method.proto.returnType, appView, lens);
     if (kmReturnType == null) {
       return null;
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java
index f6649b7..eb98862 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/MetadataRewriteInFunctionTest.java
@@ -9,6 +9,7 @@
 import static com.android.tools.r8.utils.codeinspector.Matchers.isRenamed;
 import static org.hamcrest.CoreMatchers.not;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import com.android.tools.r8.TestParameters;
@@ -20,6 +21,7 @@
 import com.android.tools.r8.utils.codeinspector.KmClassSubject;
 import com.android.tools.r8.utils.codeinspector.KmFunctionSubject;
 import com.android.tools.r8.utils.codeinspector.KmPackageSubject;
+import com.android.tools.r8.utils.codeinspector.MethodSubject;
 import java.nio.file.Path;
 import java.util.Collection;
 import java.util.HashMap;
@@ -100,6 +102,7 @@
     ClassSubject impl = inspector.clazz(bClassName);
     assertThat(impl, isPresent());
     assertThat(impl, not(isRenamed()));
+
     // API entry is kept, hence the presence of Metadata.
     KmClassSubject kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
@@ -110,6 +113,7 @@
     ClassSubject bKt = inspector.clazz(bKtClassName);
     assertThat(bKt, isPresent());
     assertThat(bKt, not(isRenamed()));
+
     // API entry is kept, hence the presence of Metadata.
     KmPackageSubject kmPackage = bKt.getKmPackage();
     assertThat(kmPackage, isPresent());
@@ -128,7 +132,7 @@
             .addKeepRules("-keep class **.B")
             .addKeepRules("-keep class **.I { <methods>; }")
             // Keep Super, but allow minification.
-            .addKeepRules("-keep,allowobfuscation class **.Super")
+            .addKeepRules("-keep,allowobfuscation class **.Super { <methods>; }")
             // Keep the BKt method, which will be called from other kotlin code.
             .addKeepRules("-keep class **.BKt { <methods>; }")
             .addKeepAttributes(ProguardKeepAttributes.RUNTIME_VISIBLE_ANNOTATIONS)
@@ -158,11 +162,24 @@
     ClassSubject sup = inspector.clazz(superClassName);
     assertThat(sup, isRenamed());
 
+    MethodSubject foo = sup.uniqueMethodWithName("foo");
+    assertThat(foo, isRenamed());
+
+    KmClassSubject kmClass = sup.getKmClass();
+    assertThat(kmClass, isPresent());
+
+    // TODO(b/70169921): would be better to look up function with the original name, "foo".
+    KmFunctionSubject kmFunction = kmClass.kmFunctionWithUniqueName(foo.getFinalName());
+    assertThat(kmFunction, isPresent());
+    assertThat(kmFunction, not(isExtensionFunction()));
+    assertEquals(foo.getJvmMethodSignatureAsString(), kmFunction.signature().asString());
+
     ClassSubject impl = inspector.clazz(bClassName);
     assertThat(impl, isPresent());
     assertThat(impl, not(isRenamed()));
+
     // API entry is kept, hence the presence of Metadata.
-    KmClassSubject kmClass = impl.getKmClass();
+    kmClass = impl.getKmClass();
     assertThat(kmClass, isPresent());
     List<ClassSubject> superTypes = kmClass.getSuperTypes();
     assertTrue(superTypes.stream().noneMatch(
@@ -177,7 +194,7 @@
     KmPackageSubject kmPackage = bKt.getKmPackage();
     assertThat(kmPackage, isPresent());
 
-    KmFunctionSubject kmFunction = kmPackage.kmFunctionWithUniqueName("fun");
+    kmFunction = kmPackage.kmFunctionWithUniqueName("fun");
     assertThat(kmFunction, isPresent());
     assertThat(kmFunction, not(isExtensionFunction()));
   }
diff --git a/src/test/java/com/android/tools/r8/kotlin/metadata/function_lib/B.kt b/src/test/java/com/android/tools/r8/kotlin/metadata/function_lib/B.kt
index d327fda..41d286c 100644
--- a/src/test/java/com/android/tools/r8/kotlin/metadata/function_lib/B.kt
+++ b/src/test/java/com/android/tools/r8/kotlin/metadata/function_lib/B.kt
@@ -11,6 +11,10 @@
   override fun doStuff() {
     println("do stuff")
   }
+
+  fun foo() {
+    println("Super::foo")
+  }
 }
 
 class B : Super()
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/FoundKmDeclarationContainerSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundKmDeclarationContainerSubject.java
index b9fa99a..5b3338b 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/FoundKmDeclarationContainerSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/FoundKmDeclarationContainerSubject.java
@@ -80,6 +80,7 @@
     }
   }
 
+  // TODO(b/70169921): Search both original and renamed names.
   default KmFunctionSubject kmFunctionOrExtensionWithUniqueName(String name, boolean isExtension) {
     KmFunction foundFunction = null;
     for (KmFunction kmFunction : getKmDeclarationContainer().getFunctions()) {