[ApiModel] Allow stubbing of classes if directly set by property
Bug: b/259076765
Change-Id: I95a5fc6532603e028a301b76cb98879d1caf2d37
diff --git a/src/main/java/com/android/tools/r8/androidapi/ApiReferenceStubber.java b/src/main/java/com/android/tools/r8/androidapi/ApiReferenceStubber.java
index 4649132..4864e0b 100644
--- a/src/main/java/com/android/tools/r8/androidapi/ApiReferenceStubber.java
+++ b/src/main/java/com/android/tools/r8/androidapi/ApiReferenceStubber.java
@@ -233,7 +233,8 @@
// We cannot reliably create a stub that will have the same throwing
// behavior for all VMs. We only create stubs for exceptions to allow them being present in
// catch handlers. See b/b/258270051 for more information.
- if (!isThrowable(libraryClass)) {
+ if (!isThrowable(libraryClass)
+ || appView.options().apiModelingOptions().stubNonThrowableClasses) {
return;
}
if (appView
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 98d5a27..09641c3 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -1805,6 +1805,9 @@
System.getProperty("com.android.tools.r8.disableApiModeling") == null;
public boolean reportUnknownApiReferences =
System.getProperty("com.android.tools.r8.reportUnknownApiReferences") != null;
+ // TODO(b/259076765): Remove when resolved.
+ public boolean stubNonThrowableClasses =
+ System.getProperty("com.android.tools.r8.stubNonThrowableClasses") != null;
// TODO(b/232823652): Enable when we can compute the offset correctly.
public boolean useMemoryMappedByteBuffer = false;