Fix AbstractMethodError from experimental injection of super classes

Bug: b/309575527
Change-Id: I48a0aacb02f9032fbabad95b8b99491a663e68d7
diff --git a/src/main/java/com/android/tools/r8/optimize/BridgeHoistingToSharedSyntheticSuperClass.java b/src/main/java/com/android/tools/r8/optimize/BridgeHoistingToSharedSyntheticSuperClass.java
index dd9b315..50dfefc 100644
--- a/src/main/java/com/android/tools/r8/optimize/BridgeHoistingToSharedSyntheticSuperClass.java
+++ b/src/main/java/com/android/tools/r8/optimize/BridgeHoistingToSharedSyntheticSuperClass.java
@@ -146,13 +146,24 @@
         method -> {
           IRCode code = method.buildIR(appView, MethodConversionOptions.nonConverting());
           BridgeInfo bridgeInfo = BridgeAnalyzer.analyzeMethod(method.getDefinition(), code);
-          if (bridgeInfo != null) {
-            getSimpleFeedback().setBridgeInfo(method, bridgeInfo);
-            if (bridgeInfo.isVirtualBridgeInfo()) {
-              bridgeSpecification.addBridge(
-                  method.getMethodSignature(), bridgeInfo.asVirtualBridgeInfo());
-            }
+          if (bridgeInfo == null) {
+            return;
           }
+          getSimpleFeedback().setBridgeInfo(method, bridgeInfo);
+          if (!bridgeInfo.isVirtualBridgeInfo()) {
+            return;
+          }
+          VirtualBridgeInfo virtualBridgeInfo = bridgeInfo.asVirtualBridgeInfo();
+          boolean isInvokedMethodPresentOnSuper =
+              appView
+                  .appInfo()
+                  .resolveMethodOnClass(clazz.getSuperType(), virtualBridgeInfo.getInvokedMethod())
+                  .isSingleResolution();
+          if (isInvokedMethodPresentOnSuper) {
+            // No need to insert a method on a synthetic super class in this case.
+            return;
+          }
+          bridgeSpecification.addBridge(method.getMethodSignature(), virtualBridgeInfo);
         });
     return bridgeSpecification;
   }