Version 3.1.54

Patch after merging CONSTANT_Dynamic changes from main.

Bug: 210148618
Change-Id: Ica0885b06f91e46b3e1e616c0ee6a46caeac5624
diff --git a/src/main/java/com/android/tools/r8/Version.java b/src/main/java/com/android/tools/r8/Version.java
index d297f7d..051d964 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 = "3.1.53";
+  public static final String LABEL = "3.1.54";
 
   private Version() {
   }
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/constantdynamic/ConstantDynamicClass.java b/src/main/java/com/android/tools/r8/ir/desugar/constantdynamic/ConstantDynamicClass.java
index 6bd38bb..4b872d6 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/constantdynamic/ConstantDynamicClass.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/constantdynamic/ConstantDynamicClass.java
@@ -54,7 +54,6 @@
 import com.android.tools.r8.ir.code.ValueType;
 import com.android.tools.r8.ir.desugar.FreshLocalProvider;
 import com.android.tools.r8.ir.desugar.LocalStackAllocator;
-import com.android.tools.r8.ir.desugar.itf.InterfaceDesugaringSyntheticHelper;
 import com.android.tools.r8.ir.optimize.UtilityMethodsForCodeOptimizations;
 import com.android.tools.r8.ir.optimize.UtilityMethodsForCodeOptimizations.MethodSynthesizerConsumer;
 import com.android.tools.r8.ir.optimize.UtilityMethodsForCodeOptimizations.UtilityMethodForCodeOptimizations;
@@ -127,11 +126,26 @@
       SingleResolutionResult result = resolution.asSingleResolution();
       if (bootstrapMethodHandle.isInterface
           && appView.options().isInterfaceMethodDesugaringEnabled()) {
-        bootstrapMethodReference =
-            bootstrapMethodReference.withHolder(
-                InterfaceDesugaringSyntheticHelper.getCompanionClassType(
-                    bootstrapMethodReference.getHolderType(), factory),
-                factory);
+        // The code below is commented out when merged to the 3.1 branch, as
+        //
+        // commit 4831b55933564ba346c5b87c9d13320d2bb3b203
+        // Author: Ian Zerny <zerny@google.com>
+        // Date:   Thu Sep 23 13:59:53 2021 +0200
+        //
+        // Process interface methods per-method during conversion.
+        //
+        // Bug: 199134556
+        // Change-Id: Ia83148354aec5431aaf2b653cb9334fcf3f0cee0
+        //
+        // did not land on 3.1. Therefore, the default interface method is still
+        // present in its original place during conversion. The move to the
+        // companion class happens later.
+        //
+        // bootstrapMethodReference =
+        //     bootstrapMethodReference.withHolder(
+        //         InterfaceDesugaringSyntheticHelper.getCompanionClassType(
+        //             bootstrapMethodReference.getHolderType(), factory),
+        //         factory);
         isFinalBootstrapMethodReferenceOnInterface = false;
       } else {
         assert bootstrapMethodReference.getHolderType() == resolution.getResolvedHolder().getType();
diff --git a/src/test/java/com/android/tools/r8/desugar/constantdynamic/ConstantDynamicInDefaultInterfaceMethodTest.java b/src/test/java/com/android/tools/r8/desugar/constantdynamic/ConstantDynamicInDefaultInterfaceMethodTest.java
index a09ae6a..cb02c82 100644
--- a/src/test/java/com/android/tools/r8/desugar/constantdynamic/ConstantDynamicInDefaultInterfaceMethodTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/constantdynamic/ConstantDynamicInDefaultInterfaceMethodTest.java
@@ -102,11 +102,6 @@
                                         "Unsupported dynamic constant (not desugaring)")));
                           }));
             },
-            // TODO(b/210485236): This should not fail for R8.
-            !parameters.canUseDefaultAndStaticInterfaceMethodsWhenDesugaring(),
-            b ->
-                b.run(parameters.getRuntime(), MAIN_CLASS)
-                    .assertFailureWithErrorThatThrows(NoSuchMethodError.class),
             b ->
                 b.run(parameters.getRuntime(), MAIN_CLASS)
                     .assertSuccessWithOutput(EXPECTED_OUTPUT));