Add latest api level support

- The dex version used for an api version greater than the last known will
be the version of the latest Android released.

Change-Id: Ieb57eb102efbcc200840f55f7ef0fc8b4d89f67e
diff --git a/src/main/java/com/android/tools/r8/utils/AndroidApiLevel.java b/src/main/java/com/android/tools/r8/utils/AndroidApiLevel.java
index b1bdfde..47bd02e 100644
--- a/src/main/java/com/android/tools/r8/utils/AndroidApiLevel.java
+++ b/src/main/java/com/android/tools/r8/utils/AndroidApiLevel.java
@@ -9,6 +9,7 @@
  * Android API level description
  */
 public enum AndroidApiLevel {
+  LATEST(-1),
   P(27),
   O(26),
   N_MR1(25),
@@ -76,6 +77,9 @@
 
   public static AndroidApiLevel getAndroidApiLevel(int apiLevel) {
     switch (apiLevel) {
+      case 0:
+        // 0 is not supported, it should not happen
+        throw new Unreachable();
       case 1:
         return B;
       case 2:
@@ -131,7 +135,7 @@
       case 27:
         return P;
       default:
-        throw new Unreachable();
+        return LATEST;
     }
   }
 }
diff --git a/src/main/java/com/android/tools/r8/utils/DexVersion.java b/src/main/java/com/android/tools/r8/utils/DexVersion.java
index e45a0dc..c9fa818 100644
--- a/src/main/java/com/android/tools/r8/utils/DexVersion.java
+++ b/src/main/java/com/android/tools/r8/utils/DexVersion.java
@@ -50,6 +50,7 @@
     switch (androidApiLevel) {
       case P:
         return DexVersion.V39;
+      case LATEST:
       case O:
         return DexVersion.V38;
       case N_MR1: