[ApiModel] Remove special handling for platform
Change-Id: Iaea5a09322f6f114d455af3aa5c2aed7f66ec69c
diff --git a/src/main/java/com/android/tools/r8/androidapi/AndroidApiLevelCompute.java b/src/main/java/com/android/tools/r8/androidapi/AndroidApiLevelCompute.java
index 5a0bd81..60f5fe4 100644
--- a/src/main/java/com/android/tools/r8/androidapi/AndroidApiLevelCompute.java
+++ b/src/main/java/com/android/tools/r8/androidapi/AndroidApiLevelCompute.java
@@ -74,6 +74,9 @@
return new KnownApiLevel(options.getMinApiLevel());
}
+ // TODO(b/213552119): This should not be necessary if we have an api computation that returns min
+ // api if we have platform.
+ @Deprecated
public ComputedApiLevel getPlatformApiLevelOrUnknown(AppView<?> appView) {
if (appView.options().getMinApiLevel() == AndroidApiLevel.ANDROID_PLATFORM) {
return ComputedApiLevel.platform();
diff --git a/src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java b/src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
index 0a8b899..63ed0ca 100644
--- a/src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
+++ b/src/main/java/com/android/tools/r8/utils/AndroidApiLevelUtils.java
@@ -94,11 +94,9 @@
DexMethod original,
AndroidApiLevelCompute androidApiLevelCompute,
InternalOptions options) {
- // If we are not using the api database and we have the platform build, then we assume we are
- // running with boot class path as min api and all definitions are accessible at runtime.
if (!androidApiLevelCompute.isEnabled()) {
assert !options.apiModelingOptions().enableLibraryApiModeling;
- return options.isAndroidPlatformBuildOrMinApiPlatform();
+ return false;
}
assert options.apiModelingOptions().enableLibraryApiModeling;
ComputedApiLevel apiLevel =
@@ -117,10 +115,6 @@
}
public static boolean isApiSafeForReference(LibraryDefinition definition, AppView<?> appView) {
- if (appView.options().isAndroidPlatformBuildOrMinApiPlatform()) {
- assert definition != null;
- return true;
- }
return isApiSafeForReference(
definition, appView.apiLevelCompute(), appView.options(), appView.dexItemFactory());
}
@@ -130,7 +124,7 @@
AndroidApiLevelCompute androidApiLevelCompute,
InternalOptions options,
DexItemFactory factory) {
- if (!options.apiModelingOptions().enableApiCallerIdentification) {
+ if (!options.apiModelingOptions().isApiLibraryModelingEnabled()) {
return factory.libraryTypesAssumedToBePresent.contains(definition.getContextType());
}
ComputedApiLevel apiLevel =
@@ -141,7 +135,7 @@
private static boolean isApiSafeForReference(
LibraryDefinition newDefinition, LibraryDefinition oldDefinition, AppView<?> appView) {
- assert appView.options().apiModelingOptions().enableApiCallerIdentification;
+ assert appView.options().apiModelingOptions().isApiLibraryModelingEnabled();
assert !isApiSafeForReference(newDefinition, appView)
: "Clients should first check if the definition is present on all apis since the min api";
AndroidApiLevelCompute androidApiLevelCompute = appView.apiLevelCompute();
@@ -179,9 +173,9 @@
// Program and classpath classes are not api level dependent.
return true;
}
- if (!appView.options().apiModelingOptions().isApiCallerIdentificationEnabled()) {
+ if (!appView.options().apiModelingOptions().isApiLibraryModelingEnabled()) {
// Conservatively bail out if we don't have api modeling.
- return appView.options().isAndroidPlatformBuildOrMinApiPlatform();
+ return false;
}
LibraryClass newBaseLibraryClass = newBaseClass.asLibraryClass();
if (isApiSafeForReference(newBaseLibraryClass, 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 9ada479..c3ea9e2 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -274,7 +274,7 @@
public void configureAndroidPlatformBuild(boolean isAndroidPlatformBuild) {
assert !androidPlatformBuild;
- if (isAndroidPlatformBuildOrMinApiPlatform()) {
+ if (isAndroidPlatformBuild || minApiLevel.isPlatform()) {
apiModelingOptions().disableApiModeling();
}
if (!isAndroidPlatformBuild) {
@@ -290,10 +290,6 @@
return androidPlatformBuild;
}
- public boolean isAndroidPlatformBuildOrMinApiPlatform() {
- return androidPlatformBuild || minApiLevel.isPlatform();
- }
-
public boolean printTimes = System.getProperty("com.android.tools.r8.printtimes") != null;
// To print memory one also have to enable printtimes.
public boolean printMemory = System.getProperty("com.android.tools.r8.printmemory") != null;