R8 Nest desugaring synthetize nest constructor
Change-Id: I336ca57a7046119ae502dee5ab09826884ac89a1
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 47fe32e..624d6fe 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -430,7 +430,8 @@
if (options.enableNestBasedAccessDesugaring) {
timing.begin("NestBasedAccessDesugaring");
R8NestBasedAccessDesugaring analyzer = new R8NestBasedAccessDesugaring(appViewWithLiveness);
- boolean changed = appView.setGraphLense(analyzer.run(executorService));
+ boolean changed =
+ appView.setGraphLense(analyzer.run(executorService, application.builder()));
if (changed) {
appViewWithLiveness.setAppInfo(
appViewWithLiveness
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/R8NestBasedAccessDesugaring.java b/src/main/java/com/android/tools/r8/ir/desugar/R8NestBasedAccessDesugaring.java
index 1526505..72b7687 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/R8NestBasedAccessDesugaring.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/R8NestBasedAccessDesugaring.java
@@ -1,6 +1,7 @@
package com.android.tools.r8.ir.desugar;
import com.android.tools.r8.graph.AppView;
+import com.android.tools.r8.graph.DexApplication;
import com.android.tools.r8.graph.DexClass;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexField;
@@ -34,7 +35,8 @@
super(appView);
}
- public GraphLense run(ExecutorService executorService) throws ExecutionException {
+ public GraphLense run(ExecutorService executorService, DexApplication.Builder<?> appBuilder)
+ throws ExecutionException {
if (appView.options().canUseNestBasedAccess()) {
return appView.graphLense();
}
@@ -43,6 +45,7 @@
if (nothingToMap()) {
return appView.graphLense();
}
+ synthetizeNestConstructor(appBuilder);
return new NestedPrivateMethodLense(
appView,
getNestConstructorType(),