Desugared lib: Enable Outliner
Bug:145589480
Change-Id: I2f32d46df943e745aa9597ab27467e20f6a06531
diff --git a/src/main/java/com/android/tools/r8/L8.java b/src/main/java/com/android/tools/r8/L8.java
index d526f48..50ea501 100644
--- a/src/main/java/com/android/tools/r8/L8.java
+++ b/src/main/java/com/android/tools/r8/L8.java
@@ -89,10 +89,7 @@
desugar(app, options, executorService);
});
if (shrink) {
- InternalOptions r8Options = r8Command.getInternalOptions();
- // Disable outlining for R8 when called from L8.
- r8Options.outline.enabled = false;
- R8.runForTesting(r8Command.getInputApp(), r8Options);
+ R8.run(r8Command);
} else {
D8.run(d8Command, executorService);
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
index 3e9ecab..45be243 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
@@ -943,10 +943,18 @@
private DexType computeOutlineClassType() {
DexType result;
int count = 0;
+ String tempPrefix =
+ appView
+ .options()
+ .desugaredLibraryConfiguration
+ .getSynthesizedLibraryClassesPackagePrefix(appView);
+ String prefix = tempPrefix.replace('/', '.');
do {
- String name = OutlineOptions.CLASS_NAME + (count == 0 ? "" : Integer.toString(count));
+ String name =
+ prefix + OutlineOptions.CLASS_NAME + (count == 0 ? "" : Integer.toString(count));
count++;
result = appView.dexItemFactory().createType(DescriptorUtils.javaTypeToDescriptor(name));
+
} while (appView.definitionFor(result) != null);
return result;
}