[ApiModel] Only outline methods with known api level

Bug: 216297604
Change-Id: I5667e933fde943fa2333e3bfd5f2d5c52582662e
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/apimodel/ApiInvokeOutlinerDesugaring.java b/src/main/java/com/android/tools/r8/ir/desugar/apimodel/ApiInvokeOutlinerDesugaring.java
index fc60cb9..cd3a6b1 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/apimodel/ApiInvokeOutlinerDesugaring.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/apimodel/ApiInvokeOutlinerDesugaring.java
@@ -103,7 +103,8 @@
         apiLevelCompute.computeApiLevelForLibraryReference(
             cfInvoke.getMethod(), ComputedApiLevel.unknown());
     if (appView.computedMinApiLevel().isGreaterThanOrEqualTo(methodApiLevel)
-        || isApiLevelLessThanOrEqualTo9(methodApiLevel)) {
+        || isApiLevelLessThanOrEqualTo9(methodApiLevel)
+        || methodApiLevel.isUnknownApiLevel()) {
       return appView.computedMinApiLevel();
     }
     // Compute the api level of the holder to see if the method will be stubbed.
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java
index 8531ceb..7e6d2a5 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodMissingClassTest.java
@@ -97,8 +97,10 @@
         .inspect(
             inspector -> {
               // No need to check further on CF.
+              // TODO(b/216314378): If this changes then we will have more classes here at some
+              //  point.
+              assertEquals(3, inspector.allClasses().size());
               if (parameters.isCfRuntime()) {
-                assertEquals(3, inspector.allClasses().size());
                 return;
               }
               Method testMethod = TestClass.class.getDeclaredMethod("test");
@@ -115,13 +117,13 @@
                       .findFirst();
               assertFalse(synthesizedMissingNotReferenced.isPresent());
               verifyThat(inspector, parameters, addedOn23).isNotOutlinedFrom(testMethod);
-              verifyThat(inspector, parameters, addedOn27)
-                  .isOutlinedFromUntil(testMethod, AndroidApiLevel.O_MR1);
+              // TODO(b/216314378): We should consider if addedOn27 should not be inlined again.
+              verifyThat(inspector, parameters, addedOn27).isNotOutlinedFrom(testMethod);
               verifyThat(
                       inspector,
                       parameters,
                       LibraryClass.class.getDeclaredMethod("missingAndReferenced"))
-                  .isOutlinedFrom(testMethod);
+                  .isNotOutlinedFrom(testMethod);
               if (parameters.getApiLevel().isLessThan(AndroidApiLevel.O_MR1)) {
                 assertEquals(5, inspector.allClasses().size());
               } else {
diff --git a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodUnknownTest.java b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodUnknownTest.java
index f7e25c6..f8b3bf7 100644
--- a/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodUnknownTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/ApiModelOutlineMethodUnknownTest.java
@@ -14,7 +14,6 @@
 import com.android.tools.r8.ToolHelper.DexVm.Version;
 import com.android.tools.r8.testing.AndroidBuildVersion;
 import com.android.tools.r8.utils.AndroidApiLevel;
-import com.android.tools.r8.utils.BooleanUtils;
 import com.android.tools.r8.utils.codeinspector.FoundClassSubject;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -55,9 +54,8 @@
         .inspect(
             inspector -> {
               // Assert that we did not outline any methods.
-              // TODO(b/216297604): Ensure we do not outline.
               assertEquals(
-                  BooleanUtils.intValue(parameters.isDexRuntime()),
+                  0,
                   inspector.allClasses().stream()
                       .filter(FoundClassSubject::isCompilerSynthesized)
                       .count());