Remove methodsToProcess from GlobalSyntheticsGenerator
Fixes: b/391286119
Change-Id: I7b23a9973b2c1dee7ee5db8f3fb6ceb79b099bab
diff --git a/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java b/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
index 02eca77..f9fc6fe 100644
--- a/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
+++ b/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
@@ -31,11 +31,10 @@
import com.android.tools.r8.graph.GenericSignature.ClassSignature;
import com.android.tools.r8.graph.MethodCollection.MethodCollectionFactory;
import com.android.tools.r8.graph.NestHostClassAttribute;
-import com.android.tools.r8.graph.ProgramDefinition;
-import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.graph.ThrowExceptionCode;
import com.android.tools.r8.ir.conversion.PrimaryD8L8IRConverter;
import com.android.tools.r8.ir.desugar.TypeRewriter;
+import com.android.tools.r8.ir.desugar.records.RecordDesugaringEventConsumer;
import com.android.tools.r8.ir.desugar.records.RecordTagSynthesizer;
import com.android.tools.r8.ir.desugar.varhandle.VarHandleDesugaring;
import com.android.tools.r8.ir.desugar.varhandle.VarHandleDesugaringEventConsumer;
@@ -60,9 +59,7 @@
import com.android.tools.r8.utils.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.Collections;
-import java.util.List;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
@@ -180,26 +177,12 @@
Set<DexProgramClass> synthesizingContext =
ImmutableSet.of(createSynthesizingContext(appView.dexItemFactory()));
- List<ProgramMethod> methodsToProcess = new ArrayList<>();
// Add global synthetic class for records.
RecordTagSynthesizer.ensureRecordClassHelper(
- appView,
- synthesizingContext,
- recordTagClass -> recordTagClass.programMethods().forEach(methodsToProcess::add),
- null,
- null);
+ appView, synthesizingContext, RecordDesugaringEventConsumer.empty(), null, null);
VarHandleDesugaringEventConsumer varHandleEventConsumer =
- new VarHandleDesugaringEventConsumer() {
- @Override
- public void acceptVarHandleDesugaringClass(DexProgramClass clazz) {
- clazz.programMethods().forEach(methodsToProcess::add);
- }
-
- @Override
- public void acceptVarHandleDesugaringClassContext(
- DexProgramClass clazz, ProgramDefinition context) {}
- };
+ VarHandleDesugaringEventConsumer.empty();
// Add global synthetic class for var handles.
VarHandleDesugaring.ensureVarHandleClass(appView, varHandleEventConsumer, synthesizingContext);
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/records/RecordDesugaringEventConsumer.java b/src/main/java/com/android/tools/r8/ir/desugar/records/RecordDesugaringEventConsumer.java
index 469e0de..e5527cc 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/records/RecordDesugaringEventConsumer.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/records/RecordDesugaringEventConsumer.java
@@ -8,8 +8,18 @@
public interface RecordDesugaringEventConsumer {
+ RecordDesugaringEventConsumer EMPTY =
+ new RecordDesugaringEventConsumer() {
+ @Override
+ public void acceptRecordClass(DexProgramClass recordTagClass) {}
+ };
+
void acceptRecordClass(DexProgramClass recordTagClass);
+ static RecordDesugaringEventConsumer empty() {
+ return EMPTY;
+ }
+
interface RecordClassSynthesizerDesugaringEventConsumer extends RecordDesugaringEventConsumer {
void acceptRecordClassContext(DexProgramClass recordTagClass, DexProgramClass recordClass);
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/varhandle/VarHandleDesugaringEventConsumer.java b/src/main/java/com/android/tools/r8/ir/desugar/varhandle/VarHandleDesugaringEventConsumer.java
index d27e4d8..631cecb 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/varhandle/VarHandleDesugaringEventConsumer.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/varhandle/VarHandleDesugaringEventConsumer.java
@@ -8,7 +8,21 @@
public interface VarHandleDesugaringEventConsumer {
+ VarHandleDesugaringEventConsumer EMPTY =
+ new VarHandleDesugaringEventConsumer() {
+ @Override
+ public void acceptVarHandleDesugaringClass(DexProgramClass clazz) {}
+
+ @Override
+ public void acceptVarHandleDesugaringClassContext(
+ DexProgramClass clazz, ProgramDefinition context) {}
+ };
+
void acceptVarHandleDesugaringClass(DexProgramClass clazz);
void acceptVarHandleDesugaringClassContext(DexProgramClass clazz, ProgramDefinition context);
+
+ static VarHandleDesugaringEventConsumer empty() {
+ return EMPTY;
+ }
}