[KeepAnno] Disallow 'void' in type patterns and update test

Bug: b/248408342
Change-Id: I2664e647f47cbaf551d424191bd653f46187787b
diff --git a/src/keepanno/java/com/android/tools/r8/keepanno/asm/KeepEdgeReaderUtils.java b/src/keepanno/java/com/android/tools/r8/keepanno/asm/KeepEdgeReaderUtils.java
index 78eddd6..6757c60 100644
--- a/src/keepanno/java/com/android/tools/r8/keepanno/asm/KeepEdgeReaderUtils.java
+++ b/src/keepanno/java/com/android/tools/r8/keepanno/asm/KeepEdgeReaderUtils.java
@@ -63,9 +63,6 @@
 
   public static KeepTypePattern typePatternFromString(
       String string, PropertyParsingContext property) {
-    if (string.equals("<any>")) {
-      return KeepTypePattern.any();
-    }
     return KeepTypePattern.fromDescriptor(internalDescriptorFromJavaType(string, property::error));
   }
 
@@ -92,6 +89,8 @@
         return "F";
       case "double":
         return "D";
+      case "void":
+        return "V";
       default:
         {
           StringBuilder builder = new StringBuilder(type.length());
diff --git a/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcherPredicates.java b/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcherPredicates.java
index 0563128..b4ff8b8 100644
--- a/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcherPredicates.java
+++ b/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcherPredicates.java
@@ -252,8 +252,8 @@
     if (returnTypePattern.isAny()) {
       return true;
     }
-    if (returnTypePattern.isVoid() && returnType.isVoidType()) {
-      return true;
+    if (returnTypePattern.isVoid()) {
+      return returnType.isVoidType();
     }
     return matchesType(returnType, returnTypePattern.asType());
   }
diff --git a/src/test/java/com/android/tools/r8/keepanno/MethodPatternsTest.java b/src/test/java/com/android/tools/r8/keepanno/MethodPatternsTest.java
index 7654721..8f3d5f3 100644
--- a/src/test/java/com/android/tools/r8/keepanno/MethodPatternsTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/MethodPatternsTest.java
@@ -41,6 +41,7 @@
   @Test
   public void test() throws Exception {
     testForKeepAnno(parameters)
+        .enableNativeInterpretation()
         .addProgramClasses(getInputClasses())
         .setExcludedOuterClass(getClass())
         .run(TestClass.class)
@@ -74,7 +75,7 @@
       @KeepTarget(
           classConstant = B.class,
           methodName = "bar",
-          methodReturnTypePattern = @TypePattern(name = "void"),
+          methodReturnTypePattern = @TypePattern(),
           methodParameterTypePatterns = {@TypePattern(constant = int.class)}),
       @KeepTarget(
           classConstant = B.class,