Revert "[KeepAnno] Support native instance-of patterns"

Revert submission 89581

Reason for revert: Broke build, threading module when missing.

Reverted changes: /q/submissionid:89581

Change-Id: I8b19f87d4b0fd713500baa0b161139f9e91fc20c
diff --git a/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcher.java b/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcher.java
index 13b1b4f..0d7e1b2 100644
--- a/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcher.java
+++ b/src/main/java/com/android/tools/r8/shaking/rules/KeepAnnotationMatcher.java
@@ -249,7 +249,7 @@
           // No valid match, so the rule is discarded. This should likely be a diagnostics info.
           return;
         }
-        if (!predicates.matchesClass(clazz, classPattern, appInfo)) {
+        if (!predicates.matchesClass(clazz, classPattern)) {
           // Invalid match for this class.
           return;
         }
@@ -257,7 +257,7 @@
       } else {
         // TODO(b/323816623): This repeated iteration on all classes must be avoided.
         for (DexProgramClass clazz : appInfo.classes()) {
-          if (predicates.matchesClass(clazz, classPattern, appInfo)) {
+          if (predicates.matchesClass(clazz, classPattern)) {
             continueWithClass(classIndex, clazz);
           }
         }
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 05cd43c..364a17f 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
@@ -6,7 +6,6 @@
 
 import com.android.tools.r8.errors.Unimplemented;
 import com.android.tools.r8.graph.AccessFlags;
-import com.android.tools.r8.graph.AppInfoWithClassHierarchy;
 import com.android.tools.r8.graph.DexAnnotation;
 import com.android.tools.r8.graph.DexAnnotationSet;
 import com.android.tools.r8.graph.DexEncodedField;
@@ -39,7 +38,6 @@
 import com.android.tools.r8.keepanno.ast.KeepUnqualfiedClassNamePattern;
 import com.android.tools.r8.keepanno.ast.ModifierPattern;
 import com.android.tools.r8.keepanno.ast.OptionalPattern;
-import com.android.tools.r8.utils.TraversalContinuation;
 import java.util.List;
 
 public class KeepAnnotationMatcherPredicates {
@@ -50,11 +48,10 @@
     this.factory = factory;
   }
 
-  public boolean matchesClass(
-      DexProgramClass clazz, KeepClassItemPattern classPattern, AppInfoWithClassHierarchy appInfo) {
+  public boolean matchesClass(DexProgramClass clazz, KeepClassItemPattern classPattern) {
     return matchesClassName(clazz.getType(), classPattern.getClassNamePattern())
-        && matchesAnnotatedBy(clazz.annotations(), classPattern.getAnnotatedByPattern())
-        && matchesInstanceOfPattern(clazz, classPattern.getInstanceOfPattern(), appInfo);
+        && matchesInstanceOfPattern(clazz, classPattern.getInstanceOfPattern())
+        && matchesAnnotatedBy(clazz.annotations(), classPattern.getAnnotatedByPattern());
   }
 
   public boolean matchesClassName(DexType type, KeepQualifiedClassNamePattern pattern) {
@@ -86,25 +83,11 @@
   }
 
   private boolean matchesInstanceOfPattern(
-      DexProgramClass clazz, KeepInstanceOfPattern pattern, AppInfoWithClassHierarchy appInfo) {
+      DexProgramClass unusedClazz, KeepInstanceOfPattern pattern) {
     if (pattern.isAny()) {
       return true;
     }
-    if (pattern.isInclusive()) {
-      if (matchesClassName(clazz.getType(), pattern.getClassNamePattern())) {
-        return true;
-      }
-    }
-    return appInfo
-        .traverseSuperTypes(
-            clazz,
-            (superType, unusedSubClass, unusedIsInterface) -> {
-              if (matchesClassName(superType, pattern.getClassNamePattern())) {
-                return TraversalContinuation.doBreak();
-              }
-              return TraversalContinuation.doContinue();
-            })
-        .isBreak();
+    throw new Unimplemented();
   }
 
   public boolean matchesGeneralMember(DexEncodedMember<?, ?> member, KeepMemberPattern pattern) {
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepInclusiveInstanceOfTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepInclusiveInstanceOfTest.java
index 6643f76..85809df 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepInclusiveInstanceOfTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepInclusiveInstanceOfTest.java
@@ -30,7 +30,6 @@
   @Test
   public void test() throws Exception {
     testForKeepAnno(parameters)
-        .enableNativeInterpretation()
         .addProgramClasses(getInputClasses())
         .addKeepMainRule(TestClass.class)
         .setExcludedOuterClass(getClass())
diff --git a/src/test/java/com/android/tools/r8/keepanno/KeepNameAndInstanceOfTest.java b/src/test/java/com/android/tools/r8/keepanno/KeepNameAndInstanceOfTest.java
index 27b12cf..b36cca3 100644
--- a/src/test/java/com/android/tools/r8/keepanno/KeepNameAndInstanceOfTest.java
+++ b/src/test/java/com/android/tools/r8/keepanno/KeepNameAndInstanceOfTest.java
@@ -31,7 +31,6 @@
   @Test
   public void test() throws Exception {
     testForKeepAnno(parameters)
-        .enableNativeInterpretation()
         .addProgramClasses(getInputClasses())
         .addKeepMainRule(TestClass.class)
         .setExcludedOuterClass(getClass())