Exempt android.arch.* from core package checks, as those packages, like android.support.*, can (only) appear in APKs and are therefore desugared.

PiperOrigin-RevId: 242179442
diff --git a/src/test/java/com/google/devtools/build/android/desugar/CorePackageRenamerTest.java b/src/test/java/com/google/devtools/build/android/desugar/CorePackageRenamerTest.java
index fc40459..b7a2a7b 100644
--- a/src/test/java/com/google/devtools/build/android/desugar/CorePackageRenamerTest.java
+++ b/src/test/java/com/google/devtools/build/android/desugar/CorePackageRenamerTest.java
@@ -14,6 +14,7 @@
 package com.google.devtools.build.android.desugar;
 
 import static com.google.common.truth.Truth.assertThat;
+import static org.junit.Assert.assertThrows;
 
 import com.google.common.collect.ImmutableList;
 import com.google.devtools.build.android.desugar.io.CoreLibraryRewriter;
@@ -65,6 +66,44 @@
     assertThat(out.mv.desc).isEqualTo("Lj$/time/Instant;");
   }
 
+  @Test
+  public void testCorePackageCheck() throws Exception {
+    MockClassVisitor out = new MockClassVisitor();
+    CorePackageRenamer renamer =
+        new CorePackageRenamer(
+            out,
+            new CoreLibrarySupport(
+                new CoreLibraryRewriter(""),
+                null,
+                ImmutableList.of("java/time/"),
+                ImmutableList.of(),
+                ImmutableList.of(),
+                ImmutableList.of()));
+    MethodVisitor mv = renamer.visitMethod(0, "test", "()V", null, null);
+
+    mv.visitMethodInsn(
+        Opcodes.INVOKESTATIC, "android/support/Instant", "now", "()Ljava/time/Instant;", false);
+    assertThat(out.mv.owner).isEqualTo("android/support/Instant");
+    assertThat(out.mv.desc).isEqualTo("()Lj$/time/Instant;");
+
+    mv.visitMethodInsn(
+        Opcodes.INVOKESTATIC, "android/arch/Instant", "now", "()Ljava/time/Instant;", false);
+    assertThat(out.mv.owner).isEqualTo("android/arch/Instant");
+    assertThat(out.mv.desc).isEqualTo("()Lj$/time/Instant;");
+
+    assertThrows(
+        IllegalStateException.class,
+        () -> {
+          mv.visitMethodInsn(
+              Opcodes.INVOKESTATIC, "android/time/Instant", "now", "()Ljava/time/Instant;", false);
+        });
+    assertThrows(
+        IllegalStateException.class,
+        () -> {
+          mv.visitFieldInsn(Opcodes.GETFIELD, "android/time/Instant", "now", "Ljava/time/Instant;");
+        });
+  }
+
   private static class MockClassVisitor extends ClassVisitor {
 
     final MockMethodVisitor mv = new MockMethodVisitor();
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/CorePackageRenamer.java b/src/tools/android/java/com/google/devtools/build/android/desugar/CorePackageRenamer.java
index ebe64dd..7119e2c 100644
--- a/src/tools/android/java/com/google/devtools/build/android/desugar/CorePackageRenamer.java
+++ b/src/tools/android/java/com/google/devtools/build/android/desugar/CorePackageRenamer.java
@@ -58,10 +58,17 @@
       remapper.didSomething = false;
       super.visitMethodInsn(opcode, owner, name, descriptor, isInterface);
       // TODO(b/79121791): Make this more precise: look for all unsupported core library members
-      checkState(!remapper.didSomething
-          || !owner.startsWith("android/") || owner.startsWith("android/support/"),
+      checkState(
+          !remapper.didSomething
+              || !owner.startsWith("android/")
+              || owner.startsWith("android/arch/")
+              || owner.startsWith("android/support/"),
           "%s calls %s.%s%s which is not supported with core library desugaring. Please file "
-              + "a feature request to support this method", internalName, owner, name, descriptor);
+              + "a feature request to support this method",
+          internalName,
+          owner,
+          name,
+          descriptor);
     }
 
     @Override
@@ -70,10 +77,17 @@
       remapper.didSomething = false;
       super.visitFieldInsn(opcode, owner, name, descriptor);
       // TODO(b/79121791): Make this more precise: look for all unsupported core library members
-      checkState(!remapper.didSomething
-              || !owner.startsWith("android/") || owner.startsWith("android/support/"),
+      checkState(
+          !remapper.didSomething
+              || !owner.startsWith("android/")
+              || owner.startsWith("android/arch/")
+              || owner.startsWith("android/support/"),
           "%s accesses %s.%s: %s which is not supported with core library desugaring. Please file "
-              + "a feature request to support this field", internalName, owner, name, descriptor);
+              + "a feature request to support this field",
+          internalName,
+          owner,
+          name,
+          descriptor);
     }
   }