Version 1.4.32

Cherry pick: Don't warn on missing desugared java8 methods
CL: https://r8-review.googlesource.com/c/r8/+/33324

Cherry pick: Fix restarting of internal tester
CL: https://r8-review.googlesource.com/c/r8/+/33323

Bug: 123242448
Change-Id: Ic7376e67abb64793d45540565100eb14f27267ec
diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index cf756ef..ec1ec47 100644
--- a/src/main/java/com/android/tools/r8/Version.java
+++ b/src/main/java/com/android/tools/r8/Version.java
@@ -11,7 +11,7 @@
 
   // This field is accessed from release scripts using simple pattern matching.
   // Therefore, changing this field could break our release scripts.
-  public static final String LABEL = "1.4.31";
+  public static final String LABEL = "1.4.32";
 
   private Version() {
   }
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java b/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
index 4e91c62..a9a571f 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/InterfaceMethodRewriter.java
@@ -151,6 +151,10 @@
           InvokeStatic invokeStatic = instruction.asInvokeStatic();
           DexMethod method = invokeStatic.getInvokedMethod();
           DexClass clazz = findDefinitionFor(method.holder);
+          if (Java8MethodRewriter.hasJava8MethodRewritePrefix(method.holder)) {
+            // We did not create this code yet, but it will not require rewriting.
+            continue;
+          }
           if (clazz == null) {
             // NOTE: leave unchanged those calls to undefined targets. This may lead to runtime
             // exception but we can not report it as error since it can also be the intended
diff --git a/src/test/java/com/android/tools/r8/desugar/Java8MethodsTest.java b/src/test/java/com/android/tools/r8/desugar/Java8MethodsTest.java
index 053ac5c..4d5ade8 100644
--- a/src/test/java/com/android/tools/r8/desugar/Java8MethodsTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/Java8MethodsTest.java
@@ -4,7 +4,6 @@
 
 package com.android.tools.r8.desugar;
 
-import com.android.tools.r8.D8TestCompileResult;
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.utils.AndroidApiLevel;
 import java.nio.file.Path;
@@ -34,29 +33,27 @@
     String jvmOutput = testForJvm()
         .addTestClasspath()
         .run(MergeRun.class).getStdOut();
-
     // See b/123242448
     Path zip1 = temp.newFile("first.zip").toPath();
     Path zip2 = temp.newFile("second.zip").toPath();
-    Path zip3 = temp.newFile("third.zip").toPath();
 
-    D8TestCompileResult result1 =
-        testForD8()
-            .setMinApi(AndroidApiLevel.L)
-            .addProgramClasses(MergeRun.class, MergeInputB.class)
-            .compile()
-            .writeToZip(zip1);
-    D8TestCompileResult result2 =
-        testForD8()
-            .setMinApi(AndroidApiLevel.L)
-            .addProgramClasses(MergeInputA.class)
-            .compile()
-            .writeToZip(zip2);
-
+    testForD8()
+        .setMinApi(AndroidApiLevel.L)
+        .addProgramClasses(MergeRun.class, MergeInputB.class)
+        .compile()
+        .assertNoMessages()
+        .writeToZip(zip1);
+    testForD8()
+        .setMinApi(AndroidApiLevel.L)
+        .addProgramClasses(MergeInputA.class)
+        .compile()
+        .assertNoMessages()
+        .writeToZip(zip2);
     testForD8()
         .addProgramFiles(zip1, zip2)
         .setMinApi(AndroidApiLevel.L)
         .compile()
+        .assertNoMessages()
         .run(MergeRun.class)
         .assertSuccessWithOutput(jvmOutput);
   }
diff --git a/tools/internal_test.py b/tools/internal_test.py
index 4713daf..8a99fbe 100755
--- a/tools/internal_test.py
+++ b/tools/internal_test.py
@@ -229,6 +229,10 @@
     if get_magic_file_exists(READY_FOR_TESTING):
       git_hash = get_magic_file_content(READY_FOR_TESTING)
       checked_out = git_checkout(git_hash)
+      # If the script changed, we need to restart now to get correct commands
+      # Note that we have not removed the READY_FOR_TESTING yet, so if we
+      # execv we will pick up the same version.
+      restart_if_new_version(own_content)
       # Sanity check, if this does not succeed stop.
       if checked_out != git_hash:
         log('Inconsistent state: %s %s' % (git_hash, checked_out))