Make R8 constructor private
Bug:
Change-Id: I1d8e58a5a900176e7c9612cce09ea7502c06c3bc
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 8fa9543..59684de 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -65,8 +65,7 @@
private final Timing timing = new Timing("R8");
private final InternalOptions options;
- // TODO(zerny): Refactor tests to go through testing methods and make this private.
- public R8(InternalOptions options) {
+ private R8(InternalOptions options) {
this.options = options;
options.itemFactory.resetSortedIndices();
}
@@ -88,14 +87,25 @@
}
}
- public DexApplication optimize(DexApplication application, AppInfoWithSubtyping appInfo)
+ static DexApplication optimize(
+ DexApplication application,
+ AppInfoWithSubtyping appInfo,
+ InternalOptions options)
+ throws ProguardRuleParserException, ExecutionException, IOException {
+ return new R8(options).optimize(application, appInfo);
+ }
+
+ private DexApplication optimize(DexApplication application, AppInfoWithSubtyping appInfo)
throws IOException, ProguardRuleParserException, ExecutionException {
return optimize(application, appInfo, GraphLense.getIdentityLense(),
Executors.newSingleThreadExecutor());
}
- public DexApplication optimize(DexApplication application, AppInfoWithSubtyping appInfo,
- GraphLense graphLense, ExecutorService executorService)
+ private DexApplication optimize(
+ DexApplication application,
+ AppInfoWithSubtyping appInfo,
+ GraphLense graphLense,
+ ExecutorService executorService)
throws IOException, ProguardRuleParserException, ExecutionException {
final CfgPrinter printer = options.printCfg ? new CfgPrinter() : null;
@@ -181,7 +191,7 @@
}
}
- static CompilationResult runForTesting(
+ private static CompilationResult runForTesting(
AndroidApp app,
InternalOptions options,
ExecutorService executor)
diff --git a/src/test/java/com/android/tools/r8/ToolHelper.java b/src/test/java/com/android/tools/r8/ToolHelper.java
index e01ecc0..55ed342 100644
--- a/src/test/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/java/com/android/tools/r8/ToolHelper.java
@@ -9,6 +9,7 @@
import com.android.tools.r8.dex.ApplicationReader;
import com.android.tools.r8.dex.Constants;
+import com.android.tools.r8.graph.AppInfoWithSubtyping;
import com.android.tools.r8.graph.DexApplication;
import com.android.tools.r8.shaking.ProguardRuleParserException;
import com.android.tools.r8.utils.AndroidApp;
@@ -487,6 +488,14 @@
.build());
}
+ public static DexApplication optimizeWithR8(
+ DexApplication application,
+ AppInfoWithSubtyping appInfo,
+ InternalOptions options)
+ throws ProguardRuleParserException, ExecutionException, IOException {
+ return R8.optimize(application, appInfo, options);
+ }
+
public static AndroidApp runD8(AndroidApp app) throws CompilationException, IOException {
return runD8(app, null);
}
diff --git a/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java b/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java
index 6ceb912..574bdab 100644
--- a/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java
+++ b/src/test/java/com/android/tools/r8/jasmin/JasminTestBase.java
@@ -131,6 +131,6 @@
protected static DexApplication process(DexApplication app, InternalOptions options)
throws IOException, ProguardRuleParserException, ExecutionException {
- return new R8(options).optimize(app, new AppInfoWithSubtyping(app));
+ return ToolHelper.optimizeWithR8(app, new AppInfoWithSubtyping(app), options);
}
}
diff --git a/src/test/java/com/android/tools/r8/smali/SmaliTestBase.java b/src/test/java/com/android/tools/r8/smali/SmaliTestBase.java
index 71ee09f..95c7964 100644
--- a/src/test/java/com/android/tools/r8/smali/SmaliTestBase.java
+++ b/src/test/java/com/android/tools/r8/smali/SmaliTestBase.java
@@ -385,8 +385,7 @@
protected DexApplication processApplication(DexApplication application, InternalOptions options) {
try {
- R8 r8 = new R8(options);
- return r8.optimize(application, new AppInfoWithSubtyping(application));
+ return ToolHelper.optimizeWithR8(application, new AppInfoWithSubtyping(application), options);
} catch (IOException | ProguardRuleParserException | ExecutionException e) {
throw new RuntimeException(e);
}
diff --git a/src/test/java/com/android/tools/r8/smali/SwitchRewritingTest.java b/src/test/java/com/android/tools/r8/smali/SwitchRewritingTest.java
index e49ea84..f10add0 100644
--- a/src/test/java/com/android/tools/r8/smali/SwitchRewritingTest.java
+++ b/src/test/java/com/android/tools/r8/smali/SwitchRewritingTest.java
@@ -8,6 +8,7 @@
import static org.junit.Assert.assertTrue;
import com.android.tools.r8.R8;
+import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.code.Const;
import com.android.tools.r8.code.Const4;
import com.android.tools.r8.code.ConstHigh16;
@@ -284,7 +285,7 @@
" return");
DexApplication app = builder.read();
- app = new R8(new InternalOptions()).optimize(app, new AppInfoWithSubtyping(app));
+ app = ToolHelper.optimizeWithR8(app, new AppInfoWithSubtyping(app), new InternalOptions());
MethodSignature signature = new MethodSignature("Test", "test", "int", ImmutableList.of("int"));
DexEncodedMethod method = getMethod(app, signature);
@@ -344,7 +345,7 @@
" return");
DexApplication app = builder.read();
- app = new R8(new InternalOptions()).optimize(app, new AppInfoWithSubtyping(app));
+ app = ToolHelper.optimizeWithR8(app, new AppInfoWithSubtyping(app), new InternalOptions());
MethodSignature signature = new MethodSignature("Test", "test", "int", ImmutableList.of("int"));
DexEncodedMethod method = getMethod(app, signature);
@@ -417,7 +418,7 @@
" return");
DexApplication app = builder.read();
- app = new R8(new InternalOptions()).optimize(app, new AppInfoWithSubtyping(app));
+ app = ToolHelper.optimizeWithR8(app, new AppInfoWithSubtyping(app), new InternalOptions());
MethodSignature signature = new MethodSignature("Test", "test", "int", ImmutableList.of("int"));
DexEncodedMethod method = getMethod(app, signature);