Fix incorrect R8 warning

Fixes: b/433451526
Change-Id: Icd6ee24c184ec2c79bb5c9c611687b458ff565a7
diff --git a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
index 78cec87..584e8cd 100644
--- a/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
+++ b/src/main/java/com/android/tools/r8/shaking/ProguardConfigurationParser.java
@@ -2330,7 +2330,9 @@
         }
         // Check that start/end angles are matched, and *only* used for well-formed wildcard
         // backreferences (e.g. '<1>', but not '<<1>>', '<<*>>' or '>1<').
-        return !(angleStartCount == angleEndCount && angleStartCount == wildcards.size());
+        long backreferenceCount =
+            wildcards.stream().filter(ProguardWildcard::isBackReference).count();
+        return !(angleStartCount == angleEndCount && angleStartCount == backreferenceCount);
       }
       return false;
     }
diff --git a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
index fbcdad8..7c0c5f9 100644
--- a/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/ProguardConfigurationParserTest.java
@@ -2368,8 +2368,7 @@
     ProguardConfigurationParser parser =
         new ProguardConfigurationParser(new DexItemFactory(), reporter);
     parser.parse(proguardConfig);
-    assertEquals(1, handler.warnings.size());
-    checkDiagnostics(handler.warnings, 0, proguardConfig, 3, 10, "The type \"<1>$*\" is");
+    assertEquals(0, handler.warnings.size());
   }
 
   private void checkRulesSourceSnippet(List<String> sourceRules) {