Reorder arguments to the desugar graph consumer.
Bug: 138988172
Change-Id: I6ebd85eb05cd7c0c326179c64668646410c6e034
diff --git a/src/main/java/com/android/tools/r8/DesugarGraphConsumer.java b/src/main/java/com/android/tools/r8/DesugarGraphConsumer.java
index f771dd5..d75b2b0 100644
--- a/src/main/java/com/android/tools/r8/DesugarGraphConsumer.java
+++ b/src/main/java/com/android/tools/r8/DesugarGraphConsumer.java
@@ -10,17 +10,15 @@
public interface DesugarGraphConsumer {
/**
- * Callback indicating that code originating from {@code src} was used to correctly desugar some
- * code originating from {@code dst}.
- *
- * <p>In other words, {@code src} is a dependency for the desugaring of {@code dst}.
+ * Callback indicating that code originating from {@code dependency} is needed to correctly
+ * desugar code originating from {@code dependent}.
*
* <p>Note: this callback may be called on multiple threads.
*
* <p>Note: this callback places no guarantees on order of calls or on duplicate calls.
*
- * @param src Origin of some code input that is needed to desugar {@code dst}.
- * @param dst Origin of some code that was dependent on code in {@code src}.
+ * @param dependent Origin of code that is dependent on code in {@code dependency}.
+ * @param dependency Origin of code that is a dependency to compile {@code dependent}.
*/
- void accept(Origin src, Origin dst);
+ void accept(Origin dependent, Origin dependency);
}
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java b/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java
index dd95b28..6fb1c27 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/ClassProcessor.java
@@ -144,7 +144,7 @@
// If the direct subclass is in the compilation unit, report its dependencies.
if (clazz != directSubClass && directSubClass.isProgramClass()) {
InterfaceMethodRewriter.reportDependencyEdge(
- clazz, directSubClass.asProgramClass(), appView);
+ directSubClass.asProgramClass(), clazz, appView);
}
}
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 a43d321..795755e 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
@@ -1115,7 +1115,7 @@
// At this point we likely have a non-library type that may depend on default method information
// from its interfaces and the dependency should be reported.
if (!definedInterface.isLibraryClass()) {
- reportDependencyEdge(definedInterface, implementing, appView);
+ reportDependencyEdge(implementing, definedInterface, appView);
}
// Merge information from all superinterfaces.
@@ -1139,13 +1139,13 @@
}
public static void reportDependencyEdge(
- DexClass dependency, DexClass dependent, AppView<?> appView) {
+ DexClass dependent, DexClass dependency, AppView<?> appView) {
DesugarGraphConsumer consumer = appView.options().desugarGraphConsumer;
if (consumer != null) {
- Origin dependencyOrigin = dependency.getOrigin();
Origin dependentOrigin = dependent.getOrigin();
- if (dependencyOrigin != dependentOrigin) {
- consumer.accept(dependencyOrigin, dependentOrigin);
+ Origin dependencyOrigin = dependency.getOrigin();
+ if (dependentOrigin != dependencyOrigin) {
+ consumer.accept(dependentOrigin, dependencyOrigin);
}
}
}
diff --git a/src/test/java/com/android/tools/r8/desugar/graph/InterfaceToImplementingClassDependencyTest.java b/src/test/java/com/android/tools/r8/desugar/graph/InterfaceToImplementingClassDependencyTest.java
index 703a237..64044e6 100644
--- a/src/test/java/com/android/tools/r8/desugar/graph/InterfaceToImplementingClassDependencyTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/graph/InterfaceToImplementingClassDependencyTest.java
@@ -111,8 +111,8 @@
Map<Origin, Set<Origin>> edges = new HashMap<>();
@Override
- public synchronized void accept(Origin src, Origin dst) {
- edges.computeIfAbsent(src, s -> new HashSet<>()).add(dst);
+ public synchronized void accept(Origin dependent, Origin dependency) {
+ edges.computeIfAbsent(dependency, s -> new HashSet<>()).add(dependent);
}
}
}