Fix incorrect handling of library call in class inliner

Bug: b/423658598
Change-Id: I45b678e8d576647bb3c88bd3d1d9be7b9e9b7617
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
index 5365575..b84e744 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
@@ -538,16 +538,20 @@
             throw new IllegalClassInlinerStateException();
           }
 
-          ProgramMethod singleTarget =
-              dispatchTargetLookupResult
-                  .asSingleResult()
-                  .getSingleDispatchTarget()
-                  .asProgramMethod();
-          if (singleTarget == null || !indirectMethodCallsOnInstance.contains(singleTarget)) {
+          DexClassAndMethod singleTarget =
+              dispatchTargetLookupResult.asSingleResult().getSingleDispatchTarget();
+          if (singleTarget.isLibraryMethod()) {
+            // Library calls (e.g., calls to Object.getClass) are handled in removeMiscUsages.
+            continue;
+          }
+
+          ProgramMethod singleProgramTarget = singleTarget.asProgramMethod();
+          if (singleProgramTarget == null
+              || !indirectMethodCallsOnInstance.contains(singleProgramTarget)) {
             throw new IllegalClassInlinerStateException();
           }
 
-          methodCallsOnInstance.put(invoke, new InliningInfo(singleTarget, null));
+          methodCallsOnInstance.put(invoke, new InliningInfo(singleProgramTarget, null));
         }
       }
       currentUsers = indirectOutValueUsers;