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));