Revert "Patch after merging CONSTANT_Dynamic changes from main"
This reverts commit ddcb6de9f4512905a9bb155f57a8d67a761749c5.
Change-Id: Ib1a28bf19407042c8812f36962a4b8c024ac8529
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 4b872d6..6bd38bb 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,6 +54,7 @@
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;
@@ -126,26 +127,11 @@
SingleResolutionResult result = resolution.asSingleResolution();
if (bootstrapMethodHandle.isInterface
&& appView.options().isInterfaceMethodDesugaringEnabled()) {
- // 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);
+ 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 cb02c82..a09ae6a 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,6 +102,11 @@
"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));